telephone-clients 3.0.104-5 → 3.0.104-50-lixian

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1058) hide show
  1. package/.babelignore +1 -1
  2. package/.babelrc +6 -6
  3. package/.eslintrc.js +16 -16
  4. package/CHANGELOG.md +37 -37
  5. package/README.md +38 -38
  6. package/TelephoneClient.iml +12 -12
  7. package/adapter.min.js +2049 -2049
  8. package/android.html +18 -18
  9. package/build.gradle +15 -15
  10. package/index.html +29 -29
  11. package/package.json +3 -3
  12. package/release.bat +5 -5
  13. package/src/AndroidApp.vue +33 -33
  14. package/src/App.vue +54 -54
  15. package/src/android-bootstrap/less/navs.less +333 -333
  16. package/src/android.js +17 -17
  17. package/src/androidBase.js +111 -111
  18. package/src/androidTest.js +18 -18
  19. package/src/bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  20. package/src/bootstrap/less/.csscomb.json +304 -304
  21. package/src/bootstrap/less/.csslintrc +19 -19
  22. package/src/bootstrap/less/alerts.less +73 -73
  23. package/src/bootstrap/less/aofeng/animate.min.css +10 -10
  24. package/src/bootstrap/less/aofeng/standard.less +585 -585
  25. package/src/bootstrap/less/aofeng/themeOne/BinaryTemplate.less +478 -478
  26. package/src/bootstrap/less/aofeng/themeOne/loginStyle.less +1586 -1586
  27. package/src/bootstrap/less/aofeng/themeOne/systemStyle.less +1905 -1905
  28. package/src/bootstrap/less/aofeng/themeTwo/newStyle1.less +415 -415
  29. package/src/bootstrap/less/badges.less +66 -66
  30. package/src/bootstrap/less/bootstrap.less +65 -65
  31. package/src/bootstrap/less/breadcrumbs.less +26 -26
  32. package/src/bootstrap/less/button-groups.less +247 -247
  33. package/src/bootstrap/less/buttons.less +172 -172
  34. package/src/bootstrap/less/carousel.less +269 -269
  35. package/src/bootstrap/less/close.less +34 -34
  36. package/src/bootstrap/less/code.less +69 -69
  37. package/src/bootstrap/less/component-animations.less +33 -33
  38. package/src/bootstrap/less/dropdowns.less +216 -216
  39. package/src/bootstrap/less/forms.less +626 -626
  40. package/src/bootstrap/less/glyphicons.less +305 -305
  41. package/src/bootstrap/less/grid.less +84 -84
  42. package/src/bootstrap/less/input-groups.less +167 -167
  43. package/src/bootstrap/less/jumbotron.less +52 -52
  44. package/src/bootstrap/less/labels.less +64 -64
  45. package/src/bootstrap/less/list-group.less +141 -141
  46. package/src/bootstrap/less/manageStyle/manageChile.less +180 -180
  47. package/src/bootstrap/less/manageStyle/manageStyle.less +1102 -1102
  48. package/src/bootstrap/less/manageStyle/safeStyle.less +498 -498
  49. package/src/bootstrap/less/media.less +66 -66
  50. package/src/bootstrap/less/mixins/alerts.less +14 -14
  51. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  52. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  53. package/src/bootstrap/less/mixins/buttons.less +69 -69
  54. package/src/bootstrap/less/mixins/center-block.less +7 -7
  55. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  56. package/src/bootstrap/less/mixins/forms.less +90 -90
  57. package/src/bootstrap/less/mixins/gradients.less +59 -59
  58. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  59. package/src/bootstrap/less/mixins/grid.less +122 -122
  60. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  61. package/src/bootstrap/less/mixins/image.less +33 -33
  62. package/src/bootstrap/less/mixins/labels.less +12 -12
  63. package/src/bootstrap/less/mixins/list-group.less +30 -30
  64. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  65. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  66. package/src/bootstrap/less/mixins/opacity.less +8 -8
  67. package/src/bootstrap/less/mixins/pagination.less +24 -24
  68. package/src/bootstrap/less/mixins/panels.less +24 -24
  69. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  70. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  71. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  72. package/src/bootstrap/less/mixins/resize.less +6 -6
  73. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  74. package/src/bootstrap/less/mixins/size.less +10 -10
  75. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  76. package/src/bootstrap/less/mixins/table-row.less +44 -44
  77. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  78. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  79. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  80. package/src/bootstrap/less/mixins.less +40 -40
  81. package/src/bootstrap/less/modals.less +151 -151
  82. package/src/bootstrap/less/navbar.less +660 -660
  83. package/src/bootstrap/less/navs.less +285 -285
  84. package/src/bootstrap/less/normalize.less +424 -424
  85. package/src/bootstrap/less/pager.less +76 -76
  86. package/src/bootstrap/less/pagination.less +89 -89
  87. package/src/bootstrap/less/panels.less +275 -275
  88. package/src/bootstrap/less/popovers.less +131 -131
  89. package/src/bootstrap/less/print.less +101 -101
  90. package/src/bootstrap/less/progress-bars.less +87 -87
  91. package/src/bootstrap/less/responsive-embed.less +35 -35
  92. package/src/bootstrap/less/responsive-utilities.less +194 -194
  93. package/src/bootstrap/less/scaffolding.less +161 -161
  94. package/src/bootstrap/less/stand.less +211 -211
  95. package/src/bootstrap/less/standard.less +503 -503
  96. package/src/bootstrap/less/systemStyle.less +860 -860
  97. package/src/bootstrap/less/tables.less +312 -312
  98. package/src/bootstrap/less/theme.less +291 -291
  99. package/src/bootstrap/less/themeOne.less +34 -34
  100. package/src/bootstrap/less/themeTwo.less +27 -27
  101. package/src/bootstrap/less/thumbnails.less +36 -36
  102. package/src/bootstrap/less/tooltip.less +102 -102
  103. package/src/bootstrap/less/type.less +303 -303
  104. package/src/bootstrap/less/utilities.less +55 -55
  105. package/src/bootstrap/less/variables.less +896 -896
  106. package/src/bootstrap/less/wells.less +29 -29
  107. package/src/bus.js +2 -2
  108. package/src/components/CaseContainer.vue +86 -86
  109. package/src/components/ExportExcel.vue +342 -342
  110. package/src/components/ImgSelfTel.vue +126 -126
  111. package/src/components/MaterialsManage/MaterialsBase.vue +177 -177
  112. package/src/components/MaterialsManage/MaterialsList.vue +244 -244
  113. package/src/components/MaterialsManage/MaterialsManage.vue +60 -60
  114. package/src/components/PartialView.vue +44 -44
  115. package/src/components/Test.vue +26 -26
  116. package/src/components/TimelineItem.vue +119 -119
  117. package/src/components/Util/FileUpload.vue +139 -139
  118. package/src/components/Util/ImgSelfSafePlus.vue +156 -156
  119. package/src/components/Util/RightTreeSafe.vue +346 -346
  120. package/src/components/Util/RightTreeSafeDep.vue +350 -350
  121. package/src/components/Util/TelePhoneUpload.vue +279 -279
  122. package/src/components/Util.js +600 -600
  123. package/src/components/android/AddMyTask.vue +353 -353
  124. package/src/components/android/AppHeader.vue +69 -69
  125. package/src/components/android/CameraImg.vue +111 -111
  126. package/src/components/android/CompletedRepair.vue +264 -264
  127. package/src/components/android/EmployeeInfo.vue +59 -59
  128. package/src/components/android/EmployeePage.vue +71 -71
  129. package/src/components/android/Lbt.vue +103 -103
  130. package/src/components/android/LoginApp.vue +374 -374
  131. package/src/components/android/NavBottom.vue +104 -104
  132. package/src/components/changemeter/ChangeMeterAll.vue +189 -189
  133. package/src/components/changemeter/ChangeMeterDetail.vue +300 -300
  134. package/src/components/changemeter/ChangeMeterMain.vue +37 -37
  135. package/src/components/eachart/BarBrokenline.vue +206 -206
  136. package/src/components/eachart/BarChart.vue +165 -165
  137. package/src/components/eachart/PieChart.vue +182 -182
  138. package/src/components/eachart/datesumchart.vue +165 -165
  139. package/src/components/eachart/statework.vue +226 -226
  140. package/src/components/eachart/workorderchart.vue +183 -183
  141. package/src/components/guoxin/Console.vue +393 -365
  142. package/src/components/guoxin/RecordInfoRight.vue +75 -75
  143. package/src/components/guoxin/VisitInfo.vue +270 -270
  144. package/src/components/guoxin/call.state.api.js +217 -215
  145. package/src/components/guoxin/reconnecting-websocket.min.js +1 -1
  146. package/src/components/guoxin/telephone.js +15 -15
  147. package/src/components/map/AMapTrailShowWx.vue +178 -178
  148. package/src/components/map/CallMap.vue +403 -403
  149. package/src/components/map/CriteriaData.vue +81 -81
  150. package/src/components/map/OlMap.vue +831 -831
  151. package/src/components/map/OrderService.vue +249 -249
  152. package/src/components/map/PipeMap.vue +154 -154
  153. package/src/components/map/dragbox.js +234 -234
  154. package/src/components/pay/createQRcode.vue +192 -192
  155. package/src/components/pay/telReadCard.vue +59 -59
  156. package/src/components/pc/AllUser.vue +615 -615
  157. package/src/components/pc/AllUserNew.vue +638 -638
  158. package/src/components/pc/ArrearsList.vue +397 -397
  159. package/src/components/pc/AttendantCallStat.vue +213 -213
  160. package/src/components/pc/AttendantWorkHistory.vue +98 -98
  161. package/src/components/pc/Auxfunc.vue +76 -76
  162. package/src/components/pc/BottleGas/BottleGasManage.vue +304 -304
  163. package/src/components/pc/BottleGasWork.vue +214 -214
  164. package/src/components/pc/BuildReport.vue +60 -60
  165. package/src/components/pc/CallerInfoList.vue +98 -98
  166. package/src/components/pc/ChatMsg.vue +338 -338
  167. package/src/components/pc/ComplainWork.vue +326 -326
  168. package/src/components/pc/Console.vue +617 -617
  169. package/src/components/pc/DelayReply.vue +60 -60
  170. package/src/components/pc/DistributeWork.vue +177 -177
  171. package/src/components/pc/ElseWork.vue +44 -44
  172. package/src/components/pc/ElseWorkList.vue +267 -267
  173. package/src/components/pc/Emoji.vue +64 -64
  174. package/src/components/pc/Evaluate.vue +145 -145
  175. package/src/components/pc/EvaluateList.vue +195 -195
  176. package/src/components/pc/EvaluateModel.vue +53 -53
  177. package/src/components/pc/FailureEdit.vue +192 -192
  178. package/src/components/pc/FailureShow.vue +61 -61
  179. package/src/components/pc/FireQuery.vue +165 -165
  180. package/src/components/pc/FootPrintList.vue +40 -40
  181. package/src/components/pc/GasWork.vue +764 -764
  182. package/src/components/pc/GroupResend.vue +111 -111
  183. package/src/components/pc/InstallWork.vue +734 -734
  184. package/src/components/pc/ManageMaterial.vue +282 -282
  185. package/src/components/pc/MessageList.vue +635 -635
  186. package/src/components/pc/MessageManage.vue +136 -136
  187. package/src/components/pc/MessageManageList.vue +127 -127
  188. package/src/components/pc/MessageManageNew.vue +121 -121
  189. package/src/components/pc/MonitorGroup.vue +82 -82
  190. package/src/components/pc/NewRepairPaper.vue +370 -370
  191. package/src/components/pc/OrderService.vue +182 -182
  192. package/src/components/pc/ProgressBar.vue +50 -50
  193. package/src/components/pc/QueryJoinlv.vue +136 -136
  194. package/src/components/pc/QueryTeleHistory.vue +95 -95
  195. package/src/components/pc/QueryTextHistory.vue +98 -98
  196. package/src/components/pc/QueryVisitHistory.vue +217 -217
  197. package/src/components/pc/ReVisitList.vue +208 -208
  198. package/src/components/pc/RecordInfoRight.vue +84 -84
  199. package/src/components/pc/RecordList.vue +53 -53
  200. package/src/components/pc/RecordList2.vue +155 -155
  201. package/src/components/pc/RecordListLeft.vue +217 -188
  202. package/src/components/pc/RecordReport.vue +181 -181
  203. package/src/components/pc/ReminderOrder.vue +52 -52
  204. package/src/components/pc/RepairHistoryList.vue +152 -152
  205. package/src/components/pc/RepairsWork.vue +867 -840
  206. package/src/components/pc/ReturnRecord.vue +126 -126
  207. package/src/components/pc/RoleSelector.vue +139 -139
  208. package/src/components/pc/RoleSelectorDep.vue +158 -158
  209. package/src/components/pc/SeatInfo.vue +207 -207
  210. package/src/components/pc/Seekwork.vue +310 -310
  211. package/src/components/pc/ServerAppendixInfo.vue +52 -52
  212. package/src/components/pc/ServiceBack.vue +49 -49
  213. package/src/components/pc/ServiceDetails.vue +53 -53
  214. package/src/components/pc/ServiceDetailsNew.vue +53 -53
  215. package/src/components/pc/SiteBack.vue +84 -84
  216. package/src/components/pc/SiteCase.vue +87 -87
  217. package/src/components/pc/SiteSend.vue +316 -281
  218. package/src/components/pc/StandSend.vue +600 -600
  219. package/src/components/pc/StandServer.vue +25 -25
  220. package/src/components/pc/StandWork.vue +91 -91
  221. package/src/components/pc/StandWorkNew.vue +91 -91
  222. package/src/components/pc/TelFindUser.vue +304 -304
  223. package/src/components/pc/TelListener.vue +174 -174
  224. package/src/components/pc/TelLossList.vue +247 -247
  225. package/src/components/pc/TelMaterSelect.vue +225 -225
  226. package/src/components/pc/TelUserMaterSend.vue +171 -171
  227. package/src/components/pc/TeleInfo.vue +140 -140
  228. package/src/components/pc/TeleList.vue +99 -99
  229. package/src/components/pc/TeleOperKl.vue +91 -91
  230. package/src/components/pc/TemplateMessage.vue +92 -92
  231. package/src/components/pc/TextControl.vue +113 -113
  232. package/src/components/pc/TextInfoRight.vue +84 -84
  233. package/src/components/pc/TextList.vue +45 -45
  234. package/src/components/pc/TextListLeft.vue +156 -156
  235. package/src/components/pc/TextServer.vue +154 -154
  236. package/src/components/pc/TextService.vue +849 -849
  237. package/src/components/pc/UserDefinedMessage.vue +90 -90
  238. package/src/components/pc/UserDefinedMessageNew.vue +121 -121
  239. package/src/components/pc/UserOperate.vue +48 -48
  240. package/src/components/pc/VideoPlayer.vue +73 -73
  241. package/src/components/pc/VisitInfo.vue +311 -311
  242. package/src/components/pc/VoiceServer.vue +208 -208
  243. package/src/components/pc/WorkCenter.vue +105 -105
  244. package/src/components/pc/WorkCenterContent.vue +100 -100
  245. package/src/components/pc/WorkCenterList.vue +292 -292
  246. package/src/components/pc/WorkFind.vue +128 -128
  247. package/src/components/pc/WorkHistory.vue +560 -560
  248. package/src/components/pc/WorkList.vue +744 -743
  249. package/src/components/pc/WorkListAll.vue +630 -630
  250. package/src/components/pc/WorkListAllNew.vue +715 -707
  251. package/src/components/pc/WorkListNew.vue +712 -712
  252. package/src/components/pc/WorkMsg.vue +105 -105
  253. package/src/components/pc/analysis/AnalysisMain.vue +423 -423
  254. package/src/components/pc/analysis/StateStatistics.vue +292 -292
  255. package/src/components/pc/analysis/TelephoneAnaly.vue +104 -104
  256. package/src/components/pc/analysis/TelephoneType.vue +270 -270
  257. package/src/components/pc/config/DefaultPrint.js +7 -7
  258. package/src/components/pc/dataManager/KlCatalog.vue +293 -293
  259. package/src/components/pc/dataManager/KlContent.vue +193 -193
  260. package/src/components/pc/dataManager/Knowledge.vue +21 -21
  261. package/src/components/pc/dataManager/Materials.vue +553 -553
  262. package/src/components/pc/dataManager/OutletsList.vue +85 -85
  263. package/src/components/pc/dataManager/SafeEditor.vue +91 -91
  264. package/src/components/pc/dataManager/SafeList.vue +77 -77
  265. package/src/components/pc/dataManager/ShowMaterials.vue +159 -159
  266. package/src/components/pc/dataManager/StopGasManager.vue +320 -320
  267. package/src/components/pc/imgmove.vue +192 -192
  268. package/src/components/pc/olddata/OldWorkList.vue +193 -193
  269. package/src/components/pc/serviceDeleteOrder.vue +53 -53
  270. package/src/components/pc/wx/BookingService.vue +407 -407
  271. package/src/components/pc/wx/CustomMenu.vue +154 -154
  272. package/src/components/pc/wx/MenuView.vue +249 -249
  273. package/src/components/pc/wx/MobileView.vue +273 -273
  274. package/src/components/pc/wx/NewsMaterial.vue +144 -144
  275. package/src/components/pc/wx/SelectMaterial.vue +100 -100
  276. package/src/components/pc/wx/TelOutletsManager.vue +186 -186
  277. package/src/components/pos/Init.vue +213 -213
  278. package/src/components/pos/Main.vue +123 -123
  279. package/src/components/pos/Plugin/AndroidPlugin.js +148 -148
  280. package/src/components/pos/Plugin/PosUtil.js +315 -315
  281. package/src/components/pos/aotePos.js +55 -55
  282. package/src/components/pos/bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  283. package/src/components/pos/bootstrap/less/.csscomb.json +304 -304
  284. package/src/components/pos/bootstrap/less/.csslintrc +19 -19
  285. package/src/components/pos/bootstrap/less/alerts.less +73 -73
  286. package/src/components/pos/bootstrap/less/badges.less +66 -66
  287. package/src/components/pos/bootstrap/less/bootstrap.less +56 -56
  288. package/src/components/pos/bootstrap/less/breadcrumbs.less +26 -26
  289. package/src/components/pos/bootstrap/less/button-groups.less +247 -247
  290. package/src/components/pos/bootstrap/less/buttons.less +172 -172
  291. package/src/components/pos/bootstrap/less/carousel.less +269 -269
  292. package/src/components/pos/bootstrap/less/close.less +34 -34
  293. package/src/components/pos/bootstrap/less/code.less +69 -69
  294. package/src/components/pos/bootstrap/less/component-animations.less +33 -33
  295. package/src/components/pos/bootstrap/less/dropdowns.less +216 -216
  296. package/src/components/pos/bootstrap/less/forms.less +626 -626
  297. package/src/components/pos/bootstrap/less/glyphicons.less +305 -305
  298. package/src/components/pos/bootstrap/less/grid.less +84 -84
  299. package/src/components/pos/bootstrap/less/input-groups.less +167 -167
  300. package/src/components/pos/bootstrap/less/jumbotron.less +52 -52
  301. package/src/components/pos/bootstrap/less/labels.less +64 -64
  302. package/src/components/pos/bootstrap/less/list-group.less +141 -141
  303. package/src/components/pos/bootstrap/less/media.less +66 -66
  304. package/src/components/pos/bootstrap/less/mixins/alerts.less +14 -14
  305. package/src/components/pos/bootstrap/less/mixins/background-variant.less +9 -9
  306. package/src/components/pos/bootstrap/less/mixins/border-radius.less +18 -18
  307. package/src/components/pos/bootstrap/less/mixins/buttons.less +69 -69
  308. package/src/components/pos/bootstrap/less/mixins/center-block.less +7 -7
  309. package/src/components/pos/bootstrap/less/mixins/clearfix.less +22 -22
  310. package/src/components/pos/bootstrap/less/mixins/forms.less +90 -90
  311. package/src/components/pos/bootstrap/less/mixins/gradients.less +59 -59
  312. package/src/components/pos/bootstrap/less/mixins/grid-framework.less +92 -92
  313. package/src/components/pos/bootstrap/less/mixins/grid.less +122 -122
  314. package/src/components/pos/bootstrap/less/mixins/hide-text.less +21 -21
  315. package/src/components/pos/bootstrap/less/mixins/image.less +33 -33
  316. package/src/components/pos/bootstrap/less/mixins/labels.less +12 -12
  317. package/src/components/pos/bootstrap/less/mixins/list-group.less +30 -30
  318. package/src/components/pos/bootstrap/less/mixins/nav-divider.less +10 -10
  319. package/src/components/pos/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  320. package/src/components/pos/bootstrap/less/mixins/opacity.less +8 -8
  321. package/src/components/pos/bootstrap/less/mixins/pagination.less +24 -24
  322. package/src/components/pos/bootstrap/less/mixins/panels.less +24 -24
  323. package/src/components/pos/bootstrap/less/mixins/progress-bar.less +10 -10
  324. package/src/components/pos/bootstrap/less/mixins/reset-filter.less +8 -8
  325. package/src/components/pos/bootstrap/less/mixins/reset-text.less +18 -18
  326. package/src/components/pos/bootstrap/less/mixins/resize.less +6 -6
  327. package/src/components/pos/bootstrap/less/mixins/responsive-visibility.less +15 -15
  328. package/src/components/pos/bootstrap/less/mixins/size.less +10 -10
  329. package/src/components/pos/bootstrap/less/mixins/tab-focus.less +9 -9
  330. package/src/components/pos/bootstrap/less/mixins/table-row.less +44 -44
  331. package/src/components/pos/bootstrap/less/mixins/text-emphasis.less +9 -9
  332. package/src/components/pos/bootstrap/less/mixins/text-overflow.less +8 -8
  333. package/src/components/pos/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  334. package/src/components/pos/bootstrap/less/mixins.less +40 -40
  335. package/src/components/pos/bootstrap/less/modals.less +151 -151
  336. package/src/components/pos/bootstrap/less/navbar.less +660 -660
  337. package/src/components/pos/bootstrap/less/navs.less +286 -286
  338. package/src/components/pos/bootstrap/less/normalize.less +424 -424
  339. package/src/components/pos/bootstrap/less/pager.less +76 -76
  340. package/src/components/pos/bootstrap/less/pagination.less +89 -89
  341. package/src/components/pos/bootstrap/less/panels.less +274 -274
  342. package/src/components/pos/bootstrap/less/popovers.less +131 -131
  343. package/src/components/pos/bootstrap/less/print.less +101 -101
  344. package/src/components/pos/bootstrap/less/progress-bars.less +87 -87
  345. package/src/components/pos/bootstrap/less/responsive-embed.less +35 -35
  346. package/src/components/pos/bootstrap/less/responsive-utilities.less +194 -194
  347. package/src/components/pos/bootstrap/less/scaffolding.less +161 -161
  348. package/src/components/pos/bootstrap/less/tables.less +262 -262
  349. package/src/components/pos/bootstrap/less/theme.less +291 -291
  350. package/src/components/pos/bootstrap/less/thumbnails.less +36 -36
  351. package/src/components/pos/bootstrap/less/tooltip.less +102 -102
  352. package/src/components/pos/bootstrap/less/type.less +303 -303
  353. package/src/components/pos/bootstrap/less/utilities.less +55 -55
  354. package/src/components/pos/bootstrap/less/variables.less +895 -895
  355. package/src/components/pos/bootstrap/less/wells.less +29 -29
  356. package/src/components/pos/charge/card/CardInfo.vue +43 -43
  357. package/src/components/pos/charge/card/CheckUser.Vue +116 -116
  358. package/src/components/pos/charge/card/ReadCardInter.vue +177 -177
  359. package/src/components/pos/charge/card/ReadCardToBuy.vue +174 -174
  360. package/src/components/pos/charge/card/SelectUser.Vue +104 -104
  361. package/src/components/pos/charge/machine/MachineSearch.Vue +124 -124
  362. package/src/components/pos/charge/sellgas/AdvertPop.vue +70 -70
  363. package/src/components/pos/charge/sellgas/CardSellGas.vue +361 -361
  364. package/src/components/pos/charge/sellgas/ChoosePayWay.vue +275 -275
  365. package/src/components/pos/charge/sellgas/GudingPrice.vue +38 -38
  366. package/src/components/pos/charge/sellgas/JietiPrice.vue +54 -54
  367. package/src/components/pos/charge/sellgas/ScanQrcode.vue +171 -171
  368. package/src/components/pos/charge/sellgas/WriteCard.vue +366 -366
  369. package/src/components/pos/charge/userinfo/ChangeMeterList.vue +43 -43
  370. package/src/components/pos/charge/userinfo/FillGasList.vue +43 -43
  371. package/src/components/pos/charge/userinfo/HistorySellList.vue +90 -90
  372. package/src/components/pos/charge/userinfo/OtherList.vue +43 -43
  373. package/src/components/pos/charge/userinfo/SellList.vue +43 -43
  374. package/src/components/pos/charge/userinfo/TransList.vue +43 -43
  375. package/src/components/pos/charge/userinfo/UserInfo.vue +176 -176
  376. package/src/components/pos/charge/userinfo/WritecardInfo.vue +44 -44
  377. package/src/components/pos/css/bootstrap.less +6757 -6757
  378. package/src/components/pos/css/style.less +158 -158
  379. package/src/components/pos/css/style.less.bak +84 -84
  380. package/src/components/pos/fonts/fontawesome-webfont.svg +2671 -2671
  381. package/src/components/pos/fonts/glyphicons-halflings-regular.svg +287 -287
  382. package/src/components/pos/js/bootstrap.js +2377 -2377
  383. package/src/components/pos/js/bootstrap.min.js +6 -6
  384. package/src/components/pos/js/jquery.chromatable.js +150 -150
  385. package/src/components/pos/js/jquery.min.js +5 -5
  386. package/src/components/pos/js/npm.js +12 -12
  387. package/src/components/pos/ztprint.js +26 -26
  388. package/src/components/qinhua/qhonlineChangeMeter.vue +440 -440
  389. package/src/components/qinhua/qhonlineoperation.vue +227 -227
  390. package/src/components/reli/ChoosePayWay.vue +179 -179
  391. package/src/components/reli/HistorySellLists.vue +128 -128
  392. package/src/components/reli/MachineMain.vue +470 -470
  393. package/src/components/reli/UserInfo.vue +211 -211
  394. package/src/components/reli/searchSells.vue +446 -446
  395. package/src/components/repaircount/RepairDetail.vue +74 -74
  396. package/src/components/repaircount/RepairPlan.vue +58 -58
  397. package/src/components/repaircount/SelectRepairPlan.vue +189 -189
  398. package/src/components/sale/CardMeterCenter.vue +625 -625
  399. package/src/components/sale/IOTMeterCenter.vue +443 -443
  400. package/src/components/sale/MachineMeterCenter.vue +591 -591
  401. package/src/components/sendsingle/CardChangeFill.vue +338 -338
  402. package/src/components/sendsingle/ChangeSendCard.vue +19 -19
  403. package/src/components/sendsingle/IotChangeFill.vue +471 -471
  404. package/src/components/sendsingle/MachineChangeFill.vue +143 -143
  405. package/src/components/sendsingle/PosMakeGas.vue +342 -342
  406. package/src/components/sendsingle/QueryTemporaryRepair.vue +226 -226
  407. package/src/components/sendsingle/TelLotChangeFill.vue +626 -626
  408. package/src/components/sendsingle/TemporarySingle.vue +480 -480
  409. package/src/components/sendsingle/ceshi.vue +51 -51
  410. package/src/components/sendsingle/onlineBuyGas.vue +632 -632
  411. package/src/components/sendsingle/onlineBuyGasOld.vue +19 -19
  412. package/src/components/sendsingle/onlineChangeMeter.vue +419 -419
  413. package/src/components/sendsingle/onlinemakecard.vue +413 -413
  414. package/src/components/sendsingle/onlineoperation.vue +401 -401
  415. package/src/components/sendsingle/onlinequeryuser.vue +468 -468
  416. package/src/components/sendsingle/posMaintainer.vue +277 -277
  417. package/src/components/shaoguan/DelayReply.vue +60 -60
  418. package/src/components/shaoguan/FailureEdit.vue +172 -172
  419. package/src/components/shaoguan/RepairDetailsChange.vue +399 -399
  420. package/src/components/shaoguan/RepairOrderChange.vue +673 -673
  421. package/src/components/shaoguan/RepairUserInfoChange.vue +532 -532
  422. package/src/components/shaoguan/WorkHistory.vue +346 -346
  423. package/src/components/shaoguan/WorkListAll.vue +521 -521
  424. package/src/components/shaoguan/config/DefaultPrint.js +7 -7
  425. package/src/components/telcount/TelByAttendant.vue +118 -118
  426. package/src/components/telcount/TelByLouQi.vue +113 -113
  427. package/src/components/telcount/TelByLouQiMingxi.vue +117 -117
  428. package/src/components/telcount/TelByOrderMan.vue +105 -105
  429. package/src/components/telcount/TelByWeiXiu.vue +199 -199
  430. package/src/components/telcount/TelByZhiHuan.vue +109 -109
  431. package/src/components/telreport/HotlineMonthly.vue +121 -121
  432. package/src/components/telreport/RepairsDetailsReport.vue +98 -98
  433. package/src/components/telreport/TableFaultReport.vue +96 -96
  434. package/src/components/telreport/TelAgentVoiceReport.vue +275 -275
  435. package/src/components/telreport/TelMan.vue +127 -127
  436. package/src/components/telreport/TelReport.vue +122 -122
  437. package/src/components/telreport/TelephoneManReport.vue +121 -121
  438. package/src/components/telreport/Traffic.vue +94 -94
  439. package/src/components/telreport/TrafficClassificationReport.vue +135 -134
  440. package/src/components/telreport/Trafficassess.vue +121 -121
  441. package/src/components/temp/BusinessMessage.vue +60 -60
  442. package/src/components/temp/BusinesscheckInfo.vue +82 -82
  443. package/src/components/temp/CallRecords.vue +86 -86
  444. package/src/components/temp/ChangemeterInfo.vue +75 -75
  445. package/src/components/temp/DeviceInfo.vue +80 -80
  446. package/src/components/temp/DisableInforMation.vue +82 -82
  447. package/src/components/temp/HandplanInfo.vue +93 -89
  448. package/src/components/temp/InfoTable.vue +134 -134
  449. package/src/components/temp/InstructInfo.vue +86 -86
  450. package/src/components/temp/Main.vue +375 -375
  451. package/src/components/temp/MetereadInfo.vue +80 -80
  452. package/src/components/temp/MetterInfo.vue +92 -92
  453. package/src/components/temp/OldRepairList.vue +100 -100
  454. package/src/components/temp/ParamManager/ParamPage.vue +285 -285
  455. package/src/components/temp/ParamManager/SinglePage.vue +161 -161
  456. package/src/components/temp/RepairList.vue +125 -125
  457. package/src/components/temp/SecurityMessage.vue +64 -64
  458. package/src/components/temp/SecuritycheckInfo.vue +73 -73
  459. package/src/components/temp/SellInfo.vue +153 -153
  460. package/src/components/temp/TelList.vue +99 -99
  461. package/src/components/temp/rightview/CardList.vue +287 -287
  462. package/src/components/temp/rightview/RecordCancel.vue +103 -103
  463. package/src/components/temp/rightview/carddetail/AddUserDetail.vue +65 -65
  464. package/src/components/temp/rightview/carddetail/BankDKDetail.vue +75 -75
  465. package/src/components/temp/rightview/carddetail/BankPay.vue +75 -75
  466. package/src/components/temp/rightview/carddetail/CancellationDetail.vue +58 -58
  467. package/src/components/temp/rightview/carddetail/CardMeterCenterDetail.vue +58 -58
  468. package/src/components/temp/rightview/carddetail/CardOverUserDetail.vue +62 -62
  469. package/src/components/temp/rightview/carddetail/ChangeMeterDetail.vue +70 -70
  470. package/src/components/temp/rightview/carddetail/OtherChargeDetail.vue +56 -56
  471. package/src/components/temp/rightview/carddetail/RefundDetail.vue +63 -63
  472. package/src/components/temp/rightview/carddetail/ReissueBill.vue +165 -165
  473. package/src/components/temp/rightview/carddetail/SortingQuery.vue +295 -295
  474. package/src/components/temp/rightview/carddetail/UserChangeDetail.vue +77 -77
  475. package/src/components/temp/rightview/carddetail/WeChatPay.vue +75 -75
  476. package/src/components/temp/server/ChangeDeclare.vue +45 -45
  477. package/src/components/temp/server/LoadData.vue +60 -60
  478. package/src/components/temp/server/Login.vue +401 -401
  479. package/src/components/temp/server/ModifyPw.vue +143 -143
  480. package/src/components/tongcheng/DistributeWork.vue +129 -129
  481. package/src/components/tongcheng/InfoTable.vue +55 -55
  482. package/src/components/tongcheng/MetterInfo.vue +90 -90
  483. package/src/components/tongcheng/RepairsWork.vue +788 -788
  484. package/src/components/tongcheng/SellInfo.vue +152 -152
  485. package/src/components/tongcheng/StandServer.vue +24 -24
  486. package/src/components/tongcheng/UserOperate.vue +43 -43
  487. package/src/components/tongcheng/VoiceServer.vue +136 -136
  488. package/src/components/tongcheng/WorkListAll.vue +535 -535
  489. package/src/components/weinan/ComplainMsg.vue +141 -141
  490. package/src/components/weinan/ComplainWork.vue +205 -205
  491. package/src/components/weinan/Console.vue +418 -418
  492. package/src/components/weinan/DistributeWork.vue +138 -138
  493. package/src/components/weinan/ExportExcel.vue +204 -204
  494. package/src/components/weinan/FailureEdit.vue +182 -182
  495. package/src/components/weinan/InfoTable.vue +67 -67
  496. package/src/components/weinan/RecordList.vue +299 -299
  497. package/src/components/weinan/RepairFirstV.vue +547 -547
  498. package/src/components/weinan/RepairInfo.vue +163 -163
  499. package/src/components/weinan/RepairListTel.vue +96 -96
  500. package/src/components/weinan/RepairOrderV.vue +1447 -1447
  501. package/src/components/weinan/RepairUserInfo.vue +533 -533
  502. package/src/components/weinan/RepairsWork.vue +806 -806
  503. package/src/components/weinan/Seekwork.vue +178 -178
  504. package/src/components/weinan/SiteChange.vue +228 -228
  505. package/src/components/weinan/SiteSend.vue +228 -228
  506. package/src/components/weinan/SiteSendWeixiu.vue +268 -268
  507. package/src/components/weinan/StandWorkWeixiu.vue +91 -91
  508. package/src/components/weinan/TelByAttendant.vue +110 -110
  509. package/src/components/weinan/TelFindUser.vue +241 -241
  510. package/src/components/weinan/WorkList.vue +726 -726
  511. package/src/components/weinan/WorkListAll.vue +974 -974
  512. package/src/components/weinan/WorkListWeixiu.vue +608 -608
  513. package/src/components/workOrderApplication/OrderWorkDetail.vue +796 -796
  514. package/src/components/workOrderApplication/orderApplicationManage.vue +98 -98
  515. package/src/components/workOrderApplication/orderApply.vue +57 -57
  516. package/src/components/workOrderApplication/orderTable.vue +214 -214
  517. package/src/components/workOrderApplication/orderWork.vue +114 -114
  518. package/src/components/workorder/AfTabset.vue +125 -125
  519. package/src/components/workorder/AndroidStopGasManager.vue +270 -270
  520. package/src/components/workorder/AppInstallationMaterial.vue +613 -613
  521. package/src/components/workorder/ChangeMeter.vue +546 -546
  522. package/src/components/workorder/ChangeMeterList.vue +236 -236
  523. package/src/components/workorder/ChangeMeterPage.vue +506 -506
  524. package/src/components/workorder/CompletedInstall.vue +214 -214
  525. package/src/components/workorder/CompletedRepair.vue +321 -321
  526. package/src/components/workorder/CookingUtensils.vue +134 -134
  527. package/src/components/workorder/DelayApply.vue +105 -105
  528. package/src/components/workorder/DeviceService.vue +133 -133
  529. package/src/components/workorder/DoorService.vue +355 -355
  530. package/src/components/workorder/FaultAll.vue +826 -826
  531. package/src/components/workorder/FirstGasCheck.vue +310 -310
  532. package/src/components/workorder/InputSelect.vue +110 -110
  533. package/src/components/workorder/InstallFirst.vue +517 -517
  534. package/src/components/workorder/InstallUpLoad.vue +111 -111
  535. package/src/components/workorder/MaterialSum.vue +238 -238
  536. package/src/components/workorder/MonitorMSend.vue +202 -202
  537. package/src/components/workorder/Othercharge.vue +477 -477
  538. package/src/components/workorder/Outlay.vue +236 -236
  539. package/src/components/workorder/PhoneGroupResend.vue +88 -88
  540. package/src/components/workorder/PhoneStandWork.vue +354 -354
  541. package/src/components/workorder/PhoneUpDetail.vue +1041 -1041
  542. package/src/components/workorder/PhoneUpUserinfo.vue +1041 -1041
  543. package/src/components/workorder/PhotoWrite.vue +116 -116
  544. package/src/components/workorder/Pipeline.vue +497 -497
  545. package/src/components/workorder/QueryTemporaryRepair.vue +220 -220
  546. package/src/components/workorder/ReadCardPage.vue +217 -217
  547. package/src/components/workorder/RepairDetails.vue +613 -613
  548. package/src/components/workorder/RepairDetails22.vue +128 -128
  549. package/src/components/workorder/RepairFirst.vue +170 -170
  550. package/src/components/workorder/RepairFirstOld.vue +410 -410
  551. package/src/components/workorder/RepairFirstV.vue +673 -673
  552. package/src/components/workorder/RepairFirstVnew.vue +542 -542
  553. package/src/components/workorder/RepairInfo.vue +166 -166
  554. package/src/components/workorder/RepairMatterInfo.vue +186 -186
  555. package/src/components/workorder/RepairOrder.vue +688 -688
  556. package/src/components/workorder/RepairOrderV.vue +1446 -1446
  557. package/src/components/workorder/RepairOrderVnew.vue +868 -868
  558. package/src/{filiale/rizhao/pc/NewRepairPaper.vue → components/workorder/RepairPaperAndroid.vue} +351 -377
  559. package/src/components/workorder/RepairSend.vue +264 -264
  560. package/src/components/workorder/RepairUserInfo.vue +532 -532
  561. package/src/components/workorder/Repairpage.vue +100 -100
  562. package/src/components/workorder/RepairsVisit.vue +319 -319
  563. package/src/components/workorder/SafeCheckService.vue +355 -355
  564. package/src/components/workorder/ServiceOnlineQuery.vue +306 -0
  565. package/src/components/workorder/SubstitFirstV.vue +143 -143
  566. package/src/components/workorder/SubstitutionPage.vue +100 -100
  567. package/src/components/workorder/TelChangeMatter.vue +231 -231
  568. package/src/components/workorder/TemporarySingle.vue +480 -480
  569. package/src/components/workorder/TroubleRemoval.vue +419 -419
  570. package/src/components/workorder/UpLoad.vue +111 -111
  571. package/src/components/workorder/ZHihuanFirst.vue +546 -546
  572. package/src/components/workorder/ZhiCompletedRepair.vue +217 -217
  573. package/src/components/workorder/ZhiUpLoad.vue +136 -136
  574. package/src/expandcss.less +620 -620
  575. package/src/filiale/lixian/onlineChangeMeter.vue +481 -0
  576. package/src/filiale/lixian/onlineoperation.vue +606 -0
  577. package/src/filiale/{rongcheng → lixian}/onlinequeryuser.vue +509 -460
  578. package/src/filiale/lixian/telephoneAndroid.js +23 -0
  579. package/src/index.js +15 -15
  580. package/src/main.js +22 -22
  581. package/src/plugins/DataSql.js +569 -569
  582. package/src/plugins/EmojiData.js +514 -514
  583. package/src/plugins/EncryptUtil.js +53 -53
  584. package/src/plugins/HttpLoad.js +93 -93
  585. package/src/plugins/LoadData.js +40 -40
  586. package/src/plugins/LoadParams.js +54 -54
  587. package/src/plugins/LocalPagedList.js +107 -107
  588. package/src/plugins/ObjTree.js +532 -532
  589. package/src/plugins/TelGetSaleParams.js +63 -63
  590. package/src/qrcode.js +618 -618
  591. package/src/qrcode.min.js +1 -1
  592. package/src/stores/exportConfig.js +10 -10
  593. package/src/stores/wxconfig.js +10 -10
  594. package/src/telephone-android.js +373 -367
  595. package/src/telephone-shaoguan.js +256 -256
  596. package/src/telephone-tongcheng.js +254 -254
  597. package/src/telephone.js +749 -749
  598. package/src/telephoneanaly.less +704 -704
  599. package/src/utils/LdapHelper.js +99 -99
  600. package/src/weinan-android.js +350 -350
  601. package/src/weinan.js +537 -537
  602. package/static/fonts/font.css +6 -6
  603. package/static/js/adapter.min.js +2049 -2049
  604. package/static/js/bootstrap.min.js +7 -7
  605. package/static/js/ctilink.js +1303 -1303
  606. package/static/js/ctimsg.js +655 -655
  607. package/static/js/janus.js +4034 -4034
  608. package/static/js/jquery-2.1.1.min.js +5 -5
  609. package/yarn-error.log +7872 -7872
  610. package//345/221/274/345/217/253/345/267/245/345/215/225/351/205/215/347/275/256/350/257/264/346/230/216.md +6 -6
  611. package/src/filiale/fugu/pc/ComplainWork.vue +0 -206
  612. package/src/filiale/fugu/pc/FailureEdit.vue +0 -183
  613. package/src/filiale/fugu/pc/RepairsWork.vue +0 -793
  614. package/src/filiale/fugu/pc/Seekwork.vue +0 -182
  615. package/src/filiale/fugu/telephone.js +0 -16
  616. package/src/filiale/furuike/android/CompletedRepair.vue +0 -210
  617. package/src/filiale/furuike/android/FaultAll.vue +0 -861
  618. package/src/filiale/furuike/android/Materials.vue +0 -410
  619. package/src/filiale/furuike/android/RepairFirstVnew.vue +0 -580
  620. package/src/filiale/furuike/android/RepairOrderVnew.vue +0 -890
  621. package/src/filiale/furuike/pc/Auxfunc.vue +0 -109
  622. package/src/filiale/furuike/pc/CallRcords.vue +0 -109
  623. package/src/filiale/furuike/pc/ChangemeterInfo.vue +0 -87
  624. package/src/filiale/furuike/pc/ComplainWork.vue +0 -348
  625. package/src/filiale/furuike/pc/DeviceInfo.vue +0 -82
  626. package/src/filiale/furuike/pc/DisableInforMation.vue +0 -82
  627. package/src/filiale/furuike/pc/FailureEdit.vue +0 -198
  628. package/src/filiale/furuike/pc/HandplanInfo.vue +0 -78
  629. package/src/filiale/furuike/pc/InfoTable.vue +0 -134
  630. package/src/filiale/furuike/pc/InstructInfo.vue +0 -86
  631. package/src/filiale/furuike/pc/LineReport.vue +0 -215
  632. package/src/filiale/furuike/pc/MaterialWorkOrder/MaterialWork.vue +0 -400
  633. package/src/filiale/furuike/pc/MaterialWorkOrder/MaterialWorkOrderManage.vue +0 -63
  634. package/src/filiale/furuike/pc/MaterialWorkOrder/WorkOrderMaterial.vue +0 -381
  635. package/src/filiale/furuike/pc/MetereadInfo.vue +0 -82
  636. package/src/filiale/furuike/pc/MetterInfo.vue +0 -92
  637. package/src/filiale/furuike/pc/NewRepairPaper.vue +0 -415
  638. package/src/filiale/furuike/pc/ProblemList.vue +0 -170
  639. package/src/filiale/furuike/pc/QueryVisitHistory.vue +0 -183
  640. package/src/filiale/furuike/pc/RecordListLeft.vue +0 -259
  641. package/src/filiale/furuike/pc/ReminderOrder.vue +0 -50
  642. package/src/filiale/furuike/pc/RepairList.vue +0 -102
  643. package/src/filiale/furuike/pc/RepairsWork.vue +0 -918
  644. package/src/filiale/furuike/pc/SecuritycheckInfo.vue +0 -128
  645. package/src/filiale/furuike/pc/Seekwork.vue +0 -352
  646. package/src/filiale/furuike/pc/SellInfo.vue +0 -158
  647. package/src/filiale/furuike/pc/TableReport.vue +0 -160
  648. package/src/filiale/furuike/pc/TelFindUser.vue +0 -229
  649. package/src/filiale/furuike/pc/TelLossList.vue +0 -145
  650. package/src/filiale/furuike/pc/TelePhoneUpload.vue +0 -279
  651. package/src/filiale/furuike/pc/TextServer.vue +0 -168
  652. package/src/filiale/furuike/pc/VoiceServer.vue +0 -216
  653. package/src/filiale/furuike/pc/WorkCenter.vue +0 -104
  654. package/src/filiale/furuike/pc/WorkHistory.vue +0 -576
  655. package/src/filiale/furuike/pc/WorkListAllNew.vue +0 -855
  656. package/src/filiale/furuike/telephone.js +0 -115
  657. package/src/filiale/furuike/telephoneAndroid.js +0 -23
  658. package/src/filiale/gehua/pc/Console.vue +0 -676
  659. package/src/filiale/gehua/pc/TelAgentVoiceReport.vue +0 -285
  660. package/src/filiale/gehua/pc/TelFindUser.vue +0 -214
  661. package/src/filiale/gehua/telephone.js +0 -16
  662. package/src/filiale/gehua/telephoneAndroid.js +0 -9
  663. package/src/filiale/gongyi/android/RepairDetails.vue +0 -542
  664. package/src/filiale/gongyi/android/RepairFirstV.vue +0 -537
  665. package/src/filiale/gongyi/android/RepairOrderV.vue +0 -1415
  666. package/src/filiale/gongyi/pc/WorkListAll.vue +0 -632
  667. package/src/filiale/gongyi/telephone.js +0 -13
  668. package/src/filiale/gongyi/telephoneAndroid.js +0 -15
  669. package/src/filiale/guangxi/android/FaultAll.vue +0 -896
  670. package/src/filiale/guangxi/telephoneAndroid.js +0 -13
  671. package/src/filiale/hanzhong/PagedList.js +0 -248
  672. package/src/filiale/hanzhong/android/Outlay.vue +0 -265
  673. package/src/filiale/hanzhong/android/RepairInfo.vue +0 -167
  674. package/src/filiale/hanzhong/hzSelectUtil.js +0 -84
  675. package/src/filiale/hanzhong/md5.js +0 -266
  676. package/src/filiale/hanzhong/pc/AnalysisMain.vue +0 -477
  677. package/src/filiale/hanzhong/pc/Console.vue +0 -884
  678. package/src/filiale/hanzhong/pc/DistributeWork.vue +0 -420
  679. package/src/filiale/hanzhong/pc/FailureEdit.vue +0 -195
  680. package/src/filiale/hanzhong/pc/RecordInfoRight.vue +0 -84
  681. package/src/filiale/hanzhong/pc/RecordList.vue +0 -53
  682. package/src/filiale/hanzhong/pc/RecordListLeft.vue +0 -196
  683. package/src/filiale/hanzhong/pc/Seekwork.vue +0 -318
  684. package/src/filiale/hanzhong/pc/StateStatistics.vue +0 -292
  685. package/src/filiale/hanzhong/pc/TelFindUser.vue +0 -224
  686. package/src/filiale/hanzhong/pc/TelLossList.vue +0 -137
  687. package/src/filiale/hanzhong/pc/TelephoneAnaly.vue +0 -104
  688. package/src/filiale/hanzhong/pc/TelephoneType.vue +0 -269
  689. package/src/filiale/hanzhong/pc/TextServer.vue +0 -157
  690. package/src/filiale/hanzhong/pc/VoiceServer.vue +0 -208
  691. package/src/filiale/hanzhong/pc/message/AllUser.vue +0 -615
  692. package/src/filiale/hanzhong/pc/message/AllUserNew.vue +0 -638
  693. package/src/filiale/hanzhong/pc/message/ArrearsList.vue +0 -397
  694. package/src/filiale/hanzhong/pc/message/MessageList.vue +0 -635
  695. package/src/filiale/hanzhong/pc/message/MessageManage.vue +0 -136
  696. package/src/filiale/hanzhong/pc/message/MessageManageList.vue +0 -127
  697. package/src/filiale/hanzhong/pc/message/MessageManageNew.vue +0 -121
  698. package/src/filiale/hanzhong/pc/message/TemplateMessage.vue +0 -92
  699. package/src/filiale/hanzhong/pc/message/UserDefinedMessage.vue +0 -90
  700. package/src/filiale/hanzhong/pc/message/UserDefinedMessageNew.vue +0 -121
  701. package/src/filiale/hanzhong/telephone.js +0 -48
  702. package/src/filiale/hanzhong/telephoneAndroid.js +0 -15
  703. package/src/filiale/kelai/android/AppTakePic.vue +0 -143
  704. package/src/filiale/kelai/android/Outlay.vue +0 -274
  705. package/src/filiale/kelai/android/PhoneVentilationLeave.vue +0 -176
  706. package/src/filiale/kelai/android/RepairFirstV.vue +0 -552
  707. package/src/filiale/kelai/android/RepairOrderV.vue +0 -1446
  708. package/src/filiale/kelai/android/RepairTypeList.vue +0 -170
  709. package/src/filiale/kelai/android/RepairUserInfo.vue +0 -537
  710. package/src/filiale/kelai/pc/CallReport/CallReportMainPage-Kelai.vue +0 -612
  711. package/src/filiale/kelai/pc/CallReport/CumulativeCalls.vue +0 -128
  712. package/src/filiale/kelai/pc/CallReport/IncomingTimedata.vue +0 -69
  713. package/src/filiale/kelai/pc/CallReport/Incomingcallvolume.vue +0 -82
  714. package/src/filiale/kelai/pc/CallReport/SeatStatus.vue +0 -60
  715. package/src/filiale/kelai/pc/CallReport/Time.vue +0 -107
  716. package/src/filiale/kelai/pc/CallReport/WorkorderTypesum.vue +0 -76
  717. package/src/filiale/kelai/pc/CallReport/timeRunning.vue +0 -66
  718. package/src/filiale/kelai/pc/KeLaiMaintenanceReport.vue +0 -297
  719. package/src/filiale/kelai/pc/RecordListLeft.vue +0 -188
  720. package/src/filiale/kelai/pc/Seekwork.vue +0 -308
  721. package/src/filiale/kelai/pc/TelAgentVoiceReport.vue +0 -276
  722. package/src/filiale/kelai/pc/TelFindUser.vue +0 -214
  723. package/src/filiale/kelai/pc/TelLossList.vue +0 -154
  724. package/src/filiale/kelai/pc/TextServer.vue +0 -157
  725. package/src/filiale/kelai/pc/Trafficassess.vue +0 -159
  726. package/src/filiale/kelai/pc/VisitInfo.vue +0 -268
  727. package/src/filiale/kelai/pc/VoiceServer.vue +0 -227
  728. package/src/filiale/kelai/pc/WorkCenterList.vue +0 -315
  729. package/src/filiale/kelai/pc/WorkListAllNew.vue +0 -717
  730. package/src/filiale/kelai/pc/serviceDeleteOrder.vue +0 -55
  731. package/src/filiale/kelai/telephone.js +0 -40
  732. package/src/filiale/kelai/telephoneAndroid.js +0 -19
  733. package/src/filiale/liaoyuan/android/FaultAll.vue +0 -737
  734. package/src/filiale/liaoyuan/android/RepairDetails.vue +0 -493
  735. package/src/filiale/liaoyuan/android/RepairOrderV.vue +0 -831
  736. package/src/filiale/liaoyuan/telephoneAndroid.js +0 -13
  737. package/src/filiale/meihekou/android/Othercharge.vue +0 -443
  738. package/src/filiale/meihekou/android/createQRcode.vue +0 -192
  739. package/src/filiale/meihekou/android/onlineBuyGas.vue +0 -793
  740. package/src/filiale/meihekou/telephone.js +0 -13
  741. package/src/filiale/meihekou/telephoneAndroid.js +0 -18
  742. package/src/filiale/qianneng/android/AppInstallationMaterial.vue +0 -1032
  743. package/src/filiale/qianneng/android/Examine.vue +0 -513
  744. package/src/filiale/qianneng/android/FaultAll.vue +0 -883
  745. package/src/filiale/qianneng/android/MaterIialOne.vue +0 -123
  746. package/src/filiale/qianneng/android/PhoneStandWork.vue +0 -412
  747. package/src/filiale/qianneng/android/QueryTemporaryRepair.vue +0 -243
  748. package/src/filiale/qianneng/android/RepairDetails.vue +0 -666
  749. package/src/filiale/qianneng/android/RepairFirstV.vue +0 -615
  750. package/src/filiale/qianneng/android/RepairInfo.vue +0 -147
  751. package/src/filiale/qianneng/android/RepairOrderV.vue +0 -874
  752. package/src/filiale/qianneng/android/RepairUserInfo.vue +0 -542
  753. package/src/filiale/qianneng/android/TemporarySingle.vue +0 -537
  754. package/src/filiale/qianneng/android/chargesList.vue +0 -161
  755. package/src/filiale/qianneng/pc/ComplainWork.vue +0 -324
  756. package/src/filiale/qianneng/pc/DistributeWork.vue +0 -182
  757. package/src/filiale/qianneng/pc/FailureEdit.vue +0 -161
  758. package/src/filiale/qianneng/pc/Indoorinstallation.vue +0 -832
  759. package/src/filiale/qianneng/pc/MaterialDetailed.vue +0 -260
  760. package/src/filiale/qianneng/pc/MaterialStatistics.vue +0 -144
  761. package/src/filiale/qianneng/pc/NewRepairPaper.vue +0 -467
  762. package/src/filiale/qianneng/pc/Outdoorinstallation.vue +0 -736
  763. package/src/filiale/qianneng/pc/RepairsWork.vue +0 -992
  764. package/src/filiale/qianneng/pc/Seekwork.vue +0 -308
  765. package/src/filiale/qianneng/pc/WorkHistory.vue +0 -562
  766. package/src/filiale/qianneng/pc/WorkListAllNew.vue +0 -749
  767. package/src/filiale/qianneng/pc/changetable.vue +0 -273
  768. package/src/filiale/qianneng/telephone.js +0 -22
  769. package/src/filiale/qianneng/telephoneAndroid.js +0 -22
  770. package/src/filiale/rizhao/android/FaultAll.vue +0 -893
  771. package/src/filiale/rizhao/android/Othercharge.vue +0 -423
  772. package/src/filiale/rizhao/android/RepairFirstV.vue +0 -525
  773. package/src/filiale/rizhao/android/RepairInfo.vue +0 -172
  774. package/src/filiale/rizhao/android/RepairOrderV.vue +0 -1415
  775. package/src/filiale/rizhao/pc/AnalysisMain.vue +0 -355
  776. package/src/filiale/rizhao/pc/CallRecords.vue +0 -89
  777. package/src/filiale/rizhao/pc/ChangemeterInfo.vue +0 -87
  778. package/src/filiale/rizhao/pc/ComplainWork.vue +0 -357
  779. package/src/filiale/rizhao/pc/Console.vue +0 -456
  780. package/src/filiale/rizhao/pc/DispatchMan.vue +0 -100
  781. package/src/filiale/rizhao/pc/DispatchWork.vue +0 -100
  782. package/src/filiale/rizhao/pc/DistributeWork.vue +0 -188
  783. package/src/filiale/rizhao/pc/FailureEdit.vue +0 -183
  784. package/src/filiale/rizhao/pc/FailureEditFire.vue +0 -169
  785. package/src/filiale/rizhao/pc/FailureEditRepair.vue +0 -174
  786. package/src/filiale/rizhao/pc/IgnitionVentilation.vue +0 -890
  787. package/src/filiale/rizhao/pc/RecordListLeft.vue +0 -189
  788. package/src/filiale/rizhao/pc/ReminderOrder.vue +0 -51
  789. package/src/filiale/rizhao/pc/RepairsWork.vue +0 -936
  790. package/src/filiale/rizhao/pc/Seekwork.vue +0 -339
  791. package/src/filiale/rizhao/pc/SiteSend.vue +0 -258
  792. package/src/filiale/rizhao/pc/StateStatistics.vue +0 -292
  793. package/src/filiale/rizhao/pc/TelFindUser.vue +0 -243
  794. package/src/filiale/rizhao/pc/TelMan.vue +0 -133
  795. package/src/filiale/rizhao/pc/TeleInfo.vue +0 -142
  796. package/src/filiale/rizhao/pc/TelephoneAnaly.vue +0 -72
  797. package/src/filiale/rizhao/pc/TelephoneType.vue +0 -272
  798. package/src/filiale/rizhao/pc/Traffic.vue +0 -91
  799. package/src/filiale/rizhao/pc/UserOperate.vue +0 -49
  800. package/src/filiale/rizhao/pc/VoiceServer.vue +0 -219
  801. package/src/filiale/rizhao/pc/WorkCenterList.vue +0 -294
  802. package/src/filiale/rizhao/pc/WorkHistory.vue +0 -541
  803. package/src/filiale/rizhao/pc/WorkList.vue +0 -783
  804. package/src/filiale/rizhao/pc/WorkListAllNew.vue +0 -673
  805. package/src/filiale/rizhao/pc/WxBaobiaoService.vue +0 -134
  806. package/src/filiale/rizhao/telephone.js +0 -57
  807. package/src/filiale/rizhao/telephoneAndroid.js +0 -16
  808. package/src/filiale/rongcheng/CliWorkListAll.vue +0 -701
  809. package/src/filiale/rongcheng/FaultAll.vue +0 -713
  810. package/src/filiale/rongcheng/RepairFirstV.vue +0 -418
  811. package/src/filiale/rongcheng/RepairOrderV.vue +0 -1445
  812. package/src/filiale/rongcheng/RepairUserInfo.vue +0 -539
  813. package/src/filiale/rongcheng/ServiceDetails.vue +0 -53
  814. package/src/filiale/rongcheng/WorkListAll.vue +0 -727
  815. package/src/filiale/rongcheng/batchPrintSafeCheckOrder.vue +0 -303
  816. package/src/filiale/rongcheng/checkmsgZG.vue +0 -243
  817. package/src/filiale/rongcheng/onlineBuyGas.vue +0 -799
  818. package/src/filiale/rongcheng/onlineoperation.vue +0 -383
  819. package/src/filiale/rongcheng/telephone.js +0 -19
  820. package/src/filiale/rongcheng/telephoneAndroid.js +0 -19
  821. package/src/filiale/shanxian/android/RepairFirstV.vue +0 -639
  822. package/src/filiale/shanxian/pc/RepairsWork.vue +0 -826
  823. package/src/filiale/shanxian/pc/WorkList.vue +0 -823
  824. package/src/filiale/shanxian/telephone.js +0 -13
  825. package/src/filiale/shanxian/telephoneAndroid.js +0 -13
  826. package/src/filiale/shaoguan/pc/WorkCenterList.vue +0 -326
  827. package/src/filiale/shaoguan/pc/WorkListAllNew.vue +0 -683
  828. package/src/filiale/shaoguan/telephone.js +0 -14
  829. package/src/filiale/shexian/android/AddMyTask.vue +0 -354
  830. package/src/filiale/shexian/android/CompletedRepair.vue +0 -280
  831. package/src/filiale/shexian/android/FaultAll.vue +0 -847
  832. package/src/filiale/shexian/android/Outlay.vue +0 -266
  833. package/src/filiale/shexian/android/RepairFirstV.vue +0 -775
  834. package/src/filiale/shexian/android/RepairInfo.vue +0 -182
  835. package/src/filiale/shexian/android/RepairOrderV.vue +0 -732
  836. package/src/filiale/shexian/pc/NewRepairPaper.vue +0 -374
  837. package/src/filiale/shexian/pc/QueryVisitHistory.vue +0 -237
  838. package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +0 -271
  839. package/src/filiale/shexian/pc/TelByOrderMan.vue +0 -109
  840. package/src/filiale/shexian/pc/TelByOrderManCount.vue +0 -124
  841. package/src/filiale/shexian/pc/TelByRepairType.vue +0 -111
  842. package/src/filiale/shexian/pc/WorkList.vue +0 -782
  843. package/src/filiale/shexian/pc/WorkListAllNew.vue +0 -722
  844. package/src/filiale/shexian/telephone.js +0 -21
  845. package/src/filiale/shexian/telephoneAndroid.js +0 -32
  846. package/src/filiale/shimen/pc/ChangemeterInfo.vue +0 -108
  847. package/src/filiale/shimen/pc/ComplainWork.vue +0 -297
  848. package/src/filiale/shimen/pc/DistributeWork.vue +0 -173
  849. package/src/filiale/shimen/pc/InfoTable.vue +0 -122
  850. package/src/filiale/shimen/pc/RepairList.vue +0 -109
  851. package/src/filiale/shimen/pc/RepairsWork.vue +0 -803
  852. package/src/filiale/shimen/pc/Seekwork.vue +0 -307
  853. package/src/filiale/shimen/pc/SellInfo.vue +0 -87
  854. package/src/filiale/shimen/pc/WorkListAllNew.vue +0 -680
  855. package/src/filiale/shimen/telephone.js +0 -23
  856. package/src/filiale/tianke/android/FaultAll.vue +0 -854
  857. package/src/filiale/tianke/android/RepairFirstV.vue +0 -614
  858. package/src/filiale/tianke/android.js +0 -12
  859. package/src/filiale/tianke/pc/DistributeWork.vue +0 -180
  860. package/src/filiale/tianke/pc/IgnitionVentilationWork.vue +0 -801
  861. package/src/filiale/tianke/pc/NewRepairPaper.vue +0 -370
  862. package/src/filiale/tianke/pc/RepairsWork.vue +0 -794
  863. package/src/filiale/tianke/pc/WorkList.vue +0 -769
  864. package/src/filiale/tianke/telephone.js +0 -17
  865. package/src/filiale/tianke/telephoneAndroid.js +0 -13
  866. package/src/filiale/tongchuan/android/AndroidStopGasManager.vue +0 -321
  867. package/src/filiale/tongchuan/android/CompletedRepair.vue +0 -211
  868. package/src/filiale/tongchuan/android/PhoneStandWork.vue +0 -409
  869. package/src/filiale/tongchuan/android/PhoneUpUserinfo.vue +0 -1005
  870. package/src/filiale/tongchuan/android/RepairFirstV.vue +0 -646
  871. package/src/filiale/tongchuan/android/RepairInfo.vue +0 -172
  872. package/src/filiale/tongchuan/android/RepairOrderV.vue +0 -1446
  873. package/src/filiale/tongchuan/android/TicketDetails.vue +0 -411
  874. package/src/filiale/tongchuan/pc/AnalysisMain.vue +0 -355
  875. package/src/filiale/tongchuan/pc/CallRecords.vue +0 -96
  876. package/src/filiale/tongchuan/pc/CheckWork.vue +0 -289
  877. package/src/filiale/tongchuan/pc/ComplainWork.vue +0 -324
  878. package/src/filiale/tongchuan/pc/DepRepairManCount.vue +0 -148
  879. package/src/filiale/tongchuan/pc/DistributeWork.vue +0 -179
  880. package/src/filiale/tongchuan/pc/ExportExcel.vue +0 -204
  881. package/src/filiale/tongchuan/pc/HiddenSituationWeixiu.vue +0 -115
  882. package/src/filiale/tongchuan/pc/QueryVisitHistory.vue +0 -236
  883. package/src/filiale/tongchuan/pc/RecordListLeft.vue +0 -216
  884. package/src/filiale/tongchuan/pc/RepairList.vue +0 -102
  885. package/src/filiale/tongchuan/pc/RepairWorkReport.vue +0 -133
  886. package/src/filiale/tongchuan/pc/RepairsWork.vue +0 -836
  887. package/src/filiale/tongchuan/pc/SeatInfo.vue +0 -325
  888. package/src/filiale/tongchuan/pc/Seekwork.vue +0 -307
  889. package/src/filiale/tongchuan/pc/ServiceDetails.vue +0 -112
  890. package/src/filiale/tongchuan/pc/StateStatistics.vue +0 -292
  891. package/src/filiale/tongchuan/pc/TelFindUser.vue +0 -278
  892. package/src/filiale/tongchuan/pc/TelMan.vue +0 -142
  893. package/src/filiale/tongchuan/pc/TelephoneAnaly.vue +0 -102
  894. package/src/filiale/tongchuan/pc/TelephoneType.vue +0 -272
  895. package/src/filiale/tongchuan/pc/Traffic.vue +0 -103
  896. package/src/filiale/tongchuan/pc/UserWork.vue +0 -805
  897. package/src/filiale/tongchuan/pc/VisitInfo.vue +0 -305
  898. package/src/filiale/tongchuan/pc/VisitListWork.vue +0 -251
  899. package/src/filiale/tongchuan/pc/VoiceServer.vue +0 -218
  900. package/src/filiale/tongchuan/pc/WorkCenterList.vue +0 -297
  901. package/src/filiale/tongchuan/pc/WorkHistory.vue +0 -521
  902. package/src/filiale/tongchuan/pc/WorkList.vue +0 -811
  903. package/src/filiale/tongchuan/pc/WorkListAll.vue +0 -731
  904. package/src/filiale/tongchuan/pc/WorkOrderStatistics.vue +0 -294
  905. package/src/filiale/tongchuan/pc/WorkorderCheckDistributePlan.vue +0 -376
  906. package/src/filiale/tongchuan/pc/visitPlanList.vue +0 -342
  907. package/src/filiale/tongchuan/pc/visitPlanManage.vue +0 -599
  908. package/src/filiale/tongchuan/pc/visitServiceList.vue +0 -285
  909. package/src/filiale/tongchuan/telephone.js +0 -52
  910. package/src/filiale/tongchuan/telephoneAndroid.js +0 -22
  911. package/src/filiale/v3new/android/FaultAll.vue +0 -809
  912. package/src/filiale/v3new/android/RepairFirstV.vue +0 -633
  913. package/src/filiale/v3new/pc/SiteBack.vue +0 -83
  914. package/src/filiale/v3new/pc/WorkCenter.vue +0 -104
  915. package/src/filiale/v3new/pc/WorkCenterList.vue +0 -274
  916. package/src/filiale/v3new/pc/WorkHistory.vue +0 -537
  917. package/src/filiale/v3new/pc/WorkList.vue +0 -766
  918. package/src/filiale/v3new/pc/WorkListNew.vue +0 -706
  919. package/src/filiale/v3new/pc/serviceDeleteOrder.vue +0 -51
  920. package/src/filiale/v3new/telephone.js +0 -19
  921. package/src/filiale/v3new/telephoneAndroid.js +0 -15
  922. package/src/filiale/weinanct/android/AppInstallationMaterial.vue +0 -586
  923. package/src/filiale/weinanct/android/FaultAll.vue +0 -854
  924. package/src/filiale/weinanct/android/RepairDetails.vue +0 -508
  925. package/src/filiale/weinanct/android/RepairFirstV.vue +0 -635
  926. package/src/filiale/weinanct/android/RepairOrderV.vue +0 -1443
  927. package/src/filiale/weinanct/pc/TelFindUser.vue +0 -213
  928. package/src/filiale/weinanct/pc/VoiceServer.vue +0 -208
  929. package/src/filiale/weinanct/telephone.js +0 -14
  930. package/src/filiale/weinanct/telephoneAndroid.js +0 -20
  931. package/src/filiale/weinanct//350/257/264/346/230/216.txt +0 -1
  932. package/src/filiale/wenxi/android/FailureShow.vue +0 -61
  933. package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +0 -1053
  934. package/src/filiale/wenxi/android/RepairFirstV.vue +0 -537
  935. package/src/filiale/wenxi/android/RepairInfo.vue +0 -252
  936. package/src/filiale/wenxi/android/RepairOrderV.vue +0 -805
  937. package/src/filiale/wenxi/android/RepairUserInfo.vue +0 -532
  938. package/src/filiale/wenxi/android/ZHihuanFirst.vue +0 -502
  939. package/src/filiale/wenxi/pc/DistributeWork.vue +0 -163
  940. package/src/filiale/wenxi/pc/FailureEdit.vue +0 -206
  941. package/src/filiale/wenxi/pc/GasWork.vue +0 -747
  942. package/src/filiale/wenxi/pc/MetereadInfo.vue +0 -82
  943. package/src/filiale/wenxi/pc/RepairsWork.vue +0 -774
  944. package/src/filiale/wenxi/pc/TelFindUser.vue +0 -306
  945. package/src/filiale/wenxi/pc/VoiceServer.vue +0 -214
  946. package/src/filiale/wenxi/pc/WorkListAll.vue +0 -698
  947. package/src/filiale/wenxi/telephone.js +0 -17
  948. package/src/filiale/wenxi/telephoneAndroid.js +0 -19
  949. package/src/filiale/wuan/Util.js +0 -461
  950. package/src/filiale/wuan/android/AddMyTask.vue +0 -227
  951. package/src/filiale/wuan/android/RepairInfo.vue +0 -136
  952. package/src/filiale/wuan/android/RepairOrderV.vue +0 -1384
  953. package/src/filiale/wuan/android/RepairUserInfo.vue +0 -581
  954. package/src/filiale/wuan/pc/BatchList.vue +0 -329
  955. package/src/filiale/wuan/pc/BatchListSanhu.vue +0 -329
  956. package/src/filiale/wuan/pc/BatchOrdersSanhu.vue +0 -115
  957. package/src/filiale/wuan/pc/CheckWork.vue +0 -263
  958. package/src/filiale/wuan/pc/DistributeWork.vue +0 -136
  959. package/src/filiale/wuan/pc/FailureEdit.vue +0 -174
  960. package/src/filiale/wuan/pc/GasWorkSanhu.vue +0 -817
  961. package/src/filiale/wuan/pc/RepairsWork.vue +0 -848
  962. package/src/filiale/wuan/pc/Seekwork.vue +0 -311
  963. package/src/filiale/wuan/pc/TelFindUser.vue +0 -229
  964. package/src/filiale/wuan/pc/WorkListAll.vue +0 -642
  965. package/src/filiale/wuan/telephone.js +0 -23
  966. package/src/filiale/wuan/telephoneAndroid.js +0 -17
  967. package/src/filiale/wuhai/pc/CallRcords.vue +0 -109
  968. package/src/filiale/wuhai/pc/ComplainWork.vue +0 -324
  969. package/src/filiale/wuhai/pc/Console.vue +0 -432
  970. package/src/filiale/wuhai/pc/DistributeWork.vue +0 -173
  971. package/src/filiale/wuhai/pc/FailureEdit.vue +0 -190
  972. package/src/filiale/wuhai/pc/InfoTable.vue +0 -135
  973. package/src/filiale/wuhai/pc/NewRepairPaper.vue +0 -380
  974. package/src/filiale/wuhai/pc/RecordListLeft.vue +0 -202
  975. package/src/filiale/wuhai/pc/RepairsWork.vue +0 -811
  976. package/src/filiale/wuhai/pc/SecuritycheckInfo.vue +0 -92
  977. package/src/filiale/wuhai/pc/Seekwork.vue +0 -361
  978. package/src/filiale/wuhai/pc/ServiceRcords.vue +0 -146
  979. package/src/filiale/wuhai/pc/TelFindUser.vue +0 -256
  980. package/src/filiale/wuhai/pc/VoiceServer.vue +0 -211
  981. package/src/filiale/wuhai/pc/WorkCenter.vue +0 -104
  982. package/src/filiale/wuhai/pc/WorkCenterList.vue +0 -337
  983. package/src/filiale/wuhai/pc/WorkListAllNew.vue +0 -715
  984. package/src/filiale/wuhai/pc/serviceDeleteOrder.vue +0 -54
  985. package/src/filiale/wuhai/telephone.js +0 -35
  986. package/src/filiale/xinkang/android/FaultAll.vue +0 -840
  987. package/src/filiale/xinkang/android/RepairFirstV.vue +0 -484
  988. package/src/filiale/xinkang/telephoneAndroid.js +0 -14
  989. package/src/filiale/yuansheng/android/RepairFirstV.vue +0 -636
  990. package/src/filiale/yuansheng/android/RepairInfo.vue +0 -166
  991. package/src/filiale/yuansheng/pc/DistributeWork.vue +0 -177
  992. package/src/filiale/yuansheng/pc/FailureEdit.vue +0 -188
  993. package/src/filiale/yuansheng/pc/HandplanInfo.vue +0 -78
  994. package/src/filiale/yuansheng/pc/MetereadInfo.vue +0 -83
  995. package/src/filiale/yuansheng/pc/ReservationWork.vue +0 -156
  996. package/src/filiale/yuansheng/pc/TelFindUser.vue +0 -237
  997. package/src/filiale/yuansheng/pc/VoiceServer.vue +0 -208
  998. package/src/filiale/yuansheng/telephone.js +0 -20
  999. package/src/filiale/yuansheng/telephoneAndroid.js +0 -16
  1000. package/src/filiale/yuncheng/pc/TelFindUser.vue +0 -302
  1001. package/src/filiale/yuncheng/telephone.js +0 -12
  1002. package/src/filiale/zhongsheng/android/FailureShow.vue +0 -61
  1003. package/src/filiale/zhongsheng/android/FaultAll.vue +0 -741
  1004. package/src/filiale/zhongsheng/android/RepairFirstV.vue +0 -464
  1005. package/src/filiale/zhongsheng/android/RepairInfo.vue +0 -133
  1006. package/src/filiale/zhongsheng/android/RepairOrderV.vue +0 -1430
  1007. package/src/filiale/zhongsheng/android/RepairUserInfo.vue +0 -559
  1008. package/src/filiale/zhongsheng/pc/ComplainWork.vue +0 -299
  1009. package/src/filiale/zhongsheng/pc/Console.vue +0 -432
  1010. package/src/filiale/zhongsheng/pc/DistributeWork.vue +0 -173
  1011. package/src/filiale/zhongsheng/pc/IgnitionVentilationWork.vue +0 -836
  1012. package/src/filiale/zhongsheng/pc/InfoTable.vue +0 -124
  1013. package/src/filiale/zhongsheng/pc/RepairsWork.vue +0 -775
  1014. package/src/filiale/zhongsheng/pc/Seekwork.vue +0 -283
  1015. package/src/filiale/zhongsheng/pc/TelFindUser.vue +0 -216
  1016. package/src/filiale/zhongsheng/pc/WorkList.vue +0 -805
  1017. package/src/filiale/zhongsheng/pc/WorkListAll.vue +0 -628
  1018. package/src/filiale/zhongsheng/telephone.js +0 -23
  1019. package/src/filiale/zhongsheng/telephoneAndroid.js +0 -19
  1020. package/src/filiale/zhongyi/android/FaultAll.vue +0 -854
  1021. package/src/filiale/zhongyi/android/RepairFirstV.vue +0 -614
  1022. package/src/filiale/zhongyi/android.js +0 -12
  1023. package/src/filiale/zhongyi/pc/DistributeWork.vue +0 -180
  1024. package/src/filiale/zhongyi/pc/IgnitionVentilationWork.vue +0 -801
  1025. package/src/filiale/zhongyi/pc/NewRepairPaper.vue +0 -370
  1026. package/src/filiale/zhongyi/pc/RepairsWork.vue +0 -794
  1027. package/src/filiale/zhongyi/pc/WorkList.vue +0 -769
  1028. package/src/filiale/zhongyi/pc/WorkListAllNew.vue +0 -672
  1029. package/src/filiale/zhongyi/telephone.js +0 -18
  1030. package/src/filiale/zhongyi/telephoneAndroid.js +0 -13
  1031. package/src/filiale/zhoukou/android/ChargeBill.vue +0 -201
  1032. package/src/filiale/zhoukou/android/FaultAll.vue +0 -779
  1033. package/src/filiale/zhoukou/android/Othercharge.vue +0 -591
  1034. package/src/filiale/zhoukou/android/OtherchargeZhoukou.vue +0 -574
  1035. package/src/filiale/zhoukou/android/Outlay.vue +0 -236
  1036. package/src/filiale/zhoukou/android/RepairDetails.vue +0 -544
  1037. package/src/filiale/zhoukou/android/RepairFirstV.vue +0 -542
  1038. package/src/filiale/zhoukou/android/RepairInfo.vue +0 -136
  1039. package/src/filiale/zhoukou/android/RepairOrderV.vue +0 -1383
  1040. package/src/filiale/zhoukou/android/RepairUserInfo.vue +0 -532
  1041. package/src/filiale/zhoukou/android/ZkBill.vue +0 -191
  1042. package/src/filiale/zhoukou/android/createQRcode.vue +0 -256
  1043. package/src/filiale/zhoukou/android/onlineBuyGas.vue +0 -804
  1044. package/src/filiale/zhoukou/android/onlineoperation.vue +0 -416
  1045. package/src/filiale/zhoukou/android/onlinequeryuser.vue +0 -468
  1046. package/src/filiale/zhoukou/assets/dancheng.png +0 -0
  1047. package/src/filiale/zhoukou/assets/luyi.png +0 -0
  1048. package/src/filiale/zhoukou/assets/xiangcheng.png +0 -0
  1049. package/src/filiale/zhoukou/assets/xihua.png +0 -0
  1050. package/src/filiale/zhoukou/assets/zhoukou.png +0 -0
  1051. package/src/filiale/zhoukou/pc/ExportExcel.vue +0 -204
  1052. package/src/filiale/zhoukou/pc/NewRepairPaper.vue +0 -366
  1053. package/src/filiale/zhoukou/pc/SiteSend.vue +0 -265
  1054. package/src/filiale/zhoukou/pc/WorkHistory.vue +0 -514
  1055. package/src/filiale/zhoukou/pc/WorkList.vue +0 -653
  1056. package/src/filiale/zhoukou/pc/WorkListAllNew.vue +0 -675
  1057. package/src/filiale/zhoukou/telephone.js +0 -18
  1058. package/src/filiale/zhoukou/telephoneAndroid.js +0 -33
@@ -1,849 +1,849 @@
1
- <template>
2
- <div class="flex" style="background: #EDF2F9;border: 1px solid #B4BCCC;">
3
- <div class="span text-server">
4
- <div class='flex-row' id="text-service">
5
- <!-- Nav tabs -->
6
- <ul class="nav nav-tabs" role="tablist" style="overflow: auto;width: 7%">
7
- <li :id="'vc-tabset-li-text-service'+'-'+$index" v-for="user in users"
8
- v-bind:class="{'active': ($index === active), 'offline': !user.lineState}"
9
- @click.prevent="handleTabListClick($index, user)" :disabled="r.disabled">
10
- <a href="javascript:void(0)">
11
- {{user.name === "" ? '未' : user.name[0]}}
12
- <span class="badge">{{user.unreadNum === 0 ? '' : user.unreadNum}}</span>
13
- <span class="glyphicon glyphicon-remove" @click.stop="deleteUser($index, user)"></span>
14
- </a>
15
-
16
- </li>
17
- </ul>
18
- <!-- Tab panes -->
19
- <div class="flex" style="width: 90%">
20
- <div class="tab-content span" v-el:tab-content style="flex: 1;overflow: scroll" style="height: 100px;" v-el:msgs
21
- @scroll="scroll">
22
- <div role="tabpanel" v-show="$index === active" :transition="transition" v-for="user in users"
23
- style="padding: 10px;">
24
- <chat-msg :msgs="user.msgs"></chat-msg>
25
- </div>
26
- </div>
27
-
28
- <!-- 消息发送区域 -->
29
- <div class="send-msg">
30
- <div contentEditable="true" name="name" class="text-editor"
31
- style="max-width: 100%;word-wrap:break-word"
32
- @input="contentChanged" @keydown="handleKeys"
33
- @drop="drop" @dragover="allowDrop" @dragenter="enter" id="pc-text-server-text" v-el:content>
34
- </div>
35
-
36
- <!-- <textarea contentEditable="true" name="name" rows="8" cols="80" style="resize: none; padding: 8px;flex: 1;background: #FFF;" v-model="content"
37
- @drop="drop" @dragover="allowDrop" @dragenter="enter" id="pc-text-server-text" @keyup.enter.stop="send('text')" v-el:content></textarea> -->
38
- <div style="padding: 5px;height: auto;position: relative;">
39
- <div style="display: inline-block;">
40
- <img :src="'static/wechat/ziyuan.png'" alt="选择素材" v-if="this.typeuser!=='webUser'"
41
- style="height: 20px;cursor: pointer;" @click="selectMater()">
42
- <!-- 选择小表情 -->
43
- <emoji @select-emoji="contentAddIcon"></emoji>
44
- </div>
45
- <!-- <button type="button" name="button" class="btn btn-primary" >选择资源</button> -->
46
- <button type="button" name="button" class="btn btn-primary btn-xs" @click="send('text')"
47
- style="float: right;">发&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;送
48
- </button>
49
- </div>
50
- </div>
51
-
52
- </div>
53
- </div>
54
-
55
- </div>
56
- <div id="mediaPane" style="display:flex; flex-direction: column; background-color:white; position: fixed; z-index: 9999; left:0px; right:0px; top: 0px; bottom:0px; padding-bottom: 30px;" v-show="show">
57
- <div style="height:auto; background-color:grey;">
58
- <button type="button" style="position:absolute; right: 10px; top:20px;" @click="close"><span>关闭</span></button>
59
- <h4 class="modal-title">选择发送素材</h4>
60
- <div style="position:fixed; bottom:0px; width: 300px; z-index:9999; height:auto;">
61
- <button type="button" style="margin: 0 auto; display:block; width: 100px;" @click='sendMater()'>发送</button>
62
- </div>
63
- </div>
64
- <div style="flex: 1; overflow: auto;">
65
- <materials use-type="use" v-ref:material>
66
- </materials>
67
- </div>
68
- </div>
69
- </div>
70
- </template>
71
-
72
- <script>
73
- import * as Util from '../Util'
74
- import co from 'co'
75
- import {HttpResetClass} from 'vue-client'
76
- import data from '../../stores/wxconfig'
77
- import * as emoji from '../../plugins/EmojiData'
78
- import Vue from "vue";
79
- let msgGen = function* (self) {
80
- try {
81
- // 话务员才去登录,维修员不登录
82
- if (!self.isRepairman) {
83
- console.log('开始登陆')
84
- // 话务员登陆
85
- let http = new HttpResetClass()
86
- let loginMsg = yield http.load('POST', `${self.$androidUtil.getProxyUrl()}/TDual`, {
87
- aId: self.dualId,
88
- aBzType: "login",
89
- aName:self.dualName,
90
- }, {resolveMsg: null, rejectMsg: null})
91
-
92
- console.log('登陆返回的信息:', loginMsg)
93
- if (loginMsg.data.code !== 200) {
94
- self.$showAlert('登陆失败', 'danger', 0)
95
- return
96
- }
97
- }
98
- // 轮询获取消息
99
- self.getUerMsg()
100
- } catch (e) {
101
- // self.$showAlert(`登陆失败:${JSON.stringify(e)}`, 'danger', 0)
102
- console.log('登陆失败,请重试')
103
- }
104
-
105
- }
106
-
107
- let outGen = function* (self) {
108
- //维修员,不存在登出
109
- if (self.isRepairman)
110
- return
111
- // 话务员登出
112
- let http = new HttpResetClass()
113
-
114
- let loginMsg = yield http.load('POST', `${self.$androidUtil.getProxyUrl()}/TDual`, {
115
- aId: self.dualId,
116
- aBzType: "logout",
117
- aName:self.dualName,
118
- }, {resolveMsg: null, rejectMsg: null})
119
- console.log('登出返回的信息:', loginMsg)
120
- if (loginMsg.data.code !== 200) {
121
- self.$showAlert('登陆失败')
122
- return
123
- }
124
- }
125
-
126
- export default {
127
- title: '文字客服',
128
- data() {
129
- return {
130
- webId: '',
131
- content: '',
132
- interval: '',
133
- fengongsi:'',
134
- gh_id:'',
135
- users: [
136
- ], // 接入用户
137
- show: false, // 选择素材
138
- // msgs: [],
139
- isTop: true, // 是否滚动到顶部
140
- dualId: null,
141
- dualRole: null,
142
- dualName: null,
143
- }
144
- },
145
- props: {
146
- active: {
147
- type: Number,
148
- default: 0
149
- },
150
- isRepairman: {
151
- default: false
152
- },
153
- typeuser: {
154
- type: String,
155
- default: 'webUser'
156
- }
157
- },
158
-
159
- ready() {
160
- this.fengongsi=this.$appdata.getSingleValue("分公司")
161
- this.gh_id=this.$appdata.getSingleValue("公众号ID")
162
- console.log(this.fengongsi)
163
- console.log(this.gh_id)
164
- console.log('当前是否是维修员:' + this.isRepairman)
165
- if (this.typeuser === 'webUser') {
166
- this.webId = '________________' + Util.randnum()
167
- console.log(this.webId)
168
- }
169
- if (this.isRepairman) {
170
- this.dualId = this.$login.f.name
171
- this.dualName = this.$login.f.name
172
- this.dualRole = 'repairman'
173
- } else {
174
- console.log('当前坐席:' + this.$login.f.id)
175
- this.dualId = this.$login.f.id
176
- this.dualName = this.$login.f.name
177
- this.dualRole = null
178
- }
179
-
180
- let gen = msgGen(this)
181
- co(gen)
182
- // document.getElementById("myDIV").addEventListener("wheel", myFunction);
183
-
184
- console.log('监听元素', this.$els.msgs + ':::::' + this.$androidUtil.getProxyUrl())
185
-
186
- this.$els.msgs.addEventListener("wheel", this.wheelUp)
187
- // 为Android滑动触屏添加事件
188
- this.$els.msgs.addEventListener("touchstart", this.touchStart)
189
- this.$els.msgs.addEventListener("touchend", this.touchEnd)
190
- },
191
- methods: {
192
- sendMessage(user, index) {
193
- user = {openId: user.openId, gh_id:user.gh_id, userId: user.userId, name: user.name}
194
- console.log(user)
195
- this.active = index
196
- this.$dispatch('user', user)
197
- },
198
- getUerMsg() {
199
- let that = this
200
- let http = new HttpResetClass()
201
- console.log('轮询取消息')
202
- this.interval = setInterval(() => {
203
- let params = this.typeuser === 'webUser' ? {openId: this.webId, aBzType: "nvl"} : {
204
- aId: this.dualId,
205
- aBzType: "nvl",
206
- role: this.dualRole,
207
- aName:this.dualName,
208
- }
209
- //load(method,url,data)
210
- console.log(JSON.stringify(params))
211
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/TDual`, params, {
212
- resolveMsg: null,
213
- rejectMsg: null
214
- }).then((res) => {
215
-
216
- if (typeof res.data === 'string') {
217
- window.alert(res.data)
218
- // res.data = res.data.replace('"sessionId":', '"sessionId":"')
219
- // res.data = res.data.replace(', "msgType"', '", "msgType"')
220
- res.data = res.data.replace(/}/g,'},')
221
- res.data = res.data.replace(',]},',']}')
222
- res.data = res.data.replace('},]','}]')
223
- console.log(res.data)
224
- res.data = JSON.parse(res.data)
225
- }
226
- if (res.data.code === 200) {
227
- // 有用户离线处理
228
- if (res.data.kickedOffList && res.data.kickedOffList.length > 0) {
229
- res.data.kickedOffList.forEach((openId) => {
230
- that.turnOff(openId)
231
- })
232
- }
233
- if (res.data.msgs.length > 0) { // 有新消息
234
- // 将新消息放入到对应用户的消息中
235
- console.log('参数拿一下' + res.data.msgs[0].openId.substring(0, 2))
236
- //如果有aId说明是坐席接收消息。如果接收到的是web端发来的消息则显示web用户openid
237
- if (params.aId && res.data.msgs[0].name === '' && res.data.msgs[0].openId.substring(0, 2) === '__') {
238
- res.data.msgs[0].name = 'web客户' + res.data.msgs[0].openId.substring(15)
239
- }
240
- //如果有openid则说明是web接收消息
241
- if (params.openId) {
242
- res.data.msgs[0].name = '客服'
243
- }
244
-
245
- that.addMsg(res.data.msgs)
246
- if("text-server"!=Vue.routes.main.selecttab){
247
- this.$showAlert("您有新的客服消息,请注意查看",'success',1000)
248
- }
249
- }
250
- // 处理维修员带过来的所有用户
251
- if (res.data.bondedUsers && res.data.bondedUsers.length > 0) {
252
- that.addBondedWeUsers(res.data.bondedUsers)
253
- }
254
- }
255
- if (res.data.code === 509) {
256
- this.$showAlert('请重新登陆', 'danger', 0)
257
- }
258
- }).catch((err) => {
259
- console.log('提取数据出错', JSON.stringify(err))
260
- })
261
- }, 1000)
262
- },
263
- addBondedWeUsers(weusers) {
264
- let that = this
265
- weusers.forEach((wu) => {
266
- // 查找用户
267
- let index = that.users.findIndex((user, index, arr) => {
268
- return user.openId === wu.f_open_id
269
- })
270
- // 找到
271
- if (index && index !== -1 || index === 0) {
272
- // do nothing
273
- } else {
274
- if (that.users.length === 0) { // 如果是添加的第一户
275
-
276
- that.users.push({
277
- name: wu.f_user_name,
278
- userId: wu.f_user_name,
279
- openId: wu.f_open_id,
280
- gh_id:wu.gh_id,
281
- msgs: [],
282
- unreadNum: 0,
283
- lineState: true
284
- })
285
- this.$dispatch('user', {openId: wu.f_open_id, gh_id:wu.gh_id,userId: wu.f_user_name, name: wu.f_user_name})
286
- } else {
287
- that.users.push({
288
- name: wu.f_user_name,
289
- userId: wu.f_user_name,
290
- openId: wu.f_open_id,
291
- gh_id:wu.gh_id,
292
- msgs: [],
293
- unreadNum: 0,
294
- lineState: true
295
- })
296
- }
297
- }
298
- })
299
- },
300
- addMsg(msgs) {
301
- let that = this
302
- msgs.forEach((msg) => {
303
- let index = that.users.findIndex((user, index, arr) => {
304
- return user.openId === msg.openId
305
- })
306
- if (!msg.aBzType) { // 收到的消息
307
- if (msg.msgType === 'image' || msg.msgType === 'video' || msg.msgType === 'voice') { // 有素材
308
- msg.src = `${this.$androidUtil.getProxyUrl()}/weixin/image/material/${msg.media}`
309
- msg.src_img = `${this.$androidUtil.getProxyUrl()}/weixin/image/material/${msg.thumbnail}`
310
- }
311
- }
312
- if (index && index !== -1 || index === 0) { // 返回的有index,说明有这个用户
313
- // 往用户消息里面push消息时,判断当前激活是否是当前用户,不是,要有新消息提示
314
- that.users[index].msgs.push(msg)
315
- that.users[index].lineState = true // 将用户改为上线
316
- if (that.active !== index) { // 如果当前激活不是该用户,添加消息后,将未读消息加 1
317
- this.users[index].unreadNum += 1
318
- }
319
- } else { // 没有则添加到用户列表中
320
- if (that.users.length === 0) { // 如果是添加的第一户
321
- that.users.push({
322
- name: msg.name,
323
- userId: msg.userId,
324
- openId: msg.openId,
325
- gh_id:msg.gh_id,
326
- msgs: [msg],
327
- unreadNum: 0,
328
- lineState: true
329
- })
330
- this.$dispatch('user', {openId: msg.openId, gh_id:msg.gh_id,userId: msg.userId, name: msg.name})
331
- } else {
332
- that.users.push({
333
- name: msg.name,
334
- userId: msg.userId,
335
- openId: msg.openId,
336
- gh_id:msg.gh_id,
337
- msgs: [msg],
338
- unreadNum: 1,
339
- lineState: true
340
- })
341
- }
342
- }
343
- // that.msgs = that.users[0].msgs
344
- })
345
- // 有消息加入后滚动到最底部
346
- this.scrollBottom()
347
- },
348
- enter(ev) {
349
- ev.preventDefault()
350
- ev.stopPropagation()
351
- },
352
- allowDrop(ev) {
353
- // ev.preventDefault()
354
- ev.preventDefault()
355
- ev.stopPropagation()
356
- ev.dataTransfer.dropEffect = 'copy'
357
- },
358
-
359
- drop(ev) {
360
- ev.preventDefault()
361
- // 接收得信息包括图片信息,音频信息,文字信息
362
- let files = ev.dataTransfer.files
363
- // 循环遍历所有文件
364
- if (files.length > 0) { // 如果有文件,取出文件传送文件
365
- for (var i = 0; i < files.length; i++) {
366
- let type = ''
367
- // 判断是不是图片信息
368
- if (/image\/\w+/.test(files[i].type)) {
369
- type = 'image'
370
- // if(file.size / 1024 / 1024 > 2) {
371
- // that.$showAlert('上传图片不能大于2M,请处理后再选择', 'warning', 3000)
372
- // return
373
- // }
374
-
375
- } else if (/video\/|ogg$|mp4$/.test(files[i].type)) { // 判断是不是音频信息
376
- type = 'video'
377
- }
378
- this.send(type)
379
- // files[i]
380
- }
381
- } else { // 文字信息
382
- let data = ev.dataTransfer.getData("Text")
383
- this.content += data
384
- this.$els.content.innerHTML = this.$els.content.innerHTML + data
385
- }
386
-
387
- },
388
- // 选择素材
389
- selectMater() {
390
- this.show = true
391
- },
392
- close() {
393
- this.$refs.material.clearRows()
394
- this.show = false
395
- },
396
- // 发送选择资源
397
- sendMater() {
398
- this.$refs.material.rows.forEach((row) => {
399
- this.send(row.f_file_type, row)
400
- })
401
- this.close()
402
- },
403
- // 发送信息,将内容区域得内容发送出去,图片和文字,拖拽进来后直接发送,不用点击发送按钮
404
- send(type, content) {
405
- console.log('发送类型', type, this.typeuser)
406
-
407
- if (this.typeuser !== 'webUser' && !this.users[this.active]) {
408
- this.$showAlert('当前无通话用户,不能发送消息', 'warning', 2000)
409
- return
410
- }
411
- if (content) {
412
- this.content = content
413
- }
414
- // 如果用户离线,不能发送消息
415
- if (this.typeuser !== 'webUser' && !this.users[this.active].lineState) {
416
- this.$showAlert('当前用户已离线,不能发送消息', 'warning', 2000)
417
- return
418
- }
419
- let msg = {
420
- openId: this.typeuser === 'webUser' ? this.webId : this.users[this.active].openId,
421
- gh_id: this.typeuser === 'webUser' ? this.webId : this.users[this.active].gh_id,
422
- userId: this.typeuser === 'webUser' ? this.webId : this.users[this.active].userId,
423
- aBzType: 'send',
424
- aName:this.dualName,
425
- branch:this.fengongsi,
426
- //gh_id:this.gh_id,
427
- name: this.typeuser === 'webUser' ? 'web客户' + this.webId.substring(15) : this.$login.f.name,
428
- date: Util.toStandardTimeString().split(' ')[0].substring(2, Util.toStandardTimeString().split(' ')[0].length),
429
- time: Util.toStandardTimeString().split(' ')[1],
430
- }
431
- // web端没有aId
432
- if (this.typeuser !== 'webUser') {
433
- msg.aId = this.dualId
434
- msg.role = this.dualRole
435
- }
436
- if (this.typeuser === 'webUser') {
437
- msg.openId = this.webId
438
- }
439
- if (type === 'text') {
440
- if (!(this.content && this.content.length > 0)) {
441
- console.log('发送的内容不能为空');
442
- return
443
- }
444
- msg.msgType = 'text'
445
- msg.content = this.content
446
- } else if (type === 'image') { // 图片消息
447
- msg.msgType = 'image'
448
- msg.src = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_file_name}`
449
- msg.src_img = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_thumbnail}`
450
- msg.content = content.f_mediaid
451
- } else if (type === 'video') { // 视频消息
452
- msg.msgType = 'video'
453
- msg.src = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_file_name}`
454
- msg.src_img = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_thumbnail}`
455
- msg.content = content.f_mediaid
456
- }
457
- console.log('发送的消息体为', msg)
458
- // 此处将消息发送服务一份,然后添加到自己界面
459
- let that = this
460
- let http = new HttpResetClass()
461
- let url = `${this.$androidUtil.getProxyUrl()}/TDual`
462
- http.load('POST', url, msg, {resolveMsg: null, rejectMsg: null}).then((res) => {
463
- console.log('发消息返回的消息', res)
464
- if (res.data.code === 200 && !res.data.msg) {
465
-
466
- }
467
- else if(res.data.code === 500){
468
- this.$showAlert('当前用户已离线,不能发送消息', 'warning', 2000)
469
-
470
- }
471
- //else if (res.data.code === 200&&res.data.msg!==''){
472
- // this.$showAlert(',暂时无法服务,请拨打96677咨询人工客服', 'warning', 2000)
473
- //}
474
- })
475
- // openId: 微信用户openId
476
- // msgType: 消息类别
477
- // content:消息内容,只针对text消息
478
- // name: 燃气用户姓名
479
- // userId: 燃气用户id
480
- // time: 消息时间
481
- // date: 消息年月日
482
- // media: 除text消息外的文件名
483
- // thumbnail: media对应的缩略图或转换文件
484
- // {"aId":"001", "aBzType":"send", "msgType":"text", "content":"huawuyuangeinidexiaoxi", "openId": "oL5ch0q8MjNEuLcsQw4CsImDkEdA"}
485
- this.addMsg([msg])
486
- // 消息发送出后,清空输入框
487
- this.content = ''
488
- // 清空显示
489
- this.$els.content.innerHTML = ''
490
- this.$els.content.focus()
491
- // 消息发出后滚动到最底部
492
- // this.scrollBottom()
493
- },
494
- // 切换用户
495
- handleTabListClick(index, user) {
496
- this.active = index
497
- // 切换激活用户时,将未读消息设置为0
498
- this.users[index].unreadNum = 0
499
- // user = {openId: user.openId, userId: user.userId, name: user.name}
500
- console.log(user)
501
- this.active = index
502
- // 发送事件,切换用户时重新查询用户
503
- this.$dispatch('user', {openId: user.openId, gh_id:user.gh_id, userId: user.userId, name: user.name})
504
- this.scrollBottom()
505
- },
506
- // 关闭用户对话框
507
- deleteUser(index, user) {
508
- // 话务员直接关闭
509
- if (this.isRepairman)
510
- return
511
- console.log('关闭用户对话框')
512
- if (!user.lineState) { // 如果用户已经离线,直接删除,发请求回报错,导致关闭不了
513
- this.users.splice(index, 1)
514
- return
515
- }
516
- let http = new HttpResetClass()
517
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/TDual`, {
518
- aId: this.dualId,
519
- aBzType: "abort",
520
- aName:this.dualName,
521
- openId: user.openId,
522
- gh_id:user.gh_id,
523
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
524
- console.log('关闭用户对话框', res)
525
- this.users.splice(index, 1)
526
- })
527
- },
528
- // 滚动到文字信息底部
529
- scrollBottom() {
530
- this.$nextTick(() => {
531
- this.$els.msgs.scrollTop = this.$els.msgs.scrollHeight
532
-
533
- })
534
- },
535
- // 处理离线用户
536
- turnOff(openId) {
537
- let index = this.users.findIndex((user, index, arr) => {
538
- return user.openId === openId
539
- })
540
- this.users[index].lineState = false
541
- },
542
- // 当有滚动事件时,滚轮事件被屏蔽掉
543
- // 滚动事件
544
- scroll(e) {
545
- // console.log('滚动事件', e)
546
- if (e.target.scrollTop === 0) {
547
- this.isTop = true
548
- } else {
549
- this.isTop = false
550
- }
551
- },
552
- // 触屏滑动事件
553
- touchStart(e) { // 触屏开始位置
554
- this.start_Y = e.changedTouches[0].pageY
555
- },
556
- touchEnd(e) { // 滑动当前位置
557
- let end_Y = e.changedTouches[0].pageY
558
- if (end_Y - this.start_Y > 50) {
559
- // 下滑加载
560
- console.log('发生滑动时间:' + e)
561
- this.loadHistory(e)
562
- }
563
- },
564
- // 滚轮事件,为解决刚进来没有滚动时,加载历史记录
565
- wheelUp(e) {
566
- if (e.wheelDelta > 0) {
567
- console.log('发生滚轮时间:' + e)
568
- this.loadHistory(e)
569
- }
570
- },
571
- loadHistory(e) {
572
- if (this.isTop) { // 加载历史开始了
573
- if (this.users.length == 0 || !this.users[this.active].openId)
574
- return
575
- let dt = ''
576
- // 如果维修员想要查看历史消息,但是还没有聊天的情况下,
577
- if (this.users[this.active].msgs.length == 0)
578
- dt = Util.toStandardTimeString()
579
- else
580
- dt = `20${this.users[this.active].msgs[0].date} ${this.users[this.active].msgs[0].time}`
581
- this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_getChatHistory`,
582
- {
583
- data: {
584
- f_dt: dt,
585
- f_open_id: this.users[this.active].openId
586
- }
587
- },
588
- {resolveMsg: null, rejectMsg: null}).then((res) => {
589
- console.log('加载到的数据是', res)
590
- if (res.data.length > 0) {
591
- let msgs = []
592
- res.data.forEach((item) => {
593
- if (item.f_msg_type !== 'system') {
594
- let msg = {
595
- content: item.f_content,
596
- date: item.f_dt.split(' ')[0].substring(2, item.f_dt.split(' ')[0].length),
597
- time: item.f_dt.split(' ')[1],
598
- media: "",
599
- msgType: item.f_msg_type,
600
- name: (item.f_msg_direction === '发送') ? (item.f_repairman ? item.f_repairman : null) : item.f_user_name,
601
- openId: item.f_open_id,
602
- gh_id:item.gh_id,
603
- sessionId: item.f_session_id,
604
- thumbnail: item.f_thumbnail,
605
- userId: item.f_user_id
606
- }
607
- if (item.f_msg_direction === '发送') {
608
- msg.aBzType = "send"
609
- msg.branch = this.fengongsi
610
- msg.gh_id=this.gh_id
611
- }
612
- if (item.f_msg_type === 'video' || item.f_msg_type === 'voice' || item.f_msg_type === 'image') {
613
- console.log('聊天历史消息:', JSON.stringify(item))
614
- if (item.f_msg_direction === '发送') { // 话务员发送的消息
615
- msg.src = `${this.$androidUtil.getProxyUrl()}/materials/${item.f_file_name}`
616
- msg.src_img = `${this.$androidUtil.getProxyUrl()}/materials/${item.thumbnail}`
617
- } else { // 用户发送的消息
618
- msg.src = `${this.$androidUtil.getProxyUrl()}/umaterials/${item.f_content}`
619
- msg.src_img = `${this.$androidUtil.getProxyUrl()}/umaterials/${item.f_thumbnail}`
620
- }
621
- }
622
- msgs.push(msg)
623
- }
624
- })
625
- console.log('组成消息组是', msgs)
626
- this.users[this.active].msgs.unshift(...msgs)
627
- } else { // 没有记录了
628
- this.$showAlert('没有记录了', 'warning', 1000)
629
- }
630
- })
631
- // console.log('向上滚')
632
- // console.log(e.target.scrollTop)
633
- } else {
634
- // console.log('向下滚')
635
- }
636
- },
637
- // 自文本内容中加入小图标
638
- contentAddIcon(key, emoji) {
639
- // 获取焦点,防止选择表情无法输入
640
- let el = this.$els.content
641
- el.focus() // 获取焦点
642
- // 将光标定位到文档最后
643
- let range = document.createRange();
644
- range.selectNodeContents(el);
645
- range.collapse(true);
646
- range.setEnd(el, el.childNodes.length);
647
- range.setStart(el, el.childNodes.length);
648
- let sel = window.getSelection();
649
- sel.removeAllRanges();
650
- sel.addRange(range);
651
- // 定位光标后
652
- this.content += key
653
- document.execCommand('insertImage', false, `static/wechat/${emoji}`)
654
- },
655
- // 按键事件
656
- handleKeys(event) {
657
- if (event.which === 9) event.preventDefault()
658
- if (event.which === 13 && event.ctrlKey) {
659
- event.preventDefault()
660
- this.send('text')
661
- }
662
- // if (event.which === 13 && event.ctrlKey){
663
- // this.content = this.$els.content.innerHTML
664
- // }
665
- // console.log('this.content---->', this.content)
666
- },
667
- // 内容发生变化
668
- contentChanged() {
669
- if (this.$els.content.innerHTML === '') {
670
- return
671
- }
672
- this.content = emoji.editorChange(this.$els.content.innerHTML)
673
- },
674
- // insertTextAtCursor () {
675
- // let sel
676
- // if (window.getSelection) {
677
- // sel = window.getSelection();
678
- // if (sel.getRangeAt && sel.rangeCount) {
679
- // range = sel.getRangeAt(0)
680
- // range.deleteContents()
681
- // }
682
- // }
683
- // }
684
- // insertTextAtCursor(text) {
685
- // var sel, range, html;
686
- // console.log('11111111111', window.getSelection())
687
- // if (window.getSelection) {
688
- // sel = window.getSelection();
689
- // if (sel.getRangeAt && sel.rangeCount) {
690
- // range = sel.getRangeAt(0);
691
- // range.deleteContents();
692
- // // range.insertNode( document.createTextNode(text) );
693
- // }
694
- // } else if (document.selection && document.selection.createRange) {
695
- // // document.selection.createRange().text = text;
696
- // }
697
- // },
698
- // saveSelection () {
699
- // if (window.getSelection) {
700
- // sel = window.getSelection()
701
- // if (sel.getRangeAt && sel.rangeCount) {
702
- // return sel.getRangeAt(0)
703
- // }
704
- // } else if (document.selection && document.selection.createRange) {
705
- // return document.selection.createRange()
706
- // }
707
- // return null
708
- // },
709
- // restoreSelection(range) {
710
- // if (range) {
711
- // if (window.getSelection) {
712
- // sel = window.getSelection()
713
- // sel.removeAllRanges()
714
- // sel.addRange(range)
715
- // } else if (document.selection && range.select) {
716
- // range.select()
717
- // }
718
- // }
719
- // }
720
- },
721
- beforeDestroy() {
722
- clearInterval(this.interval)
723
- let gen = outGen(this)
724
- co(gen)
725
- },
726
- computed:{
727
- reply() {
728
- return this.$appdata.getParam('快速回复')
729
- }
730
-
731
- },
732
- }
733
- </script>
734
- <style scoped>
735
- .text-editor {
736
- flex: 1;
737
- }
738
-
739
- div[contenteditable=true] {
740
- outline: none;
741
- border-top: 1px solid #DDD;
742
- overflow: auto;
743
- background: #FFF;
744
- padding: 5px 10px;
745
- }
746
-
747
- div[contenteditable=true] div {
748
- height: auto;
749
- }
750
-
751
- div[contenteditable=true] img {
752
- width: 25px;
753
- }
754
-
755
- .send-msg {
756
- /*position: relative;*/
757
- display: flex;
758
- height: 120px;
759
- flex-direction: column;
760
- }
761
-
762
- .send-msg > button {
763
- /*position: absolute;*/
764
- right: 20px;
765
- bottom: 5px;
766
- padding: 3px 20px;
767
- }
768
-
769
- /* 文字客服页签样式 */
770
- /* .text-server .flex {
771
- display: flex;
772
- flex-direction: row;
773
- } */
774
- .text-server .flex-row > ul {
775
- background: #009BDB;
776
- width: 60px;
777
-
778
- }
779
-
780
- .text-server .flex-row > ul > li {
781
- width: 100%;
782
- display: flex;
783
- justify-content: center;
784
- }
785
-
786
- .text-server .flex-row > ul > li > a {
787
- border-bottom: none;
788
- /* background: #FFF; */
789
- padding: 0px;
790
- margin-right: 0px;
791
- line-height: 40px;
792
- text-align: center;
793
- font-size: 1.2em;
794
- width: 40px;
795
- height: 40px;
796
- margin: 5px 0px;
797
- border-radius: 50%;
798
- }
799
-
800
- .text-server .flex-row > ul > li.active {
801
- background: rgba(255, 255, 255, 0.3);
802
- }
803
-
804
- .text-server ul > li > a > span {
805
- display: inherit;
806
- }
807
-
808
- /* 关闭按钮 badge glyphicon style="position: absolute;right: -5px;top: 0px;background: #F61003;" */
809
- #text-service > ul > li > a {
810
- position: relative;
811
- }
812
-
813
- #text-service > ul > li > a > .glyphicon {
814
- display: none;
815
- }
816
-
817
- #text-service > ul > li > a > .badge {
818
- /* display: initial; */
819
- position: absolute;
820
- right: -5px;
821
- top: 0px;
822
- background: #F61003;
823
- }
824
-
825
- #text-service > ul > li > a:hover > .glyphicon {
826
- display: initial;
827
- position: absolute;
828
- /* font-size: 13px; */
829
- background-color: rgb(255, 255, 255, 0.5);
830
- right: -5px;
831
- top: 0px;
832
- }
833
-
834
- /* 当鼠标悬停在游湖头像时,未读消息显示隐藏,关闭按钮显示 */
835
- #text-service > ul > li > a:hover > .badge {
836
- display: none;
837
- }
838
-
839
- #text-service > ul > li > a:hover > .glyphicon:hover {
840
- background-color: #F61003;
841
- color: #FFF;
842
- /* color: #5CBDED; */
843
- }
844
-
845
- .offline {
846
- background: #888 !important;
847
- }
848
-
849
- </style>
1
+ <template>
2
+ <div class="flex" style="background: #EDF2F9;border: 1px solid #B4BCCC;">
3
+ <div class="span text-server">
4
+ <div class='flex-row' id="text-service">
5
+ <!-- Nav tabs -->
6
+ <ul class="nav nav-tabs" role="tablist" style="overflow: auto;width: 7%">
7
+ <li :id="'vc-tabset-li-text-service'+'-'+$index" v-for="user in users"
8
+ v-bind:class="{'active': ($index === active), 'offline': !user.lineState}"
9
+ @click.prevent="handleTabListClick($index, user)" :disabled="r.disabled">
10
+ <a href="javascript:void(0)">
11
+ {{user.name === "" ? '未' : user.name[0]}}
12
+ <span class="badge">{{user.unreadNum === 0 ? '' : user.unreadNum}}</span>
13
+ <span class="glyphicon glyphicon-remove" @click.stop="deleteUser($index, user)"></span>
14
+ </a>
15
+
16
+ </li>
17
+ </ul>
18
+ <!-- Tab panes -->
19
+ <div class="flex" style="width: 90%">
20
+ <div class="tab-content span" v-el:tab-content style="flex: 1;overflow: scroll" style="height: 100px;" v-el:msgs
21
+ @scroll="scroll">
22
+ <div role="tabpanel" v-show="$index === active" :transition="transition" v-for="user in users"
23
+ style="padding: 10px;">
24
+ <chat-msg :msgs="user.msgs"></chat-msg>
25
+ </div>
26
+ </div>
27
+
28
+ <!-- 消息发送区域 -->
29
+ <div class="send-msg">
30
+ <div contentEditable="true" name="name" class="text-editor"
31
+ style="max-width: 100%;word-wrap:break-word"
32
+ @input="contentChanged" @keydown="handleKeys"
33
+ @drop="drop" @dragover="allowDrop" @dragenter="enter" id="pc-text-server-text" v-el:content>
34
+ </div>
35
+
36
+ <!-- <textarea contentEditable="true" name="name" rows="8" cols="80" style="resize: none; padding: 8px;flex: 1;background: #FFF;" v-model="content"
37
+ @drop="drop" @dragover="allowDrop" @dragenter="enter" id="pc-text-server-text" @keyup.enter.stop="send('text')" v-el:content></textarea> -->
38
+ <div style="padding: 5px;height: auto;position: relative;">
39
+ <div style="display: inline-block;">
40
+ <img :src="'static/wechat/ziyuan.png'" alt="选择素材" v-if="this.typeuser!=='webUser'"
41
+ style="height: 20px;cursor: pointer;" @click="selectMater()">
42
+ <!-- 选择小表情 -->
43
+ <emoji @select-emoji="contentAddIcon"></emoji>
44
+ </div>
45
+ <!-- <button type="button" name="button" class="btn btn-primary" >选择资源</button> -->
46
+ <button type="button" name="button" class="btn btn-primary btn-xs" @click="send('text')"
47
+ style="float: right;">发&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;送
48
+ </button>
49
+ </div>
50
+ </div>
51
+
52
+ </div>
53
+ </div>
54
+
55
+ </div>
56
+ <div id="mediaPane" style="display:flex; flex-direction: column; background-color:white; position: fixed; z-index: 9999; left:0px; right:0px; top: 0px; bottom:0px; padding-bottom: 30px;" v-show="show">
57
+ <div style="height:auto; background-color:grey;">
58
+ <button type="button" style="position:absolute; right: 10px; top:20px;" @click="close"><span>关闭</span></button>
59
+ <h4 class="modal-title">选择发送素材</h4>
60
+ <div style="position:fixed; bottom:0px; width: 300px; z-index:9999; height:auto;">
61
+ <button type="button" style="margin: 0 auto; display:block; width: 100px;" @click='sendMater()'>发送</button>
62
+ </div>
63
+ </div>
64
+ <div style="flex: 1; overflow: auto;">
65
+ <materials use-type="use" v-ref:material>
66
+ </materials>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </template>
71
+
72
+ <script>
73
+ import * as Util from '../Util'
74
+ import co from 'co'
75
+ import {HttpResetClass} from 'vue-client'
76
+ import data from '../../stores/wxconfig'
77
+ import * as emoji from '../../plugins/EmojiData'
78
+ import Vue from "vue";
79
+ let msgGen = function* (self) {
80
+ try {
81
+ // 话务员才去登录,维修员不登录
82
+ if (!self.isRepairman) {
83
+ console.log('开始登陆')
84
+ // 话务员登陆
85
+ let http = new HttpResetClass()
86
+ let loginMsg = yield http.load('POST', `${self.$androidUtil.getProxyUrl()}/TDual`, {
87
+ aId: self.dualId,
88
+ aBzType: "login",
89
+ aName:self.dualName,
90
+ }, {resolveMsg: null, rejectMsg: null})
91
+
92
+ console.log('登陆返回的信息:', loginMsg)
93
+ if (loginMsg.data.code !== 200) {
94
+ self.$showAlert('登陆失败', 'danger', 0)
95
+ return
96
+ }
97
+ }
98
+ // 轮询获取消息
99
+ self.getUerMsg()
100
+ } catch (e) {
101
+ // self.$showAlert(`登陆失败:${JSON.stringify(e)}`, 'danger', 0)
102
+ console.log('登陆失败,请重试')
103
+ }
104
+
105
+ }
106
+
107
+ let outGen = function* (self) {
108
+ //维修员,不存在登出
109
+ if (self.isRepairman)
110
+ return
111
+ // 话务员登出
112
+ let http = new HttpResetClass()
113
+
114
+ let loginMsg = yield http.load('POST', `${self.$androidUtil.getProxyUrl()}/TDual`, {
115
+ aId: self.dualId,
116
+ aBzType: "logout",
117
+ aName:self.dualName,
118
+ }, {resolveMsg: null, rejectMsg: null})
119
+ console.log('登出返回的信息:', loginMsg)
120
+ if (loginMsg.data.code !== 200) {
121
+ self.$showAlert('登陆失败')
122
+ return
123
+ }
124
+ }
125
+
126
+ export default {
127
+ title: '文字客服',
128
+ data() {
129
+ return {
130
+ webId: '',
131
+ content: '',
132
+ interval: '',
133
+ fengongsi:'',
134
+ gh_id:'',
135
+ users: [
136
+ ], // 接入用户
137
+ show: false, // 选择素材
138
+ // msgs: [],
139
+ isTop: true, // 是否滚动到顶部
140
+ dualId: null,
141
+ dualRole: null,
142
+ dualName: null,
143
+ }
144
+ },
145
+ props: {
146
+ active: {
147
+ type: Number,
148
+ default: 0
149
+ },
150
+ isRepairman: {
151
+ default: false
152
+ },
153
+ typeuser: {
154
+ type: String,
155
+ default: 'webUser'
156
+ }
157
+ },
158
+
159
+ ready() {
160
+ this.fengongsi=this.$appdata.getSingleValue("分公司")
161
+ this.gh_id=this.$appdata.getSingleValue("公众号ID")
162
+ console.log(this.fengongsi)
163
+ console.log(this.gh_id)
164
+ console.log('当前是否是维修员:' + this.isRepairman)
165
+ if (this.typeuser === 'webUser') {
166
+ this.webId = '________________' + Util.randnum()
167
+ console.log(this.webId)
168
+ }
169
+ if (this.isRepairman) {
170
+ this.dualId = this.$login.f.name
171
+ this.dualName = this.$login.f.name
172
+ this.dualRole = 'repairman'
173
+ } else {
174
+ console.log('当前坐席:' + this.$login.f.id)
175
+ this.dualId = this.$login.f.id
176
+ this.dualName = this.$login.f.name
177
+ this.dualRole = null
178
+ }
179
+
180
+ let gen = msgGen(this)
181
+ co(gen)
182
+ // document.getElementById("myDIV").addEventListener("wheel", myFunction);
183
+
184
+ console.log('监听元素', this.$els.msgs + ':::::' + this.$androidUtil.getProxyUrl())
185
+
186
+ this.$els.msgs.addEventListener("wheel", this.wheelUp)
187
+ // 为Android滑动触屏添加事件
188
+ this.$els.msgs.addEventListener("touchstart", this.touchStart)
189
+ this.$els.msgs.addEventListener("touchend", this.touchEnd)
190
+ },
191
+ methods: {
192
+ sendMessage(user, index) {
193
+ user = {openId: user.openId, gh_id:user.gh_id, userId: user.userId, name: user.name}
194
+ console.log(user)
195
+ this.active = index
196
+ this.$dispatch('user', user)
197
+ },
198
+ getUerMsg() {
199
+ let that = this
200
+ let http = new HttpResetClass()
201
+ console.log('轮询取消息')
202
+ this.interval = setInterval(() => {
203
+ let params = this.typeuser === 'webUser' ? {openId: this.webId, aBzType: "nvl"} : {
204
+ aId: this.dualId,
205
+ aBzType: "nvl",
206
+ role: this.dualRole,
207
+ aName:this.dualName,
208
+ }
209
+ //load(method,url,data)
210
+ console.log(JSON.stringify(params))
211
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/TDual`, params, {
212
+ resolveMsg: null,
213
+ rejectMsg: null
214
+ }).then((res) => {
215
+
216
+ if (typeof res.data === 'string') {
217
+ window.alert(res.data)
218
+ // res.data = res.data.replace('"sessionId":', '"sessionId":"')
219
+ // res.data = res.data.replace(', "msgType"', '", "msgType"')
220
+ res.data = res.data.replace(/}/g,'},')
221
+ res.data = res.data.replace(',]},',']}')
222
+ res.data = res.data.replace('},]','}]')
223
+ console.log(res.data)
224
+ res.data = JSON.parse(res.data)
225
+ }
226
+ if (res.data.code === 200) {
227
+ // 有用户离线处理
228
+ if (res.data.kickedOffList && res.data.kickedOffList.length > 0) {
229
+ res.data.kickedOffList.forEach((openId) => {
230
+ that.turnOff(openId)
231
+ })
232
+ }
233
+ if (res.data.msgs.length > 0) { // 有新消息
234
+ // 将新消息放入到对应用户的消息中
235
+ console.log('参数拿一下' + res.data.msgs[0].openId.substring(0, 2))
236
+ //如果有aId说明是坐席接收消息。如果接收到的是web端发来的消息则显示web用户openid
237
+ if (params.aId && res.data.msgs[0].name === '' && res.data.msgs[0].openId.substring(0, 2) === '__') {
238
+ res.data.msgs[0].name = 'web客户' + res.data.msgs[0].openId.substring(15)
239
+ }
240
+ //如果有openid则说明是web接收消息
241
+ if (params.openId) {
242
+ res.data.msgs[0].name = '客服'
243
+ }
244
+
245
+ that.addMsg(res.data.msgs)
246
+ if("text-server"!=Vue.routes.main.selecttab){
247
+ this.$showAlert("您有新的客服消息,请注意查看",'success',1000)
248
+ }
249
+ }
250
+ // 处理维修员带过来的所有用户
251
+ if (res.data.bondedUsers && res.data.bondedUsers.length > 0) {
252
+ that.addBondedWeUsers(res.data.bondedUsers)
253
+ }
254
+ }
255
+ if (res.data.code === 509) {
256
+ this.$showAlert('请重新登陆', 'danger', 0)
257
+ }
258
+ }).catch((err) => {
259
+ console.log('提取数据出错', JSON.stringify(err))
260
+ })
261
+ }, 1000)
262
+ },
263
+ addBondedWeUsers(weusers) {
264
+ let that = this
265
+ weusers.forEach((wu) => {
266
+ // 查找用户
267
+ let index = that.users.findIndex((user, index, arr) => {
268
+ return user.openId === wu.f_open_id
269
+ })
270
+ // 找到
271
+ if (index && index !== -1 || index === 0) {
272
+ // do nothing
273
+ } else {
274
+ if (that.users.length === 0) { // 如果是添加的第一户
275
+
276
+ that.users.push({
277
+ name: wu.f_user_name,
278
+ userId: wu.f_user_name,
279
+ openId: wu.f_open_id,
280
+ gh_id:wu.gh_id,
281
+ msgs: [],
282
+ unreadNum: 0,
283
+ lineState: true
284
+ })
285
+ this.$dispatch('user', {openId: wu.f_open_id, gh_id:wu.gh_id,userId: wu.f_user_name, name: wu.f_user_name})
286
+ } else {
287
+ that.users.push({
288
+ name: wu.f_user_name,
289
+ userId: wu.f_user_name,
290
+ openId: wu.f_open_id,
291
+ gh_id:wu.gh_id,
292
+ msgs: [],
293
+ unreadNum: 0,
294
+ lineState: true
295
+ })
296
+ }
297
+ }
298
+ })
299
+ },
300
+ addMsg(msgs) {
301
+ let that = this
302
+ msgs.forEach((msg) => {
303
+ let index = that.users.findIndex((user, index, arr) => {
304
+ return user.openId === msg.openId
305
+ })
306
+ if (!msg.aBzType) { // 收到的消息
307
+ if (msg.msgType === 'image' || msg.msgType === 'video' || msg.msgType === 'voice') { // 有素材
308
+ msg.src = `${this.$androidUtil.getProxyUrl()}/weixin/image/material/${msg.media}`
309
+ msg.src_img = `${this.$androidUtil.getProxyUrl()}/weixin/image/material/${msg.thumbnail}`
310
+ }
311
+ }
312
+ if (index && index !== -1 || index === 0) { // 返回的有index,说明有这个用户
313
+ // 往用户消息里面push消息时,判断当前激活是否是当前用户,不是,要有新消息提示
314
+ that.users[index].msgs.push(msg)
315
+ that.users[index].lineState = true // 将用户改为上线
316
+ if (that.active !== index) { // 如果当前激活不是该用户,添加消息后,将未读消息加 1
317
+ this.users[index].unreadNum += 1
318
+ }
319
+ } else { // 没有则添加到用户列表中
320
+ if (that.users.length === 0) { // 如果是添加的第一户
321
+ that.users.push({
322
+ name: msg.name,
323
+ userId: msg.userId,
324
+ openId: msg.openId,
325
+ gh_id:msg.gh_id,
326
+ msgs: [msg],
327
+ unreadNum: 0,
328
+ lineState: true
329
+ })
330
+ this.$dispatch('user', {openId: msg.openId, gh_id:msg.gh_id,userId: msg.userId, name: msg.name})
331
+ } else {
332
+ that.users.push({
333
+ name: msg.name,
334
+ userId: msg.userId,
335
+ openId: msg.openId,
336
+ gh_id:msg.gh_id,
337
+ msgs: [msg],
338
+ unreadNum: 1,
339
+ lineState: true
340
+ })
341
+ }
342
+ }
343
+ // that.msgs = that.users[0].msgs
344
+ })
345
+ // 有消息加入后滚动到最底部
346
+ this.scrollBottom()
347
+ },
348
+ enter(ev) {
349
+ ev.preventDefault()
350
+ ev.stopPropagation()
351
+ },
352
+ allowDrop(ev) {
353
+ // ev.preventDefault()
354
+ ev.preventDefault()
355
+ ev.stopPropagation()
356
+ ev.dataTransfer.dropEffect = 'copy'
357
+ },
358
+
359
+ drop(ev) {
360
+ ev.preventDefault()
361
+ // 接收得信息包括图片信息,音频信息,文字信息
362
+ let files = ev.dataTransfer.files
363
+ // 循环遍历所有文件
364
+ if (files.length > 0) { // 如果有文件,取出文件传送文件
365
+ for (var i = 0; i < files.length; i++) {
366
+ let type = ''
367
+ // 判断是不是图片信息
368
+ if (/image\/\w+/.test(files[i].type)) {
369
+ type = 'image'
370
+ // if(file.size / 1024 / 1024 > 2) {
371
+ // that.$showAlert('上传图片不能大于2M,请处理后再选择', 'warning', 3000)
372
+ // return
373
+ // }
374
+
375
+ } else if (/video\/|ogg$|mp4$/.test(files[i].type)) { // 判断是不是音频信息
376
+ type = 'video'
377
+ }
378
+ this.send(type)
379
+ // files[i]
380
+ }
381
+ } else { // 文字信息
382
+ let data = ev.dataTransfer.getData("Text")
383
+ this.content += data
384
+ this.$els.content.innerHTML = this.$els.content.innerHTML + data
385
+ }
386
+
387
+ },
388
+ // 选择素材
389
+ selectMater() {
390
+ this.show = true
391
+ },
392
+ close() {
393
+ this.$refs.material.clearRows()
394
+ this.show = false
395
+ },
396
+ // 发送选择资源
397
+ sendMater() {
398
+ this.$refs.material.rows.forEach((row) => {
399
+ this.send(row.f_file_type, row)
400
+ })
401
+ this.close()
402
+ },
403
+ // 发送信息,将内容区域得内容发送出去,图片和文字,拖拽进来后直接发送,不用点击发送按钮
404
+ send(type, content) {
405
+ console.log('发送类型', type, this.typeuser)
406
+
407
+ if (this.typeuser !== 'webUser' && !this.users[this.active]) {
408
+ this.$showAlert('当前无通话用户,不能发送消息', 'warning', 2000)
409
+ return
410
+ }
411
+ if (content) {
412
+ this.content = content
413
+ }
414
+ // 如果用户离线,不能发送消息
415
+ if (this.typeuser !== 'webUser' && !this.users[this.active].lineState) {
416
+ this.$showAlert('当前用户已离线,不能发送消息', 'warning', 2000)
417
+ return
418
+ }
419
+ let msg = {
420
+ openId: this.typeuser === 'webUser' ? this.webId : this.users[this.active].openId,
421
+ gh_id: this.typeuser === 'webUser' ? this.webId : this.users[this.active].gh_id,
422
+ userId: this.typeuser === 'webUser' ? this.webId : this.users[this.active].userId,
423
+ aBzType: 'send',
424
+ aName:this.dualName,
425
+ branch:this.fengongsi,
426
+ //gh_id:this.gh_id,
427
+ name: this.typeuser === 'webUser' ? 'web客户' + this.webId.substring(15) : this.$login.f.name,
428
+ date: Util.toStandardTimeString().split(' ')[0].substring(2, Util.toStandardTimeString().split(' ')[0].length),
429
+ time: Util.toStandardTimeString().split(' ')[1],
430
+ }
431
+ // web端没有aId
432
+ if (this.typeuser !== 'webUser') {
433
+ msg.aId = this.dualId
434
+ msg.role = this.dualRole
435
+ }
436
+ if (this.typeuser === 'webUser') {
437
+ msg.openId = this.webId
438
+ }
439
+ if (type === 'text') {
440
+ if (!(this.content && this.content.length > 0)) {
441
+ console.log('发送的内容不能为空');
442
+ return
443
+ }
444
+ msg.msgType = 'text'
445
+ msg.content = this.content
446
+ } else if (type === 'image') { // 图片消息
447
+ msg.msgType = 'image'
448
+ msg.src = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_file_name}`
449
+ msg.src_img = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_thumbnail}`
450
+ msg.content = content.f_mediaid
451
+ } else if (type === 'video') { // 视频消息
452
+ msg.msgType = 'video'
453
+ msg.src = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_file_name}`
454
+ msg.src_img = `${this.$androidUtil.getProxyUrl()}/materials/${content.f_thumbnail}`
455
+ msg.content = content.f_mediaid
456
+ }
457
+ console.log('发送的消息体为', msg)
458
+ // 此处将消息发送服务一份,然后添加到自己界面
459
+ let that = this
460
+ let http = new HttpResetClass()
461
+ let url = `${this.$androidUtil.getProxyUrl()}/TDual`
462
+ http.load('POST', url, msg, {resolveMsg: null, rejectMsg: null}).then((res) => {
463
+ console.log('发消息返回的消息', res)
464
+ if (res.data.code === 200 && !res.data.msg) {
465
+
466
+ }
467
+ else if(res.data.code === 500){
468
+ this.$showAlert('当前用户已离线,不能发送消息', 'warning', 2000)
469
+
470
+ }
471
+ //else if (res.data.code === 200&&res.data.msg!==''){
472
+ // this.$showAlert(',暂时无法服务,请拨打96677咨询人工客服', 'warning', 2000)
473
+ //}
474
+ })
475
+ // openId: 微信用户openId
476
+ // msgType: 消息类别
477
+ // content:消息内容,只针对text消息
478
+ // name: 燃气用户姓名
479
+ // userId: 燃气用户id
480
+ // time: 消息时间
481
+ // date: 消息年月日
482
+ // media: 除text消息外的文件名
483
+ // thumbnail: media对应的缩略图或转换文件
484
+ // {"aId":"001", "aBzType":"send", "msgType":"text", "content":"huawuyuangeinidexiaoxi", "openId": "oL5ch0q8MjNEuLcsQw4CsImDkEdA"}
485
+ this.addMsg([msg])
486
+ // 消息发送出后,清空输入框
487
+ this.content = ''
488
+ // 清空显示
489
+ this.$els.content.innerHTML = ''
490
+ this.$els.content.focus()
491
+ // 消息发出后滚动到最底部
492
+ // this.scrollBottom()
493
+ },
494
+ // 切换用户
495
+ handleTabListClick(index, user) {
496
+ this.active = index
497
+ // 切换激活用户时,将未读消息设置为0
498
+ this.users[index].unreadNum = 0
499
+ // user = {openId: user.openId, userId: user.userId, name: user.name}
500
+ console.log(user)
501
+ this.active = index
502
+ // 发送事件,切换用户时重新查询用户
503
+ this.$dispatch('user', {openId: user.openId, gh_id:user.gh_id, userId: user.userId, name: user.name})
504
+ this.scrollBottom()
505
+ },
506
+ // 关闭用户对话框
507
+ deleteUser(index, user) {
508
+ // 话务员直接关闭
509
+ if (this.isRepairman)
510
+ return
511
+ console.log('关闭用户对话框')
512
+ if (!user.lineState) { // 如果用户已经离线,直接删除,发请求回报错,导致关闭不了
513
+ this.users.splice(index, 1)
514
+ return
515
+ }
516
+ let http = new HttpResetClass()
517
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/TDual`, {
518
+ aId: this.dualId,
519
+ aBzType: "abort",
520
+ aName:this.dualName,
521
+ openId: user.openId,
522
+ gh_id:user.gh_id,
523
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
524
+ console.log('关闭用户对话框', res)
525
+ this.users.splice(index, 1)
526
+ })
527
+ },
528
+ // 滚动到文字信息底部
529
+ scrollBottom() {
530
+ this.$nextTick(() => {
531
+ this.$els.msgs.scrollTop = this.$els.msgs.scrollHeight
532
+
533
+ })
534
+ },
535
+ // 处理离线用户
536
+ turnOff(openId) {
537
+ let index = this.users.findIndex((user, index, arr) => {
538
+ return user.openId === openId
539
+ })
540
+ this.users[index].lineState = false
541
+ },
542
+ // 当有滚动事件时,滚轮事件被屏蔽掉
543
+ // 滚动事件
544
+ scroll(e) {
545
+ // console.log('滚动事件', e)
546
+ if (e.target.scrollTop === 0) {
547
+ this.isTop = true
548
+ } else {
549
+ this.isTop = false
550
+ }
551
+ },
552
+ // 触屏滑动事件
553
+ touchStart(e) { // 触屏开始位置
554
+ this.start_Y = e.changedTouches[0].pageY
555
+ },
556
+ touchEnd(e) { // 滑动当前位置
557
+ let end_Y = e.changedTouches[0].pageY
558
+ if (end_Y - this.start_Y > 50) {
559
+ // 下滑加载
560
+ console.log('发生滑动时间:' + e)
561
+ this.loadHistory(e)
562
+ }
563
+ },
564
+ // 滚轮事件,为解决刚进来没有滚动时,加载历史记录
565
+ wheelUp(e) {
566
+ if (e.wheelDelta > 0) {
567
+ console.log('发生滚轮时间:' + e)
568
+ this.loadHistory(e)
569
+ }
570
+ },
571
+ loadHistory(e) {
572
+ if (this.isTop) { // 加载历史开始了
573
+ if (this.users.length == 0 || !this.users[this.active].openId)
574
+ return
575
+ let dt = ''
576
+ // 如果维修员想要查看历史消息,但是还没有聊天的情况下,
577
+ if (this.users[this.active].msgs.length == 0)
578
+ dt = Util.toStandardTimeString()
579
+ else
580
+ dt = `20${this.users[this.active].msgs[0].date} ${this.users[this.active].msgs[0].time}`
581
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_getChatHistory`,
582
+ {
583
+ data: {
584
+ f_dt: dt,
585
+ f_open_id: this.users[this.active].openId
586
+ }
587
+ },
588
+ {resolveMsg: null, rejectMsg: null}).then((res) => {
589
+ console.log('加载到的数据是', res)
590
+ if (res.data.length > 0) {
591
+ let msgs = []
592
+ res.data.forEach((item) => {
593
+ if (item.f_msg_type !== 'system') {
594
+ let msg = {
595
+ content: item.f_content,
596
+ date: item.f_dt.split(' ')[0].substring(2, item.f_dt.split(' ')[0].length),
597
+ time: item.f_dt.split(' ')[1],
598
+ media: "",
599
+ msgType: item.f_msg_type,
600
+ name: (item.f_msg_direction === '发送') ? (item.f_repairman ? item.f_repairman : null) : item.f_user_name,
601
+ openId: item.f_open_id,
602
+ gh_id:item.gh_id,
603
+ sessionId: item.f_session_id,
604
+ thumbnail: item.f_thumbnail,
605
+ userId: item.f_user_id
606
+ }
607
+ if (item.f_msg_direction === '发送') {
608
+ msg.aBzType = "send"
609
+ msg.branch = this.fengongsi
610
+ msg.gh_id=this.gh_id
611
+ }
612
+ if (item.f_msg_type === 'video' || item.f_msg_type === 'voice' || item.f_msg_type === 'image') {
613
+ console.log('聊天历史消息:', JSON.stringify(item))
614
+ if (item.f_msg_direction === '发送') { // 话务员发送的消息
615
+ msg.src = `${this.$androidUtil.getProxyUrl()}/materials/${item.f_file_name}`
616
+ msg.src_img = `${this.$androidUtil.getProxyUrl()}/materials/${item.thumbnail}`
617
+ } else { // 用户发送的消息
618
+ msg.src = `${this.$androidUtil.getProxyUrl()}/umaterials/${item.f_content}`
619
+ msg.src_img = `${this.$androidUtil.getProxyUrl()}/umaterials/${item.f_thumbnail}`
620
+ }
621
+ }
622
+ msgs.push(msg)
623
+ }
624
+ })
625
+ console.log('组成消息组是', msgs)
626
+ this.users[this.active].msgs.unshift(...msgs)
627
+ } else { // 没有记录了
628
+ this.$showAlert('没有记录了', 'warning', 1000)
629
+ }
630
+ })
631
+ // console.log('向上滚')
632
+ // console.log(e.target.scrollTop)
633
+ } else {
634
+ // console.log('向下滚')
635
+ }
636
+ },
637
+ // 自文本内容中加入小图标
638
+ contentAddIcon(key, emoji) {
639
+ // 获取焦点,防止选择表情无法输入
640
+ let el = this.$els.content
641
+ el.focus() // 获取焦点
642
+ // 将光标定位到文档最后
643
+ let range = document.createRange();
644
+ range.selectNodeContents(el);
645
+ range.collapse(true);
646
+ range.setEnd(el, el.childNodes.length);
647
+ range.setStart(el, el.childNodes.length);
648
+ let sel = window.getSelection();
649
+ sel.removeAllRanges();
650
+ sel.addRange(range);
651
+ // 定位光标后
652
+ this.content += key
653
+ document.execCommand('insertImage', false, `static/wechat/${emoji}`)
654
+ },
655
+ // 按键事件
656
+ handleKeys(event) {
657
+ if (event.which === 9) event.preventDefault()
658
+ if (event.which === 13 && event.ctrlKey) {
659
+ event.preventDefault()
660
+ this.send('text')
661
+ }
662
+ // if (event.which === 13 && event.ctrlKey){
663
+ // this.content = this.$els.content.innerHTML
664
+ // }
665
+ // console.log('this.content---->', this.content)
666
+ },
667
+ // 内容发生变化
668
+ contentChanged() {
669
+ if (this.$els.content.innerHTML === '') {
670
+ return
671
+ }
672
+ this.content = emoji.editorChange(this.$els.content.innerHTML)
673
+ },
674
+ // insertTextAtCursor () {
675
+ // let sel
676
+ // if (window.getSelection) {
677
+ // sel = window.getSelection();
678
+ // if (sel.getRangeAt && sel.rangeCount) {
679
+ // range = sel.getRangeAt(0)
680
+ // range.deleteContents()
681
+ // }
682
+ // }
683
+ // }
684
+ // insertTextAtCursor(text) {
685
+ // var sel, range, html;
686
+ // console.log('11111111111', window.getSelection())
687
+ // if (window.getSelection) {
688
+ // sel = window.getSelection();
689
+ // if (sel.getRangeAt && sel.rangeCount) {
690
+ // range = sel.getRangeAt(0);
691
+ // range.deleteContents();
692
+ // // range.insertNode( document.createTextNode(text) );
693
+ // }
694
+ // } else if (document.selection && document.selection.createRange) {
695
+ // // document.selection.createRange().text = text;
696
+ // }
697
+ // },
698
+ // saveSelection () {
699
+ // if (window.getSelection) {
700
+ // sel = window.getSelection()
701
+ // if (sel.getRangeAt && sel.rangeCount) {
702
+ // return sel.getRangeAt(0)
703
+ // }
704
+ // } else if (document.selection && document.selection.createRange) {
705
+ // return document.selection.createRange()
706
+ // }
707
+ // return null
708
+ // },
709
+ // restoreSelection(range) {
710
+ // if (range) {
711
+ // if (window.getSelection) {
712
+ // sel = window.getSelection()
713
+ // sel.removeAllRanges()
714
+ // sel.addRange(range)
715
+ // } else if (document.selection && range.select) {
716
+ // range.select()
717
+ // }
718
+ // }
719
+ // }
720
+ },
721
+ beforeDestroy() {
722
+ clearInterval(this.interval)
723
+ let gen = outGen(this)
724
+ co(gen)
725
+ },
726
+ computed:{
727
+ reply() {
728
+ return this.$appdata.getParam('快速回复')
729
+ }
730
+
731
+ },
732
+ }
733
+ </script>
734
+ <style scoped>
735
+ .text-editor {
736
+ flex: 1;
737
+ }
738
+
739
+ div[contenteditable=true] {
740
+ outline: none;
741
+ border-top: 1px solid #DDD;
742
+ overflow: auto;
743
+ background: #FFF;
744
+ padding: 5px 10px;
745
+ }
746
+
747
+ div[contenteditable=true] div {
748
+ height: auto;
749
+ }
750
+
751
+ div[contenteditable=true] img {
752
+ width: 25px;
753
+ }
754
+
755
+ .send-msg {
756
+ /*position: relative;*/
757
+ display: flex;
758
+ height: 120px;
759
+ flex-direction: column;
760
+ }
761
+
762
+ .send-msg > button {
763
+ /*position: absolute;*/
764
+ right: 20px;
765
+ bottom: 5px;
766
+ padding: 3px 20px;
767
+ }
768
+
769
+ /* 文字客服页签样式 */
770
+ /* .text-server .flex {
771
+ display: flex;
772
+ flex-direction: row;
773
+ } */
774
+ .text-server .flex-row > ul {
775
+ background: #009BDB;
776
+ width: 60px;
777
+
778
+ }
779
+
780
+ .text-server .flex-row > ul > li {
781
+ width: 100%;
782
+ display: flex;
783
+ justify-content: center;
784
+ }
785
+
786
+ .text-server .flex-row > ul > li > a {
787
+ border-bottom: none;
788
+ /* background: #FFF; */
789
+ padding: 0px;
790
+ margin-right: 0px;
791
+ line-height: 40px;
792
+ text-align: center;
793
+ font-size: 1.2em;
794
+ width: 40px;
795
+ height: 40px;
796
+ margin: 5px 0px;
797
+ border-radius: 50%;
798
+ }
799
+
800
+ .text-server .flex-row > ul > li.active {
801
+ background: rgba(255, 255, 255, 0.3);
802
+ }
803
+
804
+ .text-server ul > li > a > span {
805
+ display: inherit;
806
+ }
807
+
808
+ /* 关闭按钮 badge glyphicon style="position: absolute;right: -5px;top: 0px;background: #F61003;" */
809
+ #text-service > ul > li > a {
810
+ position: relative;
811
+ }
812
+
813
+ #text-service > ul > li > a > .glyphicon {
814
+ display: none;
815
+ }
816
+
817
+ #text-service > ul > li > a > .badge {
818
+ /* display: initial; */
819
+ position: absolute;
820
+ right: -5px;
821
+ top: 0px;
822
+ background: #F61003;
823
+ }
824
+
825
+ #text-service > ul > li > a:hover > .glyphicon {
826
+ display: initial;
827
+ position: absolute;
828
+ /* font-size: 13px; */
829
+ background-color: rgb(255, 255, 255, 0.5);
830
+ right: -5px;
831
+ top: 0px;
832
+ }
833
+
834
+ /* 当鼠标悬停在游湖头像时,未读消息显示隐藏,关闭按钮显示 */
835
+ #text-service > ul > li > a:hover > .badge {
836
+ display: none;
837
+ }
838
+
839
+ #text-service > ul > li > a:hover > .glyphicon:hover {
840
+ background-color: #F61003;
841
+ color: #FFF;
842
+ /* color: #5CBDED; */
843
+ }
844
+
845
+ .offline {
846
+ background: #888 !important;
847
+ }
848
+
849
+ </style>