safecheck-client 3.0.34-7 → 3.0.34-70

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. package/package.json +1 -1
  2. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  3. package/src/App.vue +31 -31
  4. package/src/assets/123.png +0 -0
  5. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  6. package/src/components/LoadData.vue +62 -0
  7. package/src/components/NewDefectList/DefectListNew.vue +1 -0
  8. package/src/components/android/AndroidDefectDeal.vue +1 -0
  9. package/src/components/android/AndroidDefectDealBeforeSafe.vue +502 -0
  10. package/src/components/android/AreaSelect.vue +198 -0
  11. package/src/components/android/BuildingSelect.vue +192 -0
  12. package/src/components/android/CheckPlanSelect.vue +229 -0
  13. package/src/components/android/PaperFeedback.vue +1514 -1481
  14. package/src/components/android/PaperFeedbackTemp.vue +1470 -1470
  15. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  16. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  17. package/src/components/android/SafePlanItem.vue +509 -509
  18. package/src/components/android/SafecheckDevices.vue +1298 -1298
  19. package/src/components/android/SafecheckDevicesTemp.vue +1333 -1333
  20. package/src/components/android/SafecheckOrderV.vue +8 -12
  21. package/src/components/android/UserinfoSelect.vue +702 -0
  22. package/src/components/android/examples/SafeListExamples.vue +96 -0
  23. package/src/components/android/examples/UserExamples.vue +130 -0
  24. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  25. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  26. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  27. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  28. package/src/components/rongcheng/PaperStatem.vue +6 -1
  29. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  30. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  31. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  32. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  33. package/src/components/safecheckNew/android/SafecheckOrderV.vue +2731 -2731
  34. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  35. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  36. package/src/filiale/baiyin/android.js +1 -0
  37. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  38. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  39. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  40. package/src/filiale/bayan/android/PaperFeedback.vue +1651 -1651
  41. package/src/filiale/bayan/android/SafecheckDevices.vue +1303 -1303
  42. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  43. package/src/filiale/bayan/android/SafecheckUserInfo.vue +863 -863
  44. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  45. package/src/filiale/dexin/android/SafecheckDevices.vue +1305 -1305
  46. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  47. package/src/filiale/hanzhong/android/PaperFeedback.vue +1477 -1477
  48. package/src/filiale/hanzhong/android/SafecheckDevices.vue +1313 -1313
  49. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  50. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  51. package/src/filiale/huaran/android.js +12 -0
  52. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  53. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  54. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  55. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  56. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  57. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  58. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  59. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  60. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  61. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  62. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  63. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  64. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  65. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  66. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  67. package/src/filiale/huaran/pc.js +27 -0
  68. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  69. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  70. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  71. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  72. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  73. package/src/filiale/jiaxian/android.js +4 -0
  74. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  75. package/src/filiale/jingyang/android/CurrentCreate.vue +1080 -1080
  76. package/src/filiale/jingyang/android/PaperFeedback.vue +1493 -1493
  77. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  78. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  79. package/src/filiale/jingyang/android.js +15 -15
  80. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  81. package/src/filiale/pingxiang/android/PaperFeedback.vue +1399 -1399
  82. package/src/filiale/qingjian/android/SafecheckDevices.vue +1269 -1269
  83. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  84. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  85. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  86. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  87. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  88. package/src/filiale/qingtongxia/android.js +14 -10
  89. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  90. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  91. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  92. package/src/filiale/ruihua/android.js +11 -0
  93. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  94. package/src/filiale/shiquan/android/SafecheckDevices.vue +1269 -1269
  95. package/src/filiale/siyang/android/AddPlanItem.vue +446 -0
  96. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  97. package/src/filiale/siyang/android.js +1 -0
  98. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  99. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  100. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  101. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  102. package/src/filiale/siyang/pc/NewCheckpaper.vue +1938 -1938
  103. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  104. package/src/filiale/siyang/pc/checkUserList.vue +790 -786
  105. package/src/filiale/siyang/pc.js +21 -16
  106. package/src/filiale/tongchuan/android/Select.vue +421 -0
  107. package/src/filiale/tongchuan/android.js +1 -0
  108. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  109. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  110. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  111. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  112. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  113. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  114. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  115. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  116. package/src/filiale/weinan/android/SafecheckDevices.vue +1295 -1295
  117. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  118. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  119. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  120. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  121. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  122. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  123. package/src/filiale/weinan/pc.js +1 -0
  124. package/src/filiale/wuan/android/SafecheckOrderV.vue +1 -0
  125. package/src/filiale/wuan/android/SafecheckUserInfo.vue +4 -0
  126. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1731 -1731
  127. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  128. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  129. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +13 -11
  130. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +269 -269
  131. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  132. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  133. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +1128 -1128
  134. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +972 -972
  135. package/src/filiale/yangchunboneng/pc/PaperList.vue +773 -773
  136. package/src/filiale/yongzhou/android/PaperFeedback.vue +1519 -1519
  137. package/src/filiale/yongzhou/android/SafecheckDevices.vue +1294 -1294
  138. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  139. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  140. package/src/filiale/yuansheng/android/SwitchValve.vue +322 -322
  141. package/src/filiale/yuansheng/android.js +17 -17
  142. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  143. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1508 -1508
  144. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  145. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +784 -784
  146. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  147. package/src/main.js +33 -33
  148. package/src/safecheck-android.js +9 -0
  149. package/src/safecheck-page.js +10 -0
@@ -1,1399 +1,1399 @@
1
- <template>
2
- <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
4
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
5
- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
6
- <div class="col-md-12 col-sm-12 col-xs-12">
7
- <textarea v-model="paper.f_repair_approved_note" class="form-control"></textarea>
8
- </div>
9
- </div>
10
- </div>
11
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
12
- <div class="text-center">
13
- <label class="font">总体安检照片请依次拍摄:</label>
14
- </div>
15
- <div class="col-md-12 col-sm-12 col-xs-12">
16
- <ol class="showIi">
17
- <li>1.燃气设施全景</li>
18
- <li>2.燃气表照片</li>
19
- <li>3.灶具照片</li>
20
- <li>4.其他照片</li>
21
- </ol>
22
- </div>
23
- </div>
24
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
25
- <label class="text-left font">总体安检照片</label>
26
-
27
- <div class="auto" :class="style__">
28
- <div class="panel" style="padding: 10px 10px 5px 10px;">
29
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
30
- <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
31
- <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
32
- <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
33
- <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
34
- </div>
35
- </div>
36
- <div class="row text-right div-photo">
37
- <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
38
- <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
39
- <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </div>
45
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__" v-if="isvideo == 'true'">
46
- <label class="text-left font">安检视频</label>
47
-
48
- <div class="auto" :class="style__">
49
- <div class="panel" style="padding: 10px 10px 5px 10px;">
50
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
51
- <div class="row">
52
- <video width="320" height="200" controls v-if="paper.f_video_path">
53
- <source :src="paper.f_video_path" type="video/mp4">
54
- </video>
55
- </div>
56
- <div class="row text-right div-photo">
57
- <button type="button" name="button" class="btn btn-photo" @click="takeVideo()">拍摄</button>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
64
- <label class="text-left font">总体隐患照片</label>
65
- <div class="auto" :class="style__">
66
- <div class="panel" style="padding: 10px 10px 5px 10px;">
67
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
68
- <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
69
- <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in defectImgs">
70
- <img-self :src="img" alt="总体隐患照片" :width="140" :height="170"></img-self>
71
- <!-- <img src="../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">-->
72
- </div>
73
- </div>
74
- </div>
75
- </div>
76
- </div>
77
- </div>
78
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
79
- <div class="text-center">
80
- <label class="font">隐患汇总:</label>
81
- </div>
82
- <div class="col-md-12 col-sm-12 col-xs-12">
83
- <ol class="showIi">
84
- <li v-for="item in defectReason">{{ item.deviceitem }}</li>
85
- </ol>
86
- </div>
87
- </div>
88
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
89
- <div class="text-center">
90
- <label class="font">整改建议汇总:</label>
91
- </div>
92
- <div class="col-md-12 col-sm-12 col-xs-12">
93
- <ol class="showIi">
94
- <li v-for="item in defectToolTip">{{ item }}</li>
95
- </ol>
96
- </div>
97
- </div>
98
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
99
- <input type="checkbox" v-model="paper.f_read_instructions"/><label class="text-left font">我已阅读须知内容</label>
100
-
101
- </div>
102
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
103
- <label class="text-left font">用户签名</label>
104
- <div class="auto">
105
- <div class="panel">
106
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
107
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
108
- <div class="col-sm-4">
109
- <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
110
- </div>
111
- </div>
112
- <div class="row text-right div-photo">
113
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
114
- </div>
115
- </div>
116
- </div>
117
- </div>
118
- </div>
119
- <!-- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :style="timeSet(this.isneedDate)?'':'display:none'">-->
120
- <!-- <label>请输入超期原因:</label><br/>-->
121
- <!-- <textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>-->
122
- <!-- </div>-->
123
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-show="showbacklist=='是'">
124
- <div class="col-xs-6 col-sm-6">
125
- <input type="checkbox" v-model="backlistisselect" :readonly="enabled"/><label class="text-left font" >限制该用户购气</label>
126
- </div>
127
- <!-- <div class="col-xs-6 col-sm-6">-->
128
- <!-- <input type="checkbox" v-model="deletebacklistisselect" :readonly="deleteenabled"/><label class="text-left font" >取消该用户购气</label>-->
129
- <!-- </div>-->
130
- </div>
131
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-if="Vue.$appdata.getParam('安检天然气安全使用须知检查')=='是'">
132
- <div class="col-xs-12 col-sm-12">
133
- <input type="checkbox" v-model="paper.f_gas_guidelines" /><label class="text-left font" >天然气安全使用须知</label>
134
- </div>
135
- <div class="col-xs-12 col-sm-12">
136
- <input type="checkbox" v-model="paper.f_safety_warning" /><label class="text-left font" >天然气室内使用安全警示</label>
137
- </div>
138
- <div class="col-xs-12 col-sm-12">
139
- <input type="checkbox" v-model="paper.f_gas_manual" /><label class="text-left font" >安全用气手册</label>
140
- </div>
141
- </div>
142
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
143
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
144
- <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
145
- </div>
146
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
147
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
148
- <button type="button" @click="print()">打印隐患整改单</button>
149
- </div>
150
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
151
- <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
152
- <div class="auto" >
153
- <div class="panel" style="padding: 10px 10px 5px 10px;">
154
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
155
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
156
- <div class="col-sm-4">
157
- <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
158
- </div>
159
- </div>
160
- <div class="row text-right div-photo">
161
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
162
- &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
163
- </div>
164
- </div>
165
- </div>
166
- </div>
167
- </div>
168
- </div>
169
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
170
- <div class="row">
171
- <label class="text-left">请对我们的服务做出评价:</label>
172
- </div>
173
- <div class="col-xs-4 col-sm-4" v-for="item in radios">
174
- <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
175
- </div>
176
- </div>
177
-
178
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="isRecodr=='false'">
179
- <label class="text-left font">反馈录音:</label>
180
- <div class="col-md-12 col-sm-12 col-xs-12">
181
- <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
182
- <img src="../../../assets/录音.png" style="width: 14%;">
183
- <span v-if="!paper.f_recording1_path">开始录音</span>
184
- <span v-if="paper.f_recording1_path">已录音</span>
185
- </button>
186
- &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
187
- </div>
188
- </div>
189
-
190
- <div v-if="false">
191
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
192
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' &&(paper.f_complete != '已完成' || paper.back_f_entry_status != '入户') " class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
193
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
194
- </div>
195
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
196
- <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
197
- <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" v-if="(safeCheckToRepair == true || safeCheckToRepair == 'true') && $parent.$parent.actionEnabled" class="btn repair-btn btn-warning " type="button" @click="showToRepair">转维修</button> </div>
198
- </div>
199
-
200
- </div>
201
- </form>
202
- <modal :show.sync="showmodel" v-ref:modal>
203
- <div slot="modal-header" class="modal-header">
204
- <h4 class="modal-title">
205
- 限制用户购气
206
- </h4>
207
- </div>
208
- <div slot="modal-body" class="modal-body">
209
- <div class="row" style="margin-top: 6px">
210
- <textarea id="el_ca_tx" v-model.trim="cause" style="border-radius:4px;width: 100%;" placeholder="请输入限制用户购气原因" >
211
- </textarea>
212
- </div>
213
- </div>
214
- <div slot="modal-footer" class="modal-footer">
215
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlist()">确认</button>
216
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">取消</button>
217
- </div>
218
- </modal>
219
-
220
- <modal :show.sync="showmodelthree" v-ref:modal>
221
- <div slot="modal-header" class="modal-header">
222
- <h4 class="modal-title">
223
- 取消限制用户购气
224
- </h4>
225
- </div>
226
- <div slot="modal-body" class="modal-body">
227
- <!-- <div class="row" style="margin-top: 6px">-->
228
- <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
229
- <!-- </div>-->
230
- <div class="row" style="margin-top: 6px">
231
- <textarea id="el_ca_txt" v-model.trim="deletecause" style="border-radius:4px;width: 100%;" placeholder="请输入取消限制用户购气原因" >
232
- </textarea>
233
- </div>
234
- </div>
235
- <div slot="modal-footer" class="modal-footer">
236
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletebacklist()">确认</button>
237
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletecancel()">取消</button>
238
- </div>
239
- </modal>
240
- </template>
241
-
242
- <script>
243
- import Vue from 'vue'
244
- import * as Util from '../../Util'
245
- import { HttpResetClass } from 'vue-client'
246
- import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
247
- import Radio from 'vue-client/src/vue-strap/src/radioBtn'
248
- import co from 'co'
249
-
250
- // let getRepairParam = function * (self){
251
- // let data = {
252
- // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
253
- // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
254
- // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
255
- // }, user: self.user, callObj: self.callObj
256
- // }
257
- // if(self.$parent.$parent.meading == '转维修员'){
258
- // data.toRepair = '一级派单'
259
- // }
260
- // data.$parent.$parent.model.f_attendant = data.loginUser.name
261
- // ////tag
262
- // ////tag
263
- // let res
264
- // let errString = self.$parent. $parent.errorVerify()
265
- // if(errString){
266
- // ////tag
267
- // if (Vue.android)
268
- // self.undo()
269
- // this.$showMessage(errString)
270
- // return
271
- // } else {
272
- // if(self.role == 'inspect'){
273
- // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
274
- // this.$showMessage("请选择维修员!")
275
- // return
276
- // }
277
- // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
278
- // HostApp.alert()
279
- // this.$showMessage("请选择站点!")
280
- // return
281
- // }
282
- // if(self.$parent.$parent.model.f_repairtype == ''){
283
- // this.$showMessage("请选择报修类型!")
284
- // return
285
- // }
286
- // ////tag)
287
- // let checkResult = '正常'
288
- // let options = [{"data": "已处理"},{"data": "未处理"}]
289
- // let value = ''
290
- // let codata = JSON.parse(JSON.stringify(self.paper))
291
- // for(let device in codata){
292
- // ////tag)
293
- // let f_device_type
294
- // if(device.startsWith("device")){
295
- // for(let item in codata[device]) {
296
- // if(codata[device].length > 1 ){
297
- // let j = Number.parseInt(item)+1
298
- // f_device_type = `${codata[device][item].f_device_type}${j}`
299
- // }else{
300
- // f_device_type = codata[device][item].f_device_type
301
- // }
302
- // // ////tag
303
- // let details = []
304
- // for(let i in codata[device][item].f_items){
305
- // let items = codata[device][item].f_items[i]
306
- // ////tag
307
- // if(items.f_is_defect == true || items.f_is_defect == 'true'){
308
- // checkResult = '有隐患'
309
- // ////tag
310
- // let res = yield self.$resetpost(`${self.Url}/rs/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
311
- // ////tag)
312
- // self.$set('detail.f_defect_id', res.data[0].id)
313
- // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
314
- // self.$set('detail.type',items.type)
315
- // self.$set('detail.options',options)
316
- // details.push(JSON.parse(JSON.stringify(self.detail)))
317
- // }
318
- // if(items.type == 'selector'){
319
- // items.selected = ''
320
- // }
321
- // self.detail = {}
322
- // }
323
- // ////tag
324
- // self.$set('defectDevice.f_type',f_device_type)
325
- // self.$set('defectDevice.details',details)
326
- // if(self.defectDevice.details.length >0 ){
327
- // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
328
- // }
329
- // self.defectDevice = {}
330
- // ////tag
331
- // }
332
- // }
333
- // }
334
- // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
335
- //
336
- //
337
- // ////tag)
338
- // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
339
- // ////tag
340
- // ////tag
341
- // ////tag
342
- // if(res.code == 200){
343
- // self.$parent.$parent.isSafeCheckToRepair = true
344
- // self.undo()
345
- // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
346
- // ////tag
347
- // self.$resetpost(`${self.Url}/rs/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
348
- // ////tag
349
- // if(ret.data.code ==200){
350
- // ////tag
351
- // self.$parent.$parent.$back()
352
- // }else{
353
- // self.$showMessage('安检转维修失败!')
354
- // }
355
- // }).catch(v=>{
356
- // ////tag)
357
- // self.$showMessage('安检转维修失败!')
358
- // })
359
- // }else{
360
- // self.$showMessage('安检转维修失败!')
361
- // }
362
- // }
363
- // }
364
- // }
365
-
366
-
367
-
368
- // let getRepairs = async function(self,url) {
369
- // // 获取配置信息
370
- // try {
371
- // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
372
- // let repairs =[]
373
- // let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
374
- // res.data.forEach((item) => {
375
- // repairs.push({label: item.name, value: item})
376
- // })
377
- // self.f_repair_person = repairs
378
- // if(self.$parent.$parent.role == 'inspect'){
379
- // let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
380
- // if(res.code == 200){
381
- // self.$parent.$parent.user = res.data[0]
382
- // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
383
- // }
384
- // }else{
385
- // ////tag
386
- // self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
387
- // ////tag
388
- // if(res.data.length != 0){
389
- // self.$parent.$parent.user = res.data[0]
390
- // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
391
- // }
392
- // })
393
- // // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
394
- // }
395
- // } catch (error) {
396
- // ////tag
397
- // }
398
- // }
399
-
400
- export default {
401
- title: '用户反馈',
402
- data() {
403
- return {
404
- isvideo:'false',
405
- defectImgs: [],
406
- defectToolTip: [],
407
- defectReason: [],
408
- images: [],
409
- showmodelthree: false,
410
- isneedDate: this.$parent.$parent.isneedDate,
411
- plan: this.$parent.$parent.item,
412
- meading: this.$parent.$parent.meading,
413
- paper: this.$parent.$parent.data,
414
- printContent: [],
415
- upload_state: this.$parent.$parent.item.f_upload_state,
416
- enabled: false,//控制限制购气是否可选
417
- deleteenabled: false,
418
- showmodel: false,
419
- showbacklist:'是',
420
- backlistisselect: false,
421
- deletebacklistisselect: false,
422
- radios: [
423
- {
424
- label: '满意',
425
- value: 0,
426
- isChecked: false,
427
- },
428
- {
429
- label: '基本满意',
430
- value: 1,
431
- isChecked: false,
432
- },
433
- {
434
- label: '不满意',
435
- value: 2,
436
- isChecked: false,
437
- },
438
- ],
439
- repairitems: [],
440
- repairstypes: this.$appdata.getParam('报修类型'),
441
- // f_repair_person: this.readRepair(),
442
- showrepair: false,
443
- safeCheckToRepair: '',
444
- showCheckToRepair: false,
445
- userid: '',
446
- source:
447
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
448
- 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
449
- isback: false,
450
- defectDevice: {},
451
- detail: {},
452
- callObj: null,
453
- user: {},
454
- role: this.$parent.$parent.role,
455
- handling: [{label: '转站点', value: '转站点'}, {label: '转维修员', value: '转维修员'}],
456
- Url: this.$androidUtil.getProxyUrl(),
457
- cause: "",
458
- deletecause: "",
459
- isRecodr: "false", //单值参数,为true则是开启全程录音
460
- }
461
- },
462
- props: ['idx'],
463
- components: {
464
- RadioGroup,
465
- Radio
466
- },
467
- methods: {
468
- timeSet(val) {
469
- //////tag
470
- if (!val) {
471
- return
472
- }
473
- let time = new Date(val).getTime()
474
- let time2 = new Date().getTime()
475
- if (time2 > time) {
476
- return true
477
- }
478
- },
479
- // async isoverDate(){
480
- // ////tag
481
- // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
482
- // condition:"f_plan_item_id='"+this.$parent.$parent.item.id+"'"
483
- // }
484
- // })
485
- // this.isneedDate=res.data[0]["f_subscribe_date"]
486
- // ////tag
487
- // },
488
- check(index) {
489
- ////tag
490
- // 先取消所有选中项
491
- for (let item of this.radios) {
492
- item.isChecked = false;
493
- }
494
- //再设置当前点击项选中
495
- this.paper.f_client_evaluation = this.radios[index].label;
496
- // 设置值,以供传递
497
- this.radios[index].isChecked = true;
498
- ////tag;
499
- },
500
- getSignValue(fileName) {
501
- this.f_signname = fileName
502
- },
503
- videoCallBack(fileName) {
504
- this.$set('paper.f_video_path', fileName)
505
- HostApp.__callback__ = null
506
- HostApp.__this__ = null
507
- },
508
- takeVideo() {
509
- HostApp.__callback__ = this.videoCallBack
510
- HostApp.__this__ = this
511
- let fileName = Util.guid() + '.mp4'
512
- HostApp._open_a_page({
513
- type: 'boomerang',
514
- page: 'com.aofeng.hybrid.android.peripheral.VideoActivity',
515
- param: {
516
- file: fileName,
517
- requestCode: 111,
518
- callback: 'javascript:HostApp.__callback__("%s");'
519
- }
520
- })
521
- },
522
- cameraCallBack(prop, fileName) {
523
- if (prop == 'f_overall_path') {
524
- let f_overall_path = fileName + '?' + Math.random()
525
- HostApp.__this__.paper.f_overall_imgs.push({
526
- f_overall_path: f_overall_path
527
- })
528
- } else {
529
- HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
530
- }
531
- HostApp.__callback__ = null
532
- HostApp.__this__ = null
533
- },
534
- takePic(prop, title, index) {
535
- HostApp.__callback__ = this.cameraCallBack
536
- HostApp.__this__ = this
537
- ////tag
538
- ////tag
539
- let fileName
540
- if (prop == 'f_overall_path') {
541
- if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
542
- fileName = Util.guid() + '-' + prop + '.jpg'
543
- } else {
544
- fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
545
- }
546
- } else {
547
- if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
548
- fileName = Util.guid() + '-' + prop + '.jpg'
549
- } else {
550
- fileName = Util.getFileName(this.paper[prop])
551
- }
552
- }
553
- let jingweidu = ''
554
- if (this.$parent.$parent.is_has_jingweidu == 'true'){
555
- const obj = HostApp.getGpsDetailAddress()
556
- jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
557
- }
558
- HostApp._open_a_page({
559
- type: 'boomerang',
560
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
561
- param: {
562
- file: fileName,
563
- requestCode: 111,
564
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
565
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name + '\t' + this.paper.f_userinfo_code+ '\t' + this.paper.f_user_name+ '\t' + this.paper.f_address
566
- +jingweidu
567
- }
568
- })
569
- },
570
- amrCallBack(fileName) {
571
- HostApp.__this__.$set('paper.f_recording1_path', fileName)
572
- HostApp.__callback__ = null
573
- HostApp.__this__ = null
574
- },
575
- record() {
576
- if (this.$parent.$parent.role != 'inspect') {
577
- if (this.paper.f_recording1_path != '') {
578
- window.location = this.paper.f_recording1_path
579
- }
580
- } else {
581
- HostApp.__callback__ = this.amrCallBack
582
- HostApp.__this__ = this
583
- let fileName
584
- if (!this.paper.f_recording1_path) {
585
- fileName = Util.guid() + '.amr'
586
- } else {
587
- fileName = Util.getFileName(this.paper.f_recording1_path)
588
- }
589
- HostApp._open_a_page({
590
- type: 'boomerang',
591
- page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
592
- param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
593
- })
594
- }
595
- },
596
- // 签名回调
597
- signCallback(prop, fileName) {
598
- // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
599
- HostApp.__this__.$set('paper.f_sign_path', fileName)
600
- HostApp.__callback__ = null
601
- HostApp.__this__ = null
602
- },
603
- // 用户签名
604
- sign() {
605
- if (!this.paper.f_read_instructions) {
606
- this.$showMessage('请先阅读并勾选用户须知内容后进行签名!')
607
- return
608
- }
609
- this.delAudioFile('f_sign_path', this.paper.f_sign_path)
610
- let prop = 'f_sign_path'
611
- let idx = 'aofeng'
612
- let fileName
613
- if (!this.paper.f_sign_path) {
614
- fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
615
- } else {
616
- fileName = Util.getFileName(this.paper.f_sign_path)
617
- }
618
- HostApp.__callback__ = this.signCallback
619
- HostApp.__this__ = this
620
- HostApp.getSignature({
621
- file: fileName,
622
- requestCode: 111,
623
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
624
- })
625
- },
626
- delfile(prop, fileName, index) {
627
- if (fileName == Vue.nopic)
628
- return
629
- else {
630
- if (prop == 'f_overall_path') {
631
- this.paper.f_overall_imgs.splice(index, 1)
632
- HostApp.delfile(fileName)
633
- } else {
634
- HostApp.delfile(fileName)
635
- this.paper[prop] = Vue.nopic
636
- }
637
- }
638
- },
639
- delAudioFile(prop, fileName) {
640
- if (!fileName)
641
- return
642
- else {
643
- HostApp.delfile(fileName)
644
- this.paper[prop] = null
645
- }
646
- },
647
- //获取打印用户信息
648
- getUser() {
649
- if (this.paper.f_user_name == undefined)
650
- this.paper.f_user_name = ''
651
- this.printContent.push({
652
- type: 3,
653
- text: '用户名称:' + this.paper.f_user_name,
654
- fontsize: 2,
655
- isbold: false,
656
- align: 'left'
657
- })
658
- if (this.paper.f_userinfo_code == undefined)
659
- this.paper.f_userinfo_code = ''
660
- this.printContent.push({
661
- type: 3,
662
- text: '用户编号:' + this.paper.f_userinfo_code,
663
- fontsize: 2,
664
- isbold: false,
665
- align: 'left'
666
- })
667
- if (this.paper.f_address == undefined)
668
- this.paper.f_address = ''
669
- this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
670
- if (this.paper.f_user_phone == undefined)
671
- this.paper.f_user_phone = ''
672
- this.printContent.push({
673
- type: 3,
674
- text: '电话:' + this.paper.f_user_phone,
675
- fontsize: 2,
676
- isbold: false,
677
- align: 'left'
678
- })
679
- },
680
- verify() {
681
- let hasError = this.$parent.$parent.verifyUser()
682
- if (hasError)
683
- return hasError
684
- hasError = this.$parent.$parent.verifyDevices()
685
- if (hasError)
686
- return hasError
687
- },
688
- print() {
689
- let errString = this.verify()
690
- if (errString) {
691
- ////tag
692
- if (Vue.android)
693
- this.$showMessage(errString)
694
- return
695
- }
696
- // 文本
697
- let templatename = '安检结果单'
698
- if (Vue.config.safecheck != undefined) {
699
- if (Vue.config.safecheck.ApproveConfig != undefined) {
700
- if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
701
- templatename = Vue.config.safecheck.ApproveConfig.templatename
702
- }
703
- }
704
- }
705
- let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
706
- let feedPageHead = {type: 4, value: 2, unit: 'line'}
707
- let feedPageEnd = {type: 4, value: 4, unit: 'line'}
708
- this.printContent.push(textHead)
709
- this.printContent.push(feedPageHead)
710
- this.getUser()
711
- this.getDefect()
712
- this.getCheck()
713
- this.printContent.push(feedPageEnd)
714
- let arrstr = JSON.stringify(this.printContent)
715
- ////tag
716
- this.$androidUtil.print(arrstr)
717
- this.$set('printContent', [])
718
- },
719
- //打印安检信息
720
- getCheck() {
721
- let telephone = '96777'
722
- if (Vue.config.safecheck != undefined) {
723
- if (Vue.config.safecheck.ApproveConfig != undefined) {
724
- if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
725
- telephone = Vue.config.safecheck.ApproveConfig.checkphone
726
- }
727
- }
728
- }
729
- this.printContent.push({
730
- type: 3,
731
- text: '*******************************',
732
- fontsize: 3,
733
- isbold: false,
734
- align: 'center'
735
- })
736
- this.printContent.push({type: 3, text: '咨询电话;' + telephone, fontsize: 2, isbold: false, align: 'left'})
737
- this.printContent.push({type: 3, text: '安检人:' + Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
738
- this.printContent.push({
739
- type: 3,
740
- text: '安检时间:' + this.getNowFormatDate(),
741
- fontsize: 2,
742
- isbold: false,
743
- align: 'left'
744
- })
745
- this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
746
- this.printContent.push({type: 4, value: 4, unit: 'line'})
747
- },
748
-
749
- getDefect() {
750
- let showmore = false
751
- if (Vue.config.safecheck != undefined) {
752
- if (Vue.config.safecheck.ApproveConfig != undefined) {
753
- if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
754
- showmore = Vue.config.safecheck.ApproveConfig.showmore
755
- }
756
- }
757
- }
758
-
759
- let backData = this.$parent.$parent.getAllDefect()
760
- // 对隐患信息进行遍历
761
- let res = JSON.parse(backData.f_defect_content)
762
- this.printContent.push({
763
- type: 3,
764
- text: '安检结果:' + res.result,
765
- fontsize: 2,
766
- isbold: false,
767
- align: 'left'
768
- })
769
- this.printContent.push({
770
- type: 3,
771
- text: '*******************************',
772
- fontsize: 3,
773
- isbold: false,
774
- align: 'center'
775
- })
776
-
777
-
778
- if (showmore) {
779
- //全部打印
780
- for (let dev in this.$parent.$parent.config) {
781
- for (let device in backData) {
782
- if (device.startsWith("device")) {
783
- for (let item in backData[device]) {
784
- //遍历结果
785
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
786
- let error = true
787
- for (let i in backData[device][item].f_items) {
788
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
789
- error = false
790
- }
791
- }
792
- if (error) {
793
- this.printContent.push({
794
- type: 3,
795
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
796
- fontsize: 2,
797
- isbold: false,
798
- align: 'left'
799
- })
800
- } else {
801
- this.printContent.push({
802
- type: 3,
803
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
804
- fontsize: 2,
805
- isbold: true,
806
- align: 'left'
807
- })
808
- }
809
-
810
- for (let i in backData[device][item].f_items) {
811
- if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
812
- this.printContent.push({
813
- type: 3,
814
- text: backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
815
- fontsize: 2,
816
- isbold: false,
817
- align: 'left'
818
- })
819
- }
820
- }
821
- this.printContent.push({type: 4, value: 2, unit: 'line'})
822
- }
823
- }
824
- }
825
- }
826
- }
827
-
828
- for (let dev in this.$parent.$parent.config) {
829
- for (let device in backData) {
830
- if (device.startsWith("device")) {
831
- for (let item in backData[device]) {
832
- //遍历结果
833
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
834
- let error = true
835
- for (let i in backData[device][item].f_items) {
836
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
837
- error = false
838
- }
839
- }
840
- if (!error) {
841
- this.printContent.push({
842
- type: 3,
843
- text: '隐患:',
844
- fontsize: 2,
845
- isbold: true,
846
- align: 'left'
847
- })
848
- }
849
- }
850
- }
851
- }
852
- }
853
- for (let device in backData) {
854
- if (device.startsWith("device")) {
855
- for (let item in backData[device]) {
856
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
857
- for (let i in backData[device][item].f_items) {
858
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
859
- this.printContent.push({
860
- type: 3,
861
- text: backData[device][item].f_items[i].f_item_name + ' ' + backData[device][item].f_items[i].f_item_value,
862
- fontsize: 2,
863
- isbold: true,
864
- align: 'left'
865
- })
866
- }
867
- }
868
- }
869
- }
870
- }
871
- }
872
-
873
- }
874
- } else {
875
- for (let dev in this.$parent.$parent.config) {
876
- for (let device in backData) {
877
- if (device.startsWith("device")) {
878
- for (let item in backData[device]) {
879
- //遍历结果
880
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
881
- let error = true
882
- for (let i in backData[device][item].f_items) {
883
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
884
- error = false
885
- }
886
- }
887
- if (error) {
888
- this.printContent.push({
889
- type: 3,
890
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
891
- fontsize: 2,
892
- isbold: false,
893
- align: 'left'
894
- })
895
- } else {
896
- this.printContent.push({
897
- type: 3,
898
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
899
- fontsize: 2,
900
- isbold: false,
901
- align: 'left'
902
- })
903
- }
904
-
905
- for (let i in backData[device][item].f_items) {
906
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
907
- this.printContent.push({
908
- type: 3,
909
- text: '隐患:' + backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
910
- fontsize: 2,
911
- isbold: false,
912
- align: 'left'
913
- })
914
- }
915
- }
916
- this.printContent.push({type: 4, value: 2, unit: 'line'})
917
- }
918
- }
919
- }
920
- }
921
- }
922
- }
923
- },
924
- //获取当前时间
925
- getNowFormatDate() {
926
- var date = new Date();
927
- var seperator1 = "-";
928
- var seperator2 = ":";
929
- var month = date.getMonth() + 1;
930
- var strDate = date.getDate();
931
- if (month >= 1 && month <= 9) {
932
- month = "0" + month;
933
- }
934
- if (strDate >= 0 && strDate <= 9) {
935
- strDate = "0" + strDate;
936
- }
937
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
938
- + " " + date.getHours() + seperator2 + date.getMinutes()
939
- + seperator2 + date.getSeconds();
940
- return currentdate;
941
- },
942
- readRepair() {
943
- let url = this.$androidUtil.getProxyUrl()
944
- let gen = getRepairs(this, url)
945
- return co(gen)
946
- },
947
- showToRepair() {
948
- let res = this.hasDefect()
949
- ////tag
950
- ////tag
951
- if (res == '正常') {
952
- this.showrepair = false
953
- } else {
954
- this.showrepair = true
955
- this.assignObj()
956
- }
957
- this.showCheckToRepair = !this.showCheckToRepair
958
- },
959
- // 选中部门
960
- reres(val) {
961
- if (val.res == undefined) {
962
- return
963
- }
964
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
965
- this.$parent.$parent.model.f_meetunit = val.res
966
- this.$parent.$parent.model.f_orgstr = val.resids
967
- var arr = val.res.split('.')
968
- this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
969
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
970
- },
971
- assignObj() {
972
- this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
973
- this.$parent.$parent.model.f_user_name = this.paper.f_user_name
974
- this.$parent.$parent.model.f_address = this.paper.f_address
975
- this.$parent.$parent.model.f_user_type = this.paper.f_check_type
976
- this.$parent.$parent.model.f_street = this.paper.f_street
977
- this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
978
- this.$parent.$parent.model.f_building = this.paper.f_building
979
- this.$parent.$parent.model.f_unit = this.paper.f_unit
980
- this.$parent.$parent.model.f_floor = this.paper.f_floor
981
- this.$parent.$parent.model.f_room = this.paper.f_room
982
- this.$parent.$parent.model.f_floor = this.paper.f_floor
983
- this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
984
- this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
985
- },
986
- hasDefect() {
987
- let checkResult = '正常'
988
- let codata = JSON.parse(JSON.stringify(this.paper))
989
- for (let device in this.paper) {
990
- if (device.startsWith("device")) {
991
- for (let item in this.paper[device]) {
992
- for (let i in this.paper[device][item].f_items) {
993
- let items = this.paper[device][item].f_items[i]
994
- ////tag
995
- if (items.f_is_defect == true || items.f_is_defect == 'true') {
996
- checkResult = '有隐患'
997
- }
998
- }
999
- }
1000
- }
1001
- }
1002
- return checkResult
1003
- },
1004
- uploadPaper() {
1005
- if (this.showrepair) {
1006
- ////tag
1007
- ////tag
1008
- ////tag
1009
- ////tag
1010
-
1011
- if (this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1012
- this.$showMessage("请选择维修员!")
1013
- return
1014
- }
1015
- if (this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1016
- this.$showMessage("请选择站点!")
1017
- return
1018
- }
1019
- if (this.$parent.$parent.model.f_repairtype == '') {
1020
- this.$showMessage("请选择报修类型!")
1021
- return
1022
- }
1023
- this.$parent.$parent.isToRepair = true
1024
- this.$parent.$parent.uploadCheckPaper()
1025
- // this.$parent.$parent.savePaper(false).then((res) => {
1026
- // ////tag
1027
- // if(res != true){
1028
- // ////tag
1029
- // return
1030
- // }else{
1031
- // this.$parent.$parent.todo()
1032
- // }
1033
- // })
1034
- } else {
1035
- this.$parent.$parent.undo()
1036
- }
1037
-
1038
- },
1039
- //确认安检转维修
1040
-
1041
- undo() {
1042
- this.showCheckToRepair = !this.showCheckToRepair
1043
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
1044
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
1045
- this.$parent.$parent.model.f_repairtype = ''
1046
- this.meading = '转站点'
1047
- },
1048
- //取消拉黑
1049
- async deletebacklist() {
1050
- if (!this.deletecause) {
1051
- this.$showMessage("请填写取消拉黑原因!")
1052
- return
1053
- }
1054
- this.paper.f_blocking_cause = this.deletecause
1055
- ////tag)
1056
- let http = new HttpResetClass()
1057
- ////tag
1058
- let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1059
- data: {
1060
- items: "version",
1061
- tablename: "t_userinfo",
1062
- condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1063
- orderitem: "f_userinfo_id"
1064
- }
1065
- }, {resolveMsg: null, rejectMsg: null})
1066
- ////tag)
1067
- ////tag
1068
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1069
- data: {
1070
- "f_operat_type": "取消拉黑",
1071
- "f_state": "有效",
1072
- "f_user_name": this.paper.f_user_name,
1073
- "f_comments": this.paper.f_blocking_cause,
1074
- "f_operator": Vue.user.name,
1075
- "f_operatorid": Vue.user.id,
1076
- "f_orgid": Vue.user.orgid,
1077
- "f_orgname": Vue.user.orgs,
1078
- "f_depid": Vue.user.depids,
1079
- "f_depname": Vue.user.deps,
1080
- "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行取消拉黑`,
1081
- "f_userinfo_id": {
1082
- "f_userinfo_id": this.paper.f_userinfoid,
1083
- "f_user_state": "正常",
1084
- "version": res1.data[0].version
1085
- },
1086
- "f_limit_times":"",
1087
- "f_limit_value":""
1088
- }
1089
- }, {resolveMsg: null, rejectMsg: null})
1090
-
1091
- ////tag)
1092
- if (res2.data.code == 200) {
1093
- this.showmodelthree = false
1094
- this.deleteenabled = true
1095
- this.paper.f_blacklist = "否"
1096
- this.$showMessage("取消该用户限制购气成功!")
1097
- } else {
1098
- this.$showMessage("网络异常,请稍后再试!")
1099
- }
1100
- },
1101
- async backlist() {
1102
- if (!this.cause) {
1103
- this.$showMessage("请填写拉黑原因!")
1104
- return
1105
- }
1106
- this.paper.f_blocking_cause = this.cause
1107
- ////tag)
1108
- let http = new HttpResetClass()
1109
- ////tag
1110
- let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1111
- data: {
1112
- items: "version",
1113
- tablename: "t_userinfo",
1114
- condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1115
- orderitem: "f_userinfo_id"
1116
- }
1117
- }, {resolveMsg: null, rejectMsg: null})
1118
- ////tag)
1119
- ////tag
1120
- let limit_times=1
1121
- let limit_value=3
1122
- if(Vue.config.safecheck && Vue.config.safecheck.ApproveConfig.limit_times && Vue.config.safecheck.ApproveConfig.limit_value){
1123
- limit_times = Vue.config.safecheck.ApproveConfig.limit_times
1124
- limit_value = Vue.config.safecheck.ApproveConfig.limit_value
1125
- }
1126
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1127
- data: {
1128
- data:this.$parent.$parent.data,
1129
- item:this.$parent.$parent.data.item,
1130
- "f_operat_type": "拉黑",
1131
- "f_state": "有效",
1132
- "f_user_name": this.paper.f_user_name,
1133
- "f_comments": this.paper.f_blocking_cause,
1134
- "f_operator": Vue.user.name,
1135
- "f_operate_date":Util.toStandardTimeString(),
1136
- "f_operatorid": Vue.user.id,
1137
- "f_orgid": Vue.user.orgid,
1138
- "f_orgname": Vue.user.orgs,
1139
- "f_depid": Vue.user.depids,
1140
- "f_depname": Vue.user.deps,
1141
- "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行拉黑`,
1142
- "f_userinfo_id": {
1143
- "f_userinfo_id": this.paper.f_userinfoid
1144
- },
1145
- "f_limit_times":limit_times,
1146
- "f_limit_value":limit_value
1147
- }
1148
- }, {resolveMsg: null, rejectMsg: null})
1149
-
1150
- ////tag)
1151
- if (res2.data.code == 200) {
1152
- this.showmodel = false
1153
- this.enabled = true
1154
- this.paper.f_blacklist = "是"
1155
- this.$showMessage("将该用户限制购气成功!")
1156
- } else if (res2.data.msg == '数据增加重复') {
1157
- this.showmodel = false
1158
- this.enabled = true
1159
- this.$showMessage("该用户已被限制购气,请勿重复提交!")
1160
- } else {
1161
- this.$showMessage("网络异常,请稍后再试!")
1162
- }
1163
- },
1164
- cancel() {
1165
- this.backlistisselect = false
1166
- this.showmodel = false
1167
- },
1168
- deletecancel() {
1169
- this.deletebacklistisselect = false
1170
- this.showmodelthree = false
1171
- },
1172
- repiarmancg(val) {
1173
- if (val) {
1174
- ////tag
1175
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
1176
- let http1 = new HttpResetClass()
1177
- http1.load('POST', `${this.Url}/rs/sql/tel_singleTable_OrderBy`, {
1178
- data: {
1179
- items: 'f_user_telephone',
1180
- tablename: 't_user',
1181
- condition: `name = '${val}'`,
1182
- orderitem: 'id'
1183
- }
1184
- }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
1185
- this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
1186
- })
1187
- }
1188
- },
1189
- },
1190
- async ready() {
1191
- this.isRecodr = this.$appdata.getSingleValue('无限制录音')
1192
- this.isvideo = this.$appdata.getSingleValue('安检录视频')
1193
- if(this.$appdata.getSingleValue('安检时显示拉黑')){
1194
- this.showbacklist = this.$appdata.getSingleValue('安检时显示拉黑');
1195
- }
1196
- // await this.isoverDate()
1197
- ////tag
1198
- ////tag
1199
- ////tag)
1200
- ////tag))
1201
- if (this.$parent.$parent.role == 'repair') {
1202
- this.$set('style__', 'divmask')
1203
- this.$set('style_view_', '')
1204
- } else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
1205
- this.$set('style__', 'divmask')
1206
- this.$set('style_view_', 'divmask')
1207
- ////tag
1208
- } else {
1209
- this.$set('style__', '')
1210
- this.$set('style_view_', '')
1211
- }
1212
-
1213
- for (let item of this.radios) {
1214
- if (this.paper.f_client_evaluation == item.label) {
1215
- item.isChecked = true;
1216
- }
1217
- }
1218
- if (!this.paper.f_notified_path)
1219
- this.$set('paper.f_notified_path', Vue.nopic)
1220
- if (!this.paper.f_sign_path)
1221
- this.$set('paper.f_sign_path', Vue.nopic)
1222
- ////tag
1223
- if (!this.paper.f_overall_imgs) {
1224
- let imgs = []
1225
- // imgs.push({f_overall_path:Vue.nopic})
1226
- this.$set('paper.f_overall_imgs', imgs)
1227
- ////tag
1228
- }
1229
- if (!this.paper.f_overall2_path)
1230
- this.$set('paper.f_overall2_path', Vue.nopic)
1231
-
1232
- this.userid = this.role == 'view' ? this.$login.f.id : Vue.user.id
1233
- if (Vue.config.safecheck != undefined) {
1234
- if (Vue.config.safecheck.ApproveConfig != undefined) {
1235
- if (Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
1236
- this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
1237
- }
1238
- }
1239
- }
1240
- let device = this.$parent.$parent.data
1241
- for (const deviceitem in device) {
1242
- if (deviceitem.startsWith('device')){
1243
- //tag)
1244
- if(device[deviceitem].length == 0){
1245
- continue
1246
- }
1247
- let items = device[deviceitem][0].f_items
1248
- let deviceType = device[deviceitem][0].f_device_type
1249
- for (let i = 0; i < items.length; i++) {
1250
- if (items[i].f_is_defect){
1251
- let reason = items[i].f_item_name+":"
1252
- if (items[i].type === 'selector' || items[i].type === 'radio' || items[i].type === 'checkbox'){
1253
- for (let j = 0; j < items[i].f_item_value.length; j++) {
1254
- if (j+1 === items[i].f_item_value.length){
1255
- reason += items[i].f_item_value[j]
1256
- }else{
1257
- reason += items[i].f_item_value[j] + ","
1258
- }
1259
- }
1260
- }else{
1261
- reason += items[i].f_item_value
1262
- }
1263
- if (items[i].f_path){
1264
- this.defectImgs.push(items[i].f_path)
1265
- }
1266
- if (items[i].f_p1_path){
1267
- this.defectImgs.push(items[i].f_p1_path)
1268
- }
1269
- if (items[i].f_p2_path){
1270
- this.defectImgs.push(items[i].f_p2_path)
1271
- }
1272
- if (items[i].f_p3_path){
1273
- this.defectImgs.push(items[i].f_p3_path)
1274
- }
1275
- if (items[i].tooltip){
1276
- this.defectToolTip.push(items[i].tooltip)
1277
- }
1278
- this.defectReason.push({device:deviceType,deviceitem:reason})
1279
- }else if(items[i].type === 'errorstring' && items[i].f_item_value ){
1280
- let reason = items[i].f_item_name+":" + items[i].f_item_value
1281
- this.defectReason.push({device:deviceType,deviceitem:reason})
1282
- }
1283
-
1284
- }
1285
- }
1286
- }
1287
- ////tag
1288
- ////tag
1289
- //tag
1290
- ////tag
1291
- //tag)
1292
- //tag)
1293
- //tag)
1294
- ////tag
1295
- ////tag
1296
- ////tag
1297
- },
1298
- watch: {
1299
- '$parent.$parent.isUpload'(val) {
1300
- ////tag
1301
- },
1302
- 'meading'(val) {
1303
- ////tag
1304
- this.$parent.$parent.meading = val
1305
- },
1306
- 'backlistisselect'(val) {
1307
- if (val == true) {
1308
- this.showmodel = true
1309
- this.deletebacklistisselect=false
1310
- }
1311
- },
1312
- 'deletebacklistisselect'(val) {
1313
- if (val == true) {
1314
- this.showmodelthree = true
1315
- this.backlistisselect=false
1316
- }
1317
- },
1318
- 'isRecodr'(val) {
1319
- if (val == 'false' || val == undefined || val == null || val == '' || val == 'undefined') {
1320
- this.isRecodr = "false";
1321
- }
1322
- }
1323
- }
1324
- }
1325
- </script>
1326
- <style scoped>
1327
- .panel-self{
1328
- border-radius: 5px;
1329
- border:1px solid #c5e1f7;
1330
- background-color: #F2F6FA;
1331
- }
1332
- .text-left{
1333
- text-align:left;
1334
- }
1335
- .font{
1336
- font: 15px PingFang-SC-Medium;
1337
- color: #333333;
1338
- }
1339
- .showIi{
1340
- font: 14px PingFang-SC-Medium;
1341
- color: #666666;
1342
- }
1343
- .info{
1344
- margin-top: 15px;
1345
- border-radius: 5px;
1346
- background-color: #f3faff;
1347
- }
1348
- .btn-photo{
1349
- border: 0;
1350
- border-radius: 7px;
1351
- background-color: #7dc1f4;
1352
- font: 15px PingFang-SC-Bold;
1353
- height: 20%;
1354
- }
1355
- .div-photo{
1356
- width: auto;
1357
- height: auto;
1358
- /* margin-top: 10px; */
1359
- position: absolute;
1360
- bottom: 10px;
1361
- right: 10px;
1362
- }
1363
- .btn-voice{
1364
- border-radius: 7px;
1365
- border: 1px solid #dedede;
1366
- background-color: #f5fbff;
1367
- font: 15px PingFang-SC-Bold;
1368
- color: #499edf;
1369
- }
1370
- .save-btn{
1371
- width: 25%;
1372
- background-color:#499edf;
1373
- border-radius: 6px;
1374
- color: #FFFFFF;
1375
- font: 15px PingFang-SC-Bold;
1376
- }
1377
- .upload-btn{
1378
- width: 25%;
1379
- background-color:#ffffff;
1380
- border: 1px solid #499edf;
1381
- border-radius: 6px;
1382
- color: #499edf;
1383
- font: 15px PingFang-SC-Bold;
1384
- }
1385
- .repair-btn{
1386
- width: 25%;
1387
- border: 1px solid #499edf;
1388
- border-radius: 6px;
1389
- font: 15px PingFang-SC-Bold;
1390
- }
1391
- #el_ca_tx{
1392
- width: 100%;
1393
- margin: 5px;
1394
- }
1395
- #el_ca_txt{
1396
- width: 100%;
1397
- margin: 5px;
1398
- }
1399
- </style>
1
+ <template>
2
+ <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
4
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
5
+ <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
6
+ <div class="col-md-12 col-sm-12 col-xs-12">
7
+ <textarea v-model="paper.f_repair_approved_note" class="form-control"></textarea>
8
+ </div>
9
+ </div>
10
+ </div>
11
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
12
+ <div class="text-center">
13
+ <label class="font">总体安检照片请依次拍摄:</label>
14
+ </div>
15
+ <div class="col-md-12 col-sm-12 col-xs-12">
16
+ <ol class="showIi">
17
+ <li>1.燃气设施全景</li>
18
+ <li>2.燃气表照片</li>
19
+ <li>3.灶具照片</li>
20
+ <li>4.其他照片</li>
21
+ </ol>
22
+ </div>
23
+ </div>
24
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
25
+ <label class="text-left font">总体安检照片</label>
26
+
27
+ <div class="auto" :class="style__">
28
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
29
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
30
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
31
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
32
+ <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
33
+ <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
34
+ </div>
35
+ </div>
36
+ <div class="row text-right div-photo">
37
+ <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
38
+ <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
39
+ <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__" v-if="isvideo == 'true'">
46
+ <label class="text-left font">安检视频</label>
47
+
48
+ <div class="auto" :class="style__">
49
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
50
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
51
+ <div class="row">
52
+ <video width="320" height="200" controls v-if="paper.f_video_path">
53
+ <source :src="paper.f_video_path" type="video/mp4">
54
+ </video>
55
+ </div>
56
+ <div class="row text-right div-photo">
57
+ <button type="button" name="button" class="btn btn-photo" @click="takeVideo()">拍摄</button>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
64
+ <label class="text-left font">总体隐患照片</label>
65
+ <div class="auto" :class="style__">
66
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
67
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
68
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
69
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in defectImgs">
70
+ <img-self :src="img" alt="总体隐患照片" :width="140" :height="170"></img-self>
71
+ <!-- <img src="../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">-->
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
79
+ <div class="text-center">
80
+ <label class="font">隐患汇总:</label>
81
+ </div>
82
+ <div class="col-md-12 col-sm-12 col-xs-12">
83
+ <ol class="showIi">
84
+ <li v-for="item in defectReason">{{ item.deviceitem }}</li>
85
+ </ol>
86
+ </div>
87
+ </div>
88
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
89
+ <div class="text-center">
90
+ <label class="font">整改建议汇总:</label>
91
+ </div>
92
+ <div class="col-md-12 col-sm-12 col-xs-12">
93
+ <ol class="showIi">
94
+ <li v-for="item in defectToolTip">{{ item }}</li>
95
+ </ol>
96
+ </div>
97
+ </div>
98
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
99
+ <input type="checkbox" v-model="paper.f_read_instructions"/><label class="text-left font">我已阅读须知内容</label>
100
+
101
+ </div>
102
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
103
+ <label class="text-left font">用户签名</label>
104
+ <div class="auto">
105
+ <div class="panel">
106
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
107
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
108
+ <div class="col-sm-4">
109
+ <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
110
+ </div>
111
+ </div>
112
+ <div class="row text-right div-photo">
113
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ <!-- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :style="timeSet(this.isneedDate)?'':'display:none'">-->
120
+ <!-- <label>请输入超期原因:</label><br/>-->
121
+ <!-- <textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>-->
122
+ <!-- </div>-->
123
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-show="showbacklist=='是'">
124
+ <div class="col-xs-6 col-sm-6">
125
+ <input type="checkbox" v-model="backlistisselect" :readonly="enabled"/><label class="text-left font" >限制该用户购气</label>
126
+ </div>
127
+ <!-- <div class="col-xs-6 col-sm-6">-->
128
+ <!-- <input type="checkbox" v-model="deletebacklistisselect" :readonly="deleteenabled"/><label class="text-left font" >取消该用户购气</label>-->
129
+ <!-- </div>-->
130
+ </div>
131
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-if="Vue.$appdata.getParam('安检天然气安全使用须知检查')=='是'">
132
+ <div class="col-xs-12 col-sm-12">
133
+ <input type="checkbox" v-model="paper.f_gas_guidelines" /><label class="text-left font" >天然气安全使用须知</label>
134
+ </div>
135
+ <div class="col-xs-12 col-sm-12">
136
+ <input type="checkbox" v-model="paper.f_safety_warning" /><label class="text-left font" >天然气室内使用安全警示</label>
137
+ </div>
138
+ <div class="col-xs-12 col-sm-12">
139
+ <input type="checkbox" v-model="paper.f_gas_manual" /><label class="text-left font" >安全用气手册</label>
140
+ </div>
141
+ </div>
142
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
143
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
144
+ <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
145
+ </div>
146
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
147
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
148
+ <button type="button" @click="print()">打印隐患整改单</button>
149
+ </div>
150
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
151
+ <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
152
+ <div class="auto" >
153
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
154
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
155
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
156
+ <div class="col-sm-4">
157
+ <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
158
+ </div>
159
+ </div>
160
+ <div class="row text-right div-photo">
161
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
162
+ &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
163
+ </div>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
170
+ <div class="row">
171
+ <label class="text-left">请对我们的服务做出评价:</label>
172
+ </div>
173
+ <div class="col-xs-4 col-sm-4" v-for="item in radios">
174
+ <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
175
+ </div>
176
+ </div>
177
+
178
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="isRecodr=='false'">
179
+ <label class="text-left font">反馈录音:</label>
180
+ <div class="col-md-12 col-sm-12 col-xs-12">
181
+ <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
182
+ <img src="../../../assets/录音.png" style="width: 14%;">
183
+ <span v-if="!paper.f_recording1_path">开始录音</span>
184
+ <span v-if="paper.f_recording1_path">已录音</span>
185
+ </button>
186
+ &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
187
+ </div>
188
+ </div>
189
+
190
+ <div v-if="false">
191
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
192
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' &&(paper.f_complete != '已完成' || paper.back_f_entry_status != '入户') " class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
193
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
194
+ </div>
195
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
196
+ <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
197
+ <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" v-if="(safeCheckToRepair == true || safeCheckToRepair == 'true') && $parent.$parent.actionEnabled" class="btn repair-btn btn-warning " type="button" @click="showToRepair">转维修</button> </div>
198
+ </div>
199
+
200
+ </div>
201
+ </form>
202
+ <modal :show.sync="showmodel" v-ref:modal>
203
+ <div slot="modal-header" class="modal-header">
204
+ <h4 class="modal-title">
205
+ 限制用户购气
206
+ </h4>
207
+ </div>
208
+ <div slot="modal-body" class="modal-body">
209
+ <div class="row" style="margin-top: 6px">
210
+ <textarea id="el_ca_tx" v-model.trim="cause" style="border-radius:4px;width: 100%;" placeholder="请输入限制用户购气原因" >
211
+ </textarea>
212
+ </div>
213
+ </div>
214
+ <div slot="modal-footer" class="modal-footer">
215
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlist()">确认</button>
216
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">取消</button>
217
+ </div>
218
+ </modal>
219
+
220
+ <modal :show.sync="showmodelthree" v-ref:modal>
221
+ <div slot="modal-header" class="modal-header">
222
+ <h4 class="modal-title">
223
+ 取消限制用户购气
224
+ </h4>
225
+ </div>
226
+ <div slot="modal-body" class="modal-body">
227
+ <!-- <div class="row" style="margin-top: 6px">-->
228
+ <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
229
+ <!-- </div>-->
230
+ <div class="row" style="margin-top: 6px">
231
+ <textarea id="el_ca_txt" v-model.trim="deletecause" style="border-radius:4px;width: 100%;" placeholder="请输入取消限制用户购气原因" >
232
+ </textarea>
233
+ </div>
234
+ </div>
235
+ <div slot="modal-footer" class="modal-footer">
236
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletebacklist()">确认</button>
237
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletecancel()">取消</button>
238
+ </div>
239
+ </modal>
240
+ </template>
241
+
242
+ <script>
243
+ import Vue from 'vue'
244
+ import * as Util from '../../Util'
245
+ import { HttpResetClass } from 'vue-client'
246
+ import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
247
+ import Radio from 'vue-client/src/vue-strap/src/radioBtn'
248
+ import co from 'co'
249
+
250
+ // let getRepairParam = function * (self){
251
+ // let data = {
252
+ // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
253
+ // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
254
+ // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
255
+ // }, user: self.user, callObj: self.callObj
256
+ // }
257
+ // if(self.$parent.$parent.meading == '转维修员'){
258
+ // data.toRepair = '一级派单'
259
+ // }
260
+ // data.$parent.$parent.model.f_attendant = data.loginUser.name
261
+ // ////tag
262
+ // ////tag
263
+ // let res
264
+ // let errString = self.$parent. $parent.errorVerify()
265
+ // if(errString){
266
+ // ////tag
267
+ // if (Vue.android)
268
+ // self.undo()
269
+ // this.$showMessage(errString)
270
+ // return
271
+ // } else {
272
+ // if(self.role == 'inspect'){
273
+ // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
274
+ // this.$showMessage("请选择维修员!")
275
+ // return
276
+ // }
277
+ // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
278
+ // HostApp.alert()
279
+ // this.$showMessage("请选择站点!")
280
+ // return
281
+ // }
282
+ // if(self.$parent.$parent.model.f_repairtype == ''){
283
+ // this.$showMessage("请选择报修类型!")
284
+ // return
285
+ // }
286
+ // ////tag)
287
+ // let checkResult = '正常'
288
+ // let options = [{"data": "已处理"},{"data": "未处理"}]
289
+ // let value = ''
290
+ // let codata = JSON.parse(JSON.stringify(self.paper))
291
+ // for(let device in codata){
292
+ // ////tag)
293
+ // let f_device_type
294
+ // if(device.startsWith("device")){
295
+ // for(let item in codata[device]) {
296
+ // if(codata[device].length > 1 ){
297
+ // let j = Number.parseInt(item)+1
298
+ // f_device_type = `${codata[device][item].f_device_type}${j}`
299
+ // }else{
300
+ // f_device_type = codata[device][item].f_device_type
301
+ // }
302
+ // // ////tag
303
+ // let details = []
304
+ // for(let i in codata[device][item].f_items){
305
+ // let items = codata[device][item].f_items[i]
306
+ // ////tag
307
+ // if(items.f_is_defect == true || items.f_is_defect == 'true'){
308
+ // checkResult = '有隐患'
309
+ // ////tag
310
+ // let res = yield self.$resetpost(`${self.Url}/rs/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
311
+ // ////tag)
312
+ // self.$set('detail.f_defect_id', res.data[0].id)
313
+ // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
314
+ // self.$set('detail.type',items.type)
315
+ // self.$set('detail.options',options)
316
+ // details.push(JSON.parse(JSON.stringify(self.detail)))
317
+ // }
318
+ // if(items.type == 'selector'){
319
+ // items.selected = ''
320
+ // }
321
+ // self.detail = {}
322
+ // }
323
+ // ////tag
324
+ // self.$set('defectDevice.f_type',f_device_type)
325
+ // self.$set('defectDevice.details',details)
326
+ // if(self.defectDevice.details.length >0 ){
327
+ // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
328
+ // }
329
+ // self.defectDevice = {}
330
+ // ////tag
331
+ // }
332
+ // }
333
+ // }
334
+ // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
335
+ //
336
+ //
337
+ // ////tag)
338
+ // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
339
+ // ////tag
340
+ // ////tag
341
+ // ////tag
342
+ // if(res.code == 200){
343
+ // self.$parent.$parent.isSafeCheckToRepair = true
344
+ // self.undo()
345
+ // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
346
+ // ////tag
347
+ // self.$resetpost(`${self.Url}/rs/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
348
+ // ////tag
349
+ // if(ret.data.code ==200){
350
+ // ////tag
351
+ // self.$parent.$parent.$back()
352
+ // }else{
353
+ // self.$showMessage('安检转维修失败!')
354
+ // }
355
+ // }).catch(v=>{
356
+ // ////tag)
357
+ // self.$showMessage('安检转维修失败!')
358
+ // })
359
+ // }else{
360
+ // self.$showMessage('安检转维修失败!')
361
+ // }
362
+ // }
363
+ // }
364
+ // }
365
+
366
+
367
+
368
+ // let getRepairs = async function(self,url) {
369
+ // // 获取配置信息
370
+ // try {
371
+ // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
372
+ // let repairs =[]
373
+ // let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
374
+ // res.data.forEach((item) => {
375
+ // repairs.push({label: item.name, value: item})
376
+ // })
377
+ // self.f_repair_person = repairs
378
+ // if(self.$parent.$parent.role == 'inspect'){
379
+ // let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
380
+ // if(res.code == 200){
381
+ // self.$parent.$parent.user = res.data[0]
382
+ // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
383
+ // }
384
+ // }else{
385
+ // ////tag
386
+ // self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
387
+ // ////tag
388
+ // if(res.data.length != 0){
389
+ // self.$parent.$parent.user = res.data[0]
390
+ // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
391
+ // }
392
+ // })
393
+ // // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
394
+ // }
395
+ // } catch (error) {
396
+ // ////tag
397
+ // }
398
+ // }
399
+
400
+ export default {
401
+ title: '用户反馈',
402
+ data() {
403
+ return {
404
+ isvideo:'false',
405
+ defectImgs: [],
406
+ defectToolTip: [],
407
+ defectReason: [],
408
+ images: [],
409
+ showmodelthree: false,
410
+ isneedDate: this.$parent.$parent.isneedDate,
411
+ plan: this.$parent.$parent.item,
412
+ meading: this.$parent.$parent.meading,
413
+ paper: this.$parent.$parent.data,
414
+ printContent: [],
415
+ upload_state: this.$parent.$parent.item.f_upload_state,
416
+ enabled: false,//控制限制购气是否可选
417
+ deleteenabled: false,
418
+ showmodel: false,
419
+ showbacklist:'是',
420
+ backlistisselect: false,
421
+ deletebacklistisselect: false,
422
+ radios: [
423
+ {
424
+ label: '满意',
425
+ value: 0,
426
+ isChecked: false,
427
+ },
428
+ {
429
+ label: '基本满意',
430
+ value: 1,
431
+ isChecked: false,
432
+ },
433
+ {
434
+ label: '不满意',
435
+ value: 2,
436
+ isChecked: false,
437
+ },
438
+ ],
439
+ repairitems: [],
440
+ repairstypes: this.$appdata.getParam('报修类型'),
441
+ // f_repair_person: this.readRepair(),
442
+ showrepair: false,
443
+ safeCheckToRepair: '',
444
+ showCheckToRepair: false,
445
+ userid: '',
446
+ source:
447
+ 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
448
+ 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
449
+ isback: false,
450
+ defectDevice: {},
451
+ detail: {},
452
+ callObj: null,
453
+ user: {},
454
+ role: this.$parent.$parent.role,
455
+ handling: [{label: '转站点', value: '转站点'}, {label: '转维修员', value: '转维修员'}],
456
+ Url: this.$androidUtil.getProxyUrl(),
457
+ cause: "",
458
+ deletecause: "",
459
+ isRecodr: "false", //单值参数,为true则是开启全程录音
460
+ }
461
+ },
462
+ props: ['idx'],
463
+ components: {
464
+ RadioGroup,
465
+ Radio
466
+ },
467
+ methods: {
468
+ timeSet(val) {
469
+ //////tag
470
+ if (!val) {
471
+ return
472
+ }
473
+ let time = new Date(val).getTime()
474
+ let time2 = new Date().getTime()
475
+ if (time2 > time) {
476
+ return true
477
+ }
478
+ },
479
+ // async isoverDate(){
480
+ // ////tag
481
+ // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
482
+ // condition:"f_plan_item_id='"+this.$parent.$parent.item.id+"'"
483
+ // }
484
+ // })
485
+ // this.isneedDate=res.data[0]["f_subscribe_date"]
486
+ // ////tag
487
+ // },
488
+ check(index) {
489
+ ////tag
490
+ // 先取消所有选中项
491
+ for (let item of this.radios) {
492
+ item.isChecked = false;
493
+ }
494
+ //再设置当前点击项选中
495
+ this.paper.f_client_evaluation = this.radios[index].label;
496
+ // 设置值,以供传递
497
+ this.radios[index].isChecked = true;
498
+ ////tag;
499
+ },
500
+ getSignValue(fileName) {
501
+ this.f_signname = fileName
502
+ },
503
+ videoCallBack(fileName) {
504
+ this.$set('paper.f_video_path', fileName)
505
+ HostApp.__callback__ = null
506
+ HostApp.__this__ = null
507
+ },
508
+ takeVideo() {
509
+ HostApp.__callback__ = this.videoCallBack
510
+ HostApp.__this__ = this
511
+ let fileName = Util.guid() + '.mp4'
512
+ HostApp._open_a_page({
513
+ type: 'boomerang',
514
+ page: 'com.aofeng.hybrid.android.peripheral.VideoActivity',
515
+ param: {
516
+ file: fileName,
517
+ requestCode: 111,
518
+ callback: 'javascript:HostApp.__callback__("%s");'
519
+ }
520
+ })
521
+ },
522
+ cameraCallBack(prop, fileName) {
523
+ if (prop == 'f_overall_path') {
524
+ let f_overall_path = fileName + '?' + Math.random()
525
+ HostApp.__this__.paper.f_overall_imgs.push({
526
+ f_overall_path: f_overall_path
527
+ })
528
+ } else {
529
+ HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
530
+ }
531
+ HostApp.__callback__ = null
532
+ HostApp.__this__ = null
533
+ },
534
+ takePic(prop, title, index) {
535
+ HostApp.__callback__ = this.cameraCallBack
536
+ HostApp.__this__ = this
537
+ ////tag
538
+ ////tag
539
+ let fileName
540
+ if (prop == 'f_overall_path') {
541
+ if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
542
+ fileName = Util.guid() + '-' + prop + '.jpg'
543
+ } else {
544
+ fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
545
+ }
546
+ } else {
547
+ if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
548
+ fileName = Util.guid() + '-' + prop + '.jpg'
549
+ } else {
550
+ fileName = Util.getFileName(this.paper[prop])
551
+ }
552
+ }
553
+ let jingweidu = ''
554
+ if (this.$parent.$parent.is_has_jingweidu == 'true'){
555
+ const obj = HostApp.getGpsDetailAddress()
556
+ jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
557
+ }
558
+ HostApp._open_a_page({
559
+ type: 'boomerang',
560
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
561
+ param: {
562
+ file: fileName,
563
+ requestCode: 111,
564
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
565
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name + '\t' + this.paper.f_userinfo_code+ '\t' + this.paper.f_user_name+ '\t' + this.paper.f_address
566
+ +jingweidu
567
+ }
568
+ })
569
+ },
570
+ amrCallBack(fileName) {
571
+ HostApp.__this__.$set('paper.f_recording1_path', fileName)
572
+ HostApp.__callback__ = null
573
+ HostApp.__this__ = null
574
+ },
575
+ record() {
576
+ if (this.$parent.$parent.role != 'inspect') {
577
+ if (this.paper.f_recording1_path != '') {
578
+ window.location = this.paper.f_recording1_path
579
+ }
580
+ } else {
581
+ HostApp.__callback__ = this.amrCallBack
582
+ HostApp.__this__ = this
583
+ let fileName
584
+ if (!this.paper.f_recording1_path) {
585
+ fileName = Util.guid() + '.amr'
586
+ } else {
587
+ fileName = Util.getFileName(this.paper.f_recording1_path)
588
+ }
589
+ HostApp._open_a_page({
590
+ type: 'boomerang',
591
+ page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
592
+ param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
593
+ })
594
+ }
595
+ },
596
+ // 签名回调
597
+ signCallback(prop, fileName) {
598
+ // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
599
+ HostApp.__this__.$set('paper.f_sign_path', fileName)
600
+ HostApp.__callback__ = null
601
+ HostApp.__this__ = null
602
+ },
603
+ // 用户签名
604
+ sign() {
605
+ if (!this.paper.f_read_instructions) {
606
+ this.$showMessage('请先阅读并勾选用户须知内容后进行签名!')
607
+ return
608
+ }
609
+ this.delAudioFile('f_sign_path', this.paper.f_sign_path)
610
+ let prop = 'f_sign_path'
611
+ let idx = 'aofeng'
612
+ let fileName
613
+ if (!this.paper.f_sign_path) {
614
+ fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
615
+ } else {
616
+ fileName = Util.getFileName(this.paper.f_sign_path)
617
+ }
618
+ HostApp.__callback__ = this.signCallback
619
+ HostApp.__this__ = this
620
+ HostApp.getSignature({
621
+ file: fileName,
622
+ requestCode: 111,
623
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
624
+ })
625
+ },
626
+ delfile(prop, fileName, index) {
627
+ if (fileName == Vue.nopic)
628
+ return
629
+ else {
630
+ if (prop == 'f_overall_path') {
631
+ this.paper.f_overall_imgs.splice(index, 1)
632
+ HostApp.delfile(fileName)
633
+ } else {
634
+ HostApp.delfile(fileName)
635
+ this.paper[prop] = Vue.nopic
636
+ }
637
+ }
638
+ },
639
+ delAudioFile(prop, fileName) {
640
+ if (!fileName)
641
+ return
642
+ else {
643
+ HostApp.delfile(fileName)
644
+ this.paper[prop] = null
645
+ }
646
+ },
647
+ //获取打印用户信息
648
+ getUser() {
649
+ if (this.paper.f_user_name == undefined)
650
+ this.paper.f_user_name = ''
651
+ this.printContent.push({
652
+ type: 3,
653
+ text: '用户名称:' + this.paper.f_user_name,
654
+ fontsize: 2,
655
+ isbold: false,
656
+ align: 'left'
657
+ })
658
+ if (this.paper.f_userinfo_code == undefined)
659
+ this.paper.f_userinfo_code = ''
660
+ this.printContent.push({
661
+ type: 3,
662
+ text: '用户编号:' + this.paper.f_userinfo_code,
663
+ fontsize: 2,
664
+ isbold: false,
665
+ align: 'left'
666
+ })
667
+ if (this.paper.f_address == undefined)
668
+ this.paper.f_address = ''
669
+ this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
670
+ if (this.paper.f_user_phone == undefined)
671
+ this.paper.f_user_phone = ''
672
+ this.printContent.push({
673
+ type: 3,
674
+ text: '电话:' + this.paper.f_user_phone,
675
+ fontsize: 2,
676
+ isbold: false,
677
+ align: 'left'
678
+ })
679
+ },
680
+ verify() {
681
+ let hasError = this.$parent.$parent.verifyUser()
682
+ if (hasError)
683
+ return hasError
684
+ hasError = this.$parent.$parent.verifyDevices()
685
+ if (hasError)
686
+ return hasError
687
+ },
688
+ print() {
689
+ let errString = this.verify()
690
+ if (errString) {
691
+ ////tag
692
+ if (Vue.android)
693
+ this.$showMessage(errString)
694
+ return
695
+ }
696
+ // 文本
697
+ let templatename = '安检结果单'
698
+ if (Vue.config.safecheck != undefined) {
699
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
700
+ if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
701
+ templatename = Vue.config.safecheck.ApproveConfig.templatename
702
+ }
703
+ }
704
+ }
705
+ let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
706
+ let feedPageHead = {type: 4, value: 2, unit: 'line'}
707
+ let feedPageEnd = {type: 4, value: 4, unit: 'line'}
708
+ this.printContent.push(textHead)
709
+ this.printContent.push(feedPageHead)
710
+ this.getUser()
711
+ this.getDefect()
712
+ this.getCheck()
713
+ this.printContent.push(feedPageEnd)
714
+ let arrstr = JSON.stringify(this.printContent)
715
+ ////tag
716
+ this.$androidUtil.print(arrstr)
717
+ this.$set('printContent', [])
718
+ },
719
+ //打印安检信息
720
+ getCheck() {
721
+ let telephone = '96777'
722
+ if (Vue.config.safecheck != undefined) {
723
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
724
+ if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
725
+ telephone = Vue.config.safecheck.ApproveConfig.checkphone
726
+ }
727
+ }
728
+ }
729
+ this.printContent.push({
730
+ type: 3,
731
+ text: '*******************************',
732
+ fontsize: 3,
733
+ isbold: false,
734
+ align: 'center'
735
+ })
736
+ this.printContent.push({type: 3, text: '咨询电话;' + telephone, fontsize: 2, isbold: false, align: 'left'})
737
+ this.printContent.push({type: 3, text: '安检人:' + Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
738
+ this.printContent.push({
739
+ type: 3,
740
+ text: '安检时间:' + this.getNowFormatDate(),
741
+ fontsize: 2,
742
+ isbold: false,
743
+ align: 'left'
744
+ })
745
+ this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
746
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
747
+ },
748
+
749
+ getDefect() {
750
+ let showmore = false
751
+ if (Vue.config.safecheck != undefined) {
752
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
753
+ if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
754
+ showmore = Vue.config.safecheck.ApproveConfig.showmore
755
+ }
756
+ }
757
+ }
758
+
759
+ let backData = this.$parent.$parent.getAllDefect()
760
+ // 对隐患信息进行遍历
761
+ let res = JSON.parse(backData.f_defect_content)
762
+ this.printContent.push({
763
+ type: 3,
764
+ text: '安检结果:' + res.result,
765
+ fontsize: 2,
766
+ isbold: false,
767
+ align: 'left'
768
+ })
769
+ this.printContent.push({
770
+ type: 3,
771
+ text: '*******************************',
772
+ fontsize: 3,
773
+ isbold: false,
774
+ align: 'center'
775
+ })
776
+
777
+
778
+ if (showmore) {
779
+ //全部打印
780
+ for (let dev in this.$parent.$parent.config) {
781
+ for (let device in backData) {
782
+ if (device.startsWith("device")) {
783
+ for (let item in backData[device]) {
784
+ //遍历结果
785
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
786
+ let error = true
787
+ for (let i in backData[device][item].f_items) {
788
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
789
+ error = false
790
+ }
791
+ }
792
+ if (error) {
793
+ this.printContent.push({
794
+ type: 3,
795
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
796
+ fontsize: 2,
797
+ isbold: false,
798
+ align: 'left'
799
+ })
800
+ } else {
801
+ this.printContent.push({
802
+ type: 3,
803
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
804
+ fontsize: 2,
805
+ isbold: true,
806
+ align: 'left'
807
+ })
808
+ }
809
+
810
+ for (let i in backData[device][item].f_items) {
811
+ if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
812
+ this.printContent.push({
813
+ type: 3,
814
+ text: backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
815
+ fontsize: 2,
816
+ isbold: false,
817
+ align: 'left'
818
+ })
819
+ }
820
+ }
821
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
822
+ }
823
+ }
824
+ }
825
+ }
826
+ }
827
+
828
+ for (let dev in this.$parent.$parent.config) {
829
+ for (let device in backData) {
830
+ if (device.startsWith("device")) {
831
+ for (let item in backData[device]) {
832
+ //遍历结果
833
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
834
+ let error = true
835
+ for (let i in backData[device][item].f_items) {
836
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
837
+ error = false
838
+ }
839
+ }
840
+ if (!error) {
841
+ this.printContent.push({
842
+ type: 3,
843
+ text: '隐患:',
844
+ fontsize: 2,
845
+ isbold: true,
846
+ align: 'left'
847
+ })
848
+ }
849
+ }
850
+ }
851
+ }
852
+ }
853
+ for (let device in backData) {
854
+ if (device.startsWith("device")) {
855
+ for (let item in backData[device]) {
856
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
857
+ for (let i in backData[device][item].f_items) {
858
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
859
+ this.printContent.push({
860
+ type: 3,
861
+ text: backData[device][item].f_items[i].f_item_name + ' ' + backData[device][item].f_items[i].f_item_value,
862
+ fontsize: 2,
863
+ isbold: true,
864
+ align: 'left'
865
+ })
866
+ }
867
+ }
868
+ }
869
+ }
870
+ }
871
+ }
872
+
873
+ }
874
+ } else {
875
+ for (let dev in this.$parent.$parent.config) {
876
+ for (let device in backData) {
877
+ if (device.startsWith("device")) {
878
+ for (let item in backData[device]) {
879
+ //遍历结果
880
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
881
+ let error = true
882
+ for (let i in backData[device][item].f_items) {
883
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
884
+ error = false
885
+ }
886
+ }
887
+ if (error) {
888
+ this.printContent.push({
889
+ type: 3,
890
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
891
+ fontsize: 2,
892
+ isbold: false,
893
+ align: 'left'
894
+ })
895
+ } else {
896
+ this.printContent.push({
897
+ type: 3,
898
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
899
+ fontsize: 2,
900
+ isbold: false,
901
+ align: 'left'
902
+ })
903
+ }
904
+
905
+ for (let i in backData[device][item].f_items) {
906
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
907
+ this.printContent.push({
908
+ type: 3,
909
+ text: '隐患:' + backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
910
+ fontsize: 2,
911
+ isbold: false,
912
+ align: 'left'
913
+ })
914
+ }
915
+ }
916
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
917
+ }
918
+ }
919
+ }
920
+ }
921
+ }
922
+ }
923
+ },
924
+ //获取当前时间
925
+ getNowFormatDate() {
926
+ var date = new Date();
927
+ var seperator1 = "-";
928
+ var seperator2 = ":";
929
+ var month = date.getMonth() + 1;
930
+ var strDate = date.getDate();
931
+ if (month >= 1 && month <= 9) {
932
+ month = "0" + month;
933
+ }
934
+ if (strDate >= 0 && strDate <= 9) {
935
+ strDate = "0" + strDate;
936
+ }
937
+ var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
938
+ + " " + date.getHours() + seperator2 + date.getMinutes()
939
+ + seperator2 + date.getSeconds();
940
+ return currentdate;
941
+ },
942
+ readRepair() {
943
+ let url = this.$androidUtil.getProxyUrl()
944
+ let gen = getRepairs(this, url)
945
+ return co(gen)
946
+ },
947
+ showToRepair() {
948
+ let res = this.hasDefect()
949
+ ////tag
950
+ ////tag
951
+ if (res == '正常') {
952
+ this.showrepair = false
953
+ } else {
954
+ this.showrepair = true
955
+ this.assignObj()
956
+ }
957
+ this.showCheckToRepair = !this.showCheckToRepair
958
+ },
959
+ // 选中部门
960
+ reres(val) {
961
+ if (val.res == undefined) {
962
+ return
963
+ }
964
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
965
+ this.$parent.$parent.model.f_meetunit = val.res
966
+ this.$parent.$parent.model.f_orgstr = val.resids
967
+ var arr = val.res.split('.')
968
+ this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
969
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
970
+ },
971
+ assignObj() {
972
+ this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
973
+ this.$parent.$parent.model.f_user_name = this.paper.f_user_name
974
+ this.$parent.$parent.model.f_address = this.paper.f_address
975
+ this.$parent.$parent.model.f_user_type = this.paper.f_check_type
976
+ this.$parent.$parent.model.f_street = this.paper.f_street
977
+ this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
978
+ this.$parent.$parent.model.f_building = this.paper.f_building
979
+ this.$parent.$parent.model.f_unit = this.paper.f_unit
980
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
981
+ this.$parent.$parent.model.f_room = this.paper.f_room
982
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
983
+ this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
984
+ this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
985
+ },
986
+ hasDefect() {
987
+ let checkResult = '正常'
988
+ let codata = JSON.parse(JSON.stringify(this.paper))
989
+ for (let device in this.paper) {
990
+ if (device.startsWith("device")) {
991
+ for (let item in this.paper[device]) {
992
+ for (let i in this.paper[device][item].f_items) {
993
+ let items = this.paper[device][item].f_items[i]
994
+ ////tag
995
+ if (items.f_is_defect == true || items.f_is_defect == 'true') {
996
+ checkResult = '有隐患'
997
+ }
998
+ }
999
+ }
1000
+ }
1001
+ }
1002
+ return checkResult
1003
+ },
1004
+ uploadPaper() {
1005
+ if (this.showrepair) {
1006
+ ////tag
1007
+ ////tag
1008
+ ////tag
1009
+ ////tag
1010
+
1011
+ if (this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1012
+ this.$showMessage("请选择维修员!")
1013
+ return
1014
+ }
1015
+ if (this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1016
+ this.$showMessage("请选择站点!")
1017
+ return
1018
+ }
1019
+ if (this.$parent.$parent.model.f_repairtype == '') {
1020
+ this.$showMessage("请选择报修类型!")
1021
+ return
1022
+ }
1023
+ this.$parent.$parent.isToRepair = true
1024
+ this.$parent.$parent.uploadCheckPaper()
1025
+ // this.$parent.$parent.savePaper(false).then((res) => {
1026
+ // ////tag
1027
+ // if(res != true){
1028
+ // ////tag
1029
+ // return
1030
+ // }else{
1031
+ // this.$parent.$parent.todo()
1032
+ // }
1033
+ // })
1034
+ } else {
1035
+ this.$parent.$parent.undo()
1036
+ }
1037
+
1038
+ },
1039
+ //确认安检转维修
1040
+
1041
+ undo() {
1042
+ this.showCheckToRepair = !this.showCheckToRepair
1043
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
1044
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
1045
+ this.$parent.$parent.model.f_repairtype = ''
1046
+ this.meading = '转站点'
1047
+ },
1048
+ //取消拉黑
1049
+ async deletebacklist() {
1050
+ if (!this.deletecause) {
1051
+ this.$showMessage("请填写取消拉黑原因!")
1052
+ return
1053
+ }
1054
+ this.paper.f_blocking_cause = this.deletecause
1055
+ ////tag)
1056
+ let http = new HttpResetClass()
1057
+ ////tag
1058
+ let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1059
+ data: {
1060
+ items: "version",
1061
+ tablename: "t_userinfo",
1062
+ condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1063
+ orderitem: "f_userinfo_id"
1064
+ }
1065
+ }, {resolveMsg: null, rejectMsg: null})
1066
+ ////tag)
1067
+ ////tag
1068
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1069
+ data: {
1070
+ "f_operat_type": "取消拉黑",
1071
+ "f_state": "有效",
1072
+ "f_user_name": this.paper.f_user_name,
1073
+ "f_comments": this.paper.f_blocking_cause,
1074
+ "f_operator": Vue.user.name,
1075
+ "f_operatorid": Vue.user.id,
1076
+ "f_orgid": Vue.user.orgid,
1077
+ "f_orgname": Vue.user.orgs,
1078
+ "f_depid": Vue.user.depids,
1079
+ "f_depname": Vue.user.deps,
1080
+ "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行取消拉黑`,
1081
+ "f_userinfo_id": {
1082
+ "f_userinfo_id": this.paper.f_userinfoid,
1083
+ "f_user_state": "正常",
1084
+ "version": res1.data[0].version
1085
+ },
1086
+ "f_limit_times":"",
1087
+ "f_limit_value":""
1088
+ }
1089
+ }, {resolveMsg: null, rejectMsg: null})
1090
+
1091
+ ////tag)
1092
+ if (res2.data.code == 200) {
1093
+ this.showmodelthree = false
1094
+ this.deleteenabled = true
1095
+ this.paper.f_blacklist = "否"
1096
+ this.$showMessage("取消该用户限制购气成功!")
1097
+ } else {
1098
+ this.$showMessage("网络异常,请稍后再试!")
1099
+ }
1100
+ },
1101
+ async backlist() {
1102
+ if (!this.cause) {
1103
+ this.$showMessage("请填写拉黑原因!")
1104
+ return
1105
+ }
1106
+ this.paper.f_blocking_cause = this.cause
1107
+ ////tag)
1108
+ let http = new HttpResetClass()
1109
+ ////tag
1110
+ let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1111
+ data: {
1112
+ items: "version",
1113
+ tablename: "t_userinfo",
1114
+ condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1115
+ orderitem: "f_userinfo_id"
1116
+ }
1117
+ }, {resolveMsg: null, rejectMsg: null})
1118
+ ////tag)
1119
+ ////tag
1120
+ let limit_times=1
1121
+ let limit_value=3
1122
+ if(Vue.config.safecheck && Vue.config.safecheck.ApproveConfig.limit_times && Vue.config.safecheck.ApproveConfig.limit_value){
1123
+ limit_times = Vue.config.safecheck.ApproveConfig.limit_times
1124
+ limit_value = Vue.config.safecheck.ApproveConfig.limit_value
1125
+ }
1126
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1127
+ data: {
1128
+ data:this.$parent.$parent.data,
1129
+ item:this.$parent.$parent.data.item,
1130
+ "f_operat_type": "拉黑",
1131
+ "f_state": "有效",
1132
+ "f_user_name": this.paper.f_user_name,
1133
+ "f_comments": this.paper.f_blocking_cause,
1134
+ "f_operator": Vue.user.name,
1135
+ "f_operate_date":Util.toStandardTimeString(),
1136
+ "f_operatorid": Vue.user.id,
1137
+ "f_orgid": Vue.user.orgid,
1138
+ "f_orgname": Vue.user.orgs,
1139
+ "f_depid": Vue.user.depids,
1140
+ "f_depname": Vue.user.deps,
1141
+ "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行拉黑`,
1142
+ "f_userinfo_id": {
1143
+ "f_userinfo_id": this.paper.f_userinfoid
1144
+ },
1145
+ "f_limit_times":limit_times,
1146
+ "f_limit_value":limit_value
1147
+ }
1148
+ }, {resolveMsg: null, rejectMsg: null})
1149
+
1150
+ ////tag)
1151
+ if (res2.data.code == 200) {
1152
+ this.showmodel = false
1153
+ this.enabled = true
1154
+ this.paper.f_blacklist = "是"
1155
+ this.$showMessage("将该用户限制购气成功!")
1156
+ } else if (res2.data.msg == '数据增加重复') {
1157
+ this.showmodel = false
1158
+ this.enabled = true
1159
+ this.$showMessage("该用户已被限制购气,请勿重复提交!")
1160
+ } else {
1161
+ this.$showMessage("网络异常,请稍后再试!")
1162
+ }
1163
+ },
1164
+ cancel() {
1165
+ this.backlistisselect = false
1166
+ this.showmodel = false
1167
+ },
1168
+ deletecancel() {
1169
+ this.deletebacklistisselect = false
1170
+ this.showmodelthree = false
1171
+ },
1172
+ repiarmancg(val) {
1173
+ if (val) {
1174
+ ////tag
1175
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
1176
+ let http1 = new HttpResetClass()
1177
+ http1.load('POST', `${this.Url}/rs/sql/tel_singleTable_OrderBy`, {
1178
+ data: {
1179
+ items: 'f_user_telephone',
1180
+ tablename: 't_user',
1181
+ condition: `name = '${val}'`,
1182
+ orderitem: 'id'
1183
+ }
1184
+ }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
1185
+ this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
1186
+ })
1187
+ }
1188
+ },
1189
+ },
1190
+ async ready() {
1191
+ this.isRecodr = this.$appdata.getSingleValue('无限制录音')
1192
+ this.isvideo = this.$appdata.getSingleValue('安检录视频')
1193
+ if(this.$appdata.getSingleValue('安检时显示拉黑')){
1194
+ this.showbacklist = this.$appdata.getSingleValue('安检时显示拉黑');
1195
+ }
1196
+ // await this.isoverDate()
1197
+ ////tag
1198
+ ////tag
1199
+ ////tag)
1200
+ ////tag))
1201
+ if (this.$parent.$parent.role == 'repair') {
1202
+ this.$set('style__', 'divmask')
1203
+ this.$set('style_view_', '')
1204
+ } else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
1205
+ this.$set('style__', 'divmask')
1206
+ this.$set('style_view_', 'divmask')
1207
+ ////tag
1208
+ } else {
1209
+ this.$set('style__', '')
1210
+ this.$set('style_view_', '')
1211
+ }
1212
+
1213
+ for (let item of this.radios) {
1214
+ if (this.paper.f_client_evaluation == item.label) {
1215
+ item.isChecked = true;
1216
+ }
1217
+ }
1218
+ if (!this.paper.f_notified_path)
1219
+ this.$set('paper.f_notified_path', Vue.nopic)
1220
+ if (!this.paper.f_sign_path)
1221
+ this.$set('paper.f_sign_path', Vue.nopic)
1222
+ ////tag
1223
+ if (!this.paper.f_overall_imgs) {
1224
+ let imgs = []
1225
+ // imgs.push({f_overall_path:Vue.nopic})
1226
+ this.$set('paper.f_overall_imgs', imgs)
1227
+ ////tag
1228
+ }
1229
+ if (!this.paper.f_overall2_path)
1230
+ this.$set('paper.f_overall2_path', Vue.nopic)
1231
+
1232
+ this.userid = this.role == 'view' ? this.$login.f.id : Vue.user.id
1233
+ if (Vue.config.safecheck != undefined) {
1234
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
1235
+ if (Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
1236
+ this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
1237
+ }
1238
+ }
1239
+ }
1240
+ let device = this.$parent.$parent.data
1241
+ for (const deviceitem in device) {
1242
+ if (deviceitem.startsWith('device')){
1243
+ //tag)
1244
+ if(device[deviceitem].length == 0){
1245
+ continue
1246
+ }
1247
+ let items = device[deviceitem][0].f_items
1248
+ let deviceType = device[deviceitem][0].f_device_type
1249
+ for (let i = 0; i < items.length; i++) {
1250
+ if (items[i].f_is_defect){
1251
+ let reason = items[i].f_item_name+":"
1252
+ if (items[i].type === 'selector' || items[i].type === 'radio' || items[i].type === 'checkbox'){
1253
+ for (let j = 0; j < items[i].f_item_value.length; j++) {
1254
+ if (j+1 === items[i].f_item_value.length){
1255
+ reason += items[i].f_item_value[j]
1256
+ }else{
1257
+ reason += items[i].f_item_value[j] + ","
1258
+ }
1259
+ }
1260
+ }else{
1261
+ reason += items[i].f_item_value
1262
+ }
1263
+ if (items[i].f_path){
1264
+ this.defectImgs.push(items[i].f_path)
1265
+ }
1266
+ if (items[i].f_p1_path){
1267
+ this.defectImgs.push(items[i].f_p1_path)
1268
+ }
1269
+ if (items[i].f_p2_path){
1270
+ this.defectImgs.push(items[i].f_p2_path)
1271
+ }
1272
+ if (items[i].f_p3_path){
1273
+ this.defectImgs.push(items[i].f_p3_path)
1274
+ }
1275
+ if (items[i].tooltip){
1276
+ this.defectToolTip.push(items[i].tooltip)
1277
+ }
1278
+ this.defectReason.push({device:deviceType,deviceitem:reason})
1279
+ }else if(items[i].type === 'errorstring' && items[i].f_item_value ){
1280
+ let reason = items[i].f_item_name+":" + items[i].f_item_value
1281
+ this.defectReason.push({device:deviceType,deviceitem:reason})
1282
+ }
1283
+
1284
+ }
1285
+ }
1286
+ }
1287
+ ////tag
1288
+ ////tag
1289
+ //tag
1290
+ ////tag
1291
+ //tag)
1292
+ //tag)
1293
+ //tag)
1294
+ ////tag
1295
+ ////tag
1296
+ ////tag
1297
+ },
1298
+ watch: {
1299
+ '$parent.$parent.isUpload'(val) {
1300
+ ////tag
1301
+ },
1302
+ 'meading'(val) {
1303
+ ////tag
1304
+ this.$parent.$parent.meading = val
1305
+ },
1306
+ 'backlistisselect'(val) {
1307
+ if (val == true) {
1308
+ this.showmodel = true
1309
+ this.deletebacklistisselect=false
1310
+ }
1311
+ },
1312
+ 'deletebacklistisselect'(val) {
1313
+ if (val == true) {
1314
+ this.showmodelthree = true
1315
+ this.backlistisselect=false
1316
+ }
1317
+ },
1318
+ 'isRecodr'(val) {
1319
+ if (val == 'false' || val == undefined || val == null || val == '' || val == 'undefined') {
1320
+ this.isRecodr = "false";
1321
+ }
1322
+ }
1323
+ }
1324
+ }
1325
+ </script>
1326
+ <style scoped>
1327
+ .panel-self{
1328
+ border-radius: 5px;
1329
+ border:1px solid #c5e1f7;
1330
+ background-color: #F2F6FA;
1331
+ }
1332
+ .text-left{
1333
+ text-align:left;
1334
+ }
1335
+ .font{
1336
+ font: 15px PingFang-SC-Medium;
1337
+ color: #333333;
1338
+ }
1339
+ .showIi{
1340
+ font: 14px PingFang-SC-Medium;
1341
+ color: #666666;
1342
+ }
1343
+ .info{
1344
+ margin-top: 15px;
1345
+ border-radius: 5px;
1346
+ background-color: #f3faff;
1347
+ }
1348
+ .btn-photo{
1349
+ border: 0;
1350
+ border-radius: 7px;
1351
+ background-color: #7dc1f4;
1352
+ font: 15px PingFang-SC-Bold;
1353
+ height: 20%;
1354
+ }
1355
+ .div-photo{
1356
+ width: auto;
1357
+ height: auto;
1358
+ /* margin-top: 10px; */
1359
+ position: absolute;
1360
+ bottom: 10px;
1361
+ right: 10px;
1362
+ }
1363
+ .btn-voice{
1364
+ border-radius: 7px;
1365
+ border: 1px solid #dedede;
1366
+ background-color: #f5fbff;
1367
+ font: 15px PingFang-SC-Bold;
1368
+ color: #499edf;
1369
+ }
1370
+ .save-btn{
1371
+ width: 25%;
1372
+ background-color:#499edf;
1373
+ border-radius: 6px;
1374
+ color: #FFFFFF;
1375
+ font: 15px PingFang-SC-Bold;
1376
+ }
1377
+ .upload-btn{
1378
+ width: 25%;
1379
+ background-color:#ffffff;
1380
+ border: 1px solid #499edf;
1381
+ border-radius: 6px;
1382
+ color: #499edf;
1383
+ font: 15px PingFang-SC-Bold;
1384
+ }
1385
+ .repair-btn{
1386
+ width: 25%;
1387
+ border: 1px solid #499edf;
1388
+ border-radius: 6px;
1389
+ font: 15px PingFang-SC-Bold;
1390
+ }
1391
+ #el_ca_tx{
1392
+ width: 100%;
1393
+ margin: 5px;
1394
+ }
1395
+ #el_ca_txt{
1396
+ width: 100%;
1397
+ margin: 5px;
1398
+ }
1399
+ </style>