telephone-clients 3.0.104-51 → 3.0.104-51-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 (1068) 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 +4 -4
  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 -393
  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 -217
  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 -217
  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 -867
  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 +118 -118
  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 -316
  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 -264
  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 -744
  249. package/src/components/pc/WorkListAll.vue +630 -630
  250. package/src/components/pc/WorkListAllNew.vue +19 -10
  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 -135
  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 -93
  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/components/workorder/RepairPaperAndroid.vue +351 -351
  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 -306
  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/plugins/DataSql.js +569 -569
  581. package/src/plugins/EmojiData.js +514 -514
  582. package/src/plugins/EncryptUtil.js +53 -53
  583. package/src/plugins/HttpLoad.js +93 -93
  584. package/src/plugins/LoadData.js +40 -40
  585. package/src/plugins/LoadParams.js +54 -54
  586. package/src/plugins/LocalPagedList.js +107 -107
  587. package/src/plugins/ObjTree.js +532 -532
  588. package/src/plugins/TelGetSaleParams.js +63 -63
  589. package/src/qrcode.js +618 -618
  590. package/src/qrcode.min.js +1 -1
  591. package/src/stores/exportConfig.js +10 -10
  592. package/src/stores/wxconfig.js +10 -10
  593. package/src/telephone-android.js +373 -373
  594. package/src/telephone-shaoguan.js +256 -256
  595. package/src/telephone-tongcheng.js +254 -254
  596. package/src/telephone.js +9 -1
  597. package/src/telephoneanaly.less +704 -704
  598. package/src/utils/LdapHelper.js +99 -99
  599. package/src/weinan-android.js +350 -350
  600. package/src/weinan.js +537 -537
  601. package/static/fonts/font.css +6 -6
  602. package/static/js/adapter.min.js +2049 -2049
  603. package/static/js/bootstrap.min.js +7 -7
  604. package/static/js/ctilink.js +1303 -1303
  605. package/static/js/ctimsg.js +655 -655
  606. package/static/js/janus.js +4034 -4034
  607. package/static/js/jquery-2.1.1.min.js +5 -5
  608. package/yarn-error.log +7872 -7872
  609. 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
  610. package/src/filiale/fugu/pc/ComplainWork.vue +0 -206
  611. package/src/filiale/fugu/pc/FailureEdit.vue +0 -183
  612. package/src/filiale/fugu/pc/RepairsWork.vue +0 -793
  613. package/src/filiale/fugu/pc/Seekwork.vue +0 -182
  614. package/src/filiale/fugu/telephone.js +0 -16
  615. package/src/filiale/furuike/android/CompletedRepair.vue +0 -210
  616. package/src/filiale/furuike/android/FaultAll.vue +0 -861
  617. package/src/filiale/furuike/android/Materials.vue +0 -410
  618. package/src/filiale/furuike/android/RepairFirstVnew.vue +0 -580
  619. package/src/filiale/furuike/android/RepairOrderVnew.vue +0 -890
  620. package/src/filiale/furuike/pc/Auxfunc.vue +0 -109
  621. package/src/filiale/furuike/pc/CallRcords.vue +0 -109
  622. package/src/filiale/furuike/pc/ChangemeterInfo.vue +0 -87
  623. package/src/filiale/furuike/pc/ComplainWork.vue +0 -348
  624. package/src/filiale/furuike/pc/DeviceInfo.vue +0 -82
  625. package/src/filiale/furuike/pc/DisableInforMation.vue +0 -82
  626. package/src/filiale/furuike/pc/FailureEdit.vue +0 -198
  627. package/src/filiale/furuike/pc/HandplanInfo.vue +0 -78
  628. package/src/filiale/furuike/pc/InfoTable.vue +0 -134
  629. package/src/filiale/furuike/pc/InstructInfo.vue +0 -86
  630. package/src/filiale/furuike/pc/LineReport.vue +0 -215
  631. package/src/filiale/furuike/pc/MaterialWorkOrder/MaterialWork.vue +0 -400
  632. package/src/filiale/furuike/pc/MaterialWorkOrder/MaterialWorkOrderManage.vue +0 -63
  633. package/src/filiale/furuike/pc/MaterialWorkOrder/WorkOrderMaterial.vue +0 -381
  634. package/src/filiale/furuike/pc/MetereadInfo.vue +0 -82
  635. package/src/filiale/furuike/pc/MetterInfo.vue +0 -92
  636. package/src/filiale/furuike/pc/NewRepairPaper.vue +0 -415
  637. package/src/filiale/furuike/pc/ProblemList.vue +0 -170
  638. package/src/filiale/furuike/pc/QueryVisitHistory.vue +0 -183
  639. package/src/filiale/furuike/pc/RecordListLeft.vue +0 -259
  640. package/src/filiale/furuike/pc/ReminderOrder.vue +0 -50
  641. package/src/filiale/furuike/pc/RepairList.vue +0 -102
  642. package/src/filiale/furuike/pc/RepairsWork.vue +0 -918
  643. package/src/filiale/furuike/pc/SecuritycheckInfo.vue +0 -128
  644. package/src/filiale/furuike/pc/Seekwork.vue +0 -352
  645. package/src/filiale/furuike/pc/SellInfo.vue +0 -158
  646. package/src/filiale/furuike/pc/TableReport.vue +0 -160
  647. package/src/filiale/furuike/pc/TelFindUser.vue +0 -229
  648. package/src/filiale/furuike/pc/TelLossList.vue +0 -145
  649. package/src/filiale/furuike/pc/TelePhoneUpload.vue +0 -279
  650. package/src/filiale/furuike/pc/TextServer.vue +0 -168
  651. package/src/filiale/furuike/pc/VoiceServer.vue +0 -216
  652. package/src/filiale/furuike/pc/WorkCenter.vue +0 -104
  653. package/src/filiale/furuike/pc/WorkHistory.vue +0 -576
  654. package/src/filiale/furuike/pc/WorkListAllNew.vue +0 -855
  655. package/src/filiale/furuike/telephone.js +0 -115
  656. package/src/filiale/furuike/telephoneAndroid.js +0 -23
  657. package/src/filiale/gehua/pc/Console.vue +0 -676
  658. package/src/filiale/gehua/pc/TelAgentVoiceReport.vue +0 -285
  659. package/src/filiale/gehua/pc/TelFindUser.vue +0 -214
  660. package/src/filiale/gehua/telephone.js +0 -16
  661. package/src/filiale/gehua/telephoneAndroid.js +0 -9
  662. package/src/filiale/gongyi/android/RepairDetails.vue +0 -542
  663. package/src/filiale/gongyi/android/RepairFirstV.vue +0 -537
  664. package/src/filiale/gongyi/android/RepairOrderV.vue +0 -1415
  665. package/src/filiale/gongyi/pc/WorkListAll.vue +0 -632
  666. package/src/filiale/gongyi/telephone.js +0 -13
  667. package/src/filiale/gongyi/telephoneAndroid.js +0 -15
  668. package/src/filiale/guangxi/android/FaultAll.vue +0 -896
  669. package/src/filiale/guangxi/telephoneAndroid.js +0 -13
  670. package/src/filiale/hanzhong/PagedList.js +0 -248
  671. package/src/filiale/hanzhong/android/Outlay.vue +0 -265
  672. package/src/filiale/hanzhong/android/RepairInfo.vue +0 -167
  673. package/src/filiale/hanzhong/hzSelectUtil.js +0 -84
  674. package/src/filiale/hanzhong/md5.js +0 -266
  675. package/src/filiale/hanzhong/pc/AnalysisMain.vue +0 -477
  676. package/src/filiale/hanzhong/pc/Console.vue +0 -884
  677. package/src/filiale/hanzhong/pc/DistributeWork.vue +0 -420
  678. package/src/filiale/hanzhong/pc/FailureEdit.vue +0 -195
  679. package/src/filiale/hanzhong/pc/RecordInfoRight.vue +0 -84
  680. package/src/filiale/hanzhong/pc/RecordList.vue +0 -53
  681. package/src/filiale/hanzhong/pc/RecordListLeft.vue +0 -196
  682. package/src/filiale/hanzhong/pc/Seekwork.vue +0 -318
  683. package/src/filiale/hanzhong/pc/StateStatistics.vue +0 -292
  684. package/src/filiale/hanzhong/pc/TelFindUser.vue +0 -224
  685. package/src/filiale/hanzhong/pc/TelLossList.vue +0 -137
  686. package/src/filiale/hanzhong/pc/TelephoneAnaly.vue +0 -104
  687. package/src/filiale/hanzhong/pc/TelephoneType.vue +0 -269
  688. package/src/filiale/hanzhong/pc/TextServer.vue +0 -157
  689. package/src/filiale/hanzhong/pc/VoiceServer.vue +0 -208
  690. package/src/filiale/hanzhong/pc/message/AllUser.vue +0 -615
  691. package/src/filiale/hanzhong/pc/message/AllUserNew.vue +0 -638
  692. package/src/filiale/hanzhong/pc/message/ArrearsList.vue +0 -397
  693. package/src/filiale/hanzhong/pc/message/MessageList.vue +0 -635
  694. package/src/filiale/hanzhong/pc/message/MessageManage.vue +0 -136
  695. package/src/filiale/hanzhong/pc/message/MessageManageList.vue +0 -127
  696. package/src/filiale/hanzhong/pc/message/MessageManageNew.vue +0 -121
  697. package/src/filiale/hanzhong/pc/message/TemplateMessage.vue +0 -92
  698. package/src/filiale/hanzhong/pc/message/UserDefinedMessage.vue +0 -90
  699. package/src/filiale/hanzhong/pc/message/UserDefinedMessageNew.vue +0 -121
  700. package/src/filiale/hanzhong/telephone.js +0 -48
  701. package/src/filiale/hanzhong/telephoneAndroid.js +0 -15
  702. package/src/filiale/jiaocheng/android/createQRcode.vue +0 -204
  703. package/src/filiale/jiaocheng/android/onlineBuyGas.vue +0 -637
  704. package/src/filiale/jiaocheng/telephone.js +0 -8
  705. package/src/filiale/jiaocheng/telephoneAndroid.js +0 -15
  706. package/src/filiale/kelai/android/AppTakePic.vue +0 -143
  707. package/src/filiale/kelai/android/Outlay.vue +0 -274
  708. package/src/filiale/kelai/android/PhoneVentilationLeave.vue +0 -176
  709. package/src/filiale/kelai/android/RepairFirstV.vue +0 -552
  710. package/src/filiale/kelai/android/RepairOrderV.vue +0 -1446
  711. package/src/filiale/kelai/android/RepairTypeList.vue +0 -170
  712. package/src/filiale/kelai/android/RepairUserInfo.vue +0 -537
  713. package/src/filiale/kelai/pc/CallReport/CallReportMainPage-Kelai.vue +0 -612
  714. package/src/filiale/kelai/pc/CallReport/CumulativeCalls.vue +0 -128
  715. package/src/filiale/kelai/pc/CallReport/IncomingTimedata.vue +0 -69
  716. package/src/filiale/kelai/pc/CallReport/Incomingcallvolume.vue +0 -82
  717. package/src/filiale/kelai/pc/CallReport/SeatStatus.vue +0 -60
  718. package/src/filiale/kelai/pc/CallReport/Time.vue +0 -107
  719. package/src/filiale/kelai/pc/CallReport/WorkorderTypesum.vue +0 -76
  720. package/src/filiale/kelai/pc/CallReport/timeRunning.vue +0 -66
  721. package/src/filiale/kelai/pc/KeLaiMaintenanceReport.vue +0 -297
  722. package/src/filiale/kelai/pc/RecordListLeft.vue +0 -188
  723. package/src/filiale/kelai/pc/Seekwork.vue +0 -308
  724. package/src/filiale/kelai/pc/TelAgentVoiceReport.vue +0 -276
  725. package/src/filiale/kelai/pc/TelFindUser.vue +0 -214
  726. package/src/filiale/kelai/pc/TelLossList.vue +0 -154
  727. package/src/filiale/kelai/pc/TextServer.vue +0 -157
  728. package/src/filiale/kelai/pc/Trafficassess.vue +0 -159
  729. package/src/filiale/kelai/pc/VisitInfo.vue +0 -268
  730. package/src/filiale/kelai/pc/VoiceServer.vue +0 -227
  731. package/src/filiale/kelai/pc/WorkCenterList.vue +0 -315
  732. package/src/filiale/kelai/pc/WorkListAllNew.vue +0 -717
  733. package/src/filiale/kelai/pc/serviceDeleteOrder.vue +0 -55
  734. package/src/filiale/kelai/telephone.js +0 -40
  735. package/src/filiale/kelai/telephoneAndroid.js +0 -19
  736. package/src/filiale/liaoyuan/android/FaultAll.vue +0 -737
  737. package/src/filiale/liaoyuan/android/RepairDetails.vue +0 -493
  738. package/src/filiale/liaoyuan/android/RepairOrderV.vue +0 -831
  739. package/src/filiale/liaoyuan/telephoneAndroid.js +0 -13
  740. package/src/filiale/meihekou/android/Othercharge.vue +0 -443
  741. package/src/filiale/meihekou/android/createQRcode.vue +0 -192
  742. package/src/filiale/meihekou/android/onlineBuyGas.vue +0 -793
  743. package/src/filiale/meihekou/telephone.js +0 -13
  744. package/src/filiale/meihekou/telephoneAndroid.js +0 -18
  745. package/src/filiale/qianneng/android/AppInstallationMaterial.vue +0 -1065
  746. package/src/filiale/qianneng/android/Examine.vue +0 -513
  747. package/src/filiale/qianneng/android/FaultAll.vue +0 -883
  748. package/src/filiale/qianneng/android/MaterIialOne.vue +0 -123
  749. package/src/filiale/qianneng/android/PhoneStandWork.vue +0 -412
  750. package/src/filiale/qianneng/android/QueryTemporaryRepair.vue +0 -243
  751. package/src/filiale/qianneng/android/RepairDetails.vue +0 -666
  752. package/src/filiale/qianneng/android/RepairFirstV.vue +0 -615
  753. package/src/filiale/qianneng/android/RepairInfo.vue +0 -147
  754. package/src/filiale/qianneng/android/RepairOrderV.vue +0 -874
  755. package/src/filiale/qianneng/android/RepairUserInfo.vue +0 -542
  756. package/src/filiale/qianneng/android/TemporarySingle.vue +0 -537
  757. package/src/filiale/qianneng/android/chargesList.vue +0 -161
  758. package/src/filiale/qianneng/pc/ComplainWork.vue +0 -324
  759. package/src/filiale/qianneng/pc/DistributeWork.vue +0 -182
  760. package/src/filiale/qianneng/pc/FailureEdit.vue +0 -161
  761. package/src/filiale/qianneng/pc/Indoorinstallation.vue +0 -832
  762. package/src/filiale/qianneng/pc/MaterialDetailed.vue +0 -260
  763. package/src/filiale/qianneng/pc/MaterialStatistics.vue +0 -144
  764. package/src/filiale/qianneng/pc/NewRepairPaper.vue +0 -467
  765. package/src/filiale/qianneng/pc/Outdoorinstallation.vue +0 -736
  766. package/src/filiale/qianneng/pc/RepairsWork.vue +0 -992
  767. package/src/filiale/qianneng/pc/Seekwork.vue +0 -308
  768. package/src/filiale/qianneng/pc/WorkHistory.vue +0 -562
  769. package/src/filiale/qianneng/pc/WorkListAllNew.vue +0 -749
  770. package/src/filiale/qianneng/pc/changetable.vue +0 -273
  771. package/src/filiale/qianneng/telephone.js +0 -22
  772. package/src/filiale/qianneng/telephoneAndroid.js +0 -22
  773. package/src/filiale/rizhao/android/FaultAll.vue +0 -893
  774. package/src/filiale/rizhao/android/Othercharge.vue +0 -423
  775. package/src/filiale/rizhao/android/RepairFirstV.vue +0 -525
  776. package/src/filiale/rizhao/android/RepairInfo.vue +0 -172
  777. package/src/filiale/rizhao/android/RepairOrderV.vue +0 -1415
  778. package/src/filiale/rizhao/pc/AnalysisMain.vue +0 -355
  779. package/src/filiale/rizhao/pc/CallRecords.vue +0 -89
  780. package/src/filiale/rizhao/pc/ChangemeterInfo.vue +0 -87
  781. package/src/filiale/rizhao/pc/ComplainWork.vue +0 -357
  782. package/src/filiale/rizhao/pc/Console.vue +0 -456
  783. package/src/filiale/rizhao/pc/DispatchMan.vue +0 -100
  784. package/src/filiale/rizhao/pc/DispatchWork.vue +0 -100
  785. package/src/filiale/rizhao/pc/DistributeWork.vue +0 -188
  786. package/src/filiale/rizhao/pc/FailureEdit.vue +0 -183
  787. package/src/filiale/rizhao/pc/FailureEditFire.vue +0 -169
  788. package/src/filiale/rizhao/pc/FailureEditRepair.vue +0 -174
  789. package/src/filiale/rizhao/pc/IgnitionVentilation.vue +0 -890
  790. package/src/filiale/rizhao/pc/NewRepairPaper.vue +0 -377
  791. package/src/filiale/rizhao/pc/RecordListLeft.vue +0 -189
  792. package/src/filiale/rizhao/pc/ReminderOrder.vue +0 -51
  793. package/src/filiale/rizhao/pc/RepairsWork.vue +0 -936
  794. package/src/filiale/rizhao/pc/Seekwork.vue +0 -339
  795. package/src/filiale/rizhao/pc/SiteSend.vue +0 -258
  796. package/src/filiale/rizhao/pc/StateStatistics.vue +0 -292
  797. package/src/filiale/rizhao/pc/TelFindUser.vue +0 -243
  798. package/src/filiale/rizhao/pc/TelMan.vue +0 -133
  799. package/src/filiale/rizhao/pc/TeleInfo.vue +0 -142
  800. package/src/filiale/rizhao/pc/TelephoneAnaly.vue +0 -72
  801. package/src/filiale/rizhao/pc/TelephoneType.vue +0 -272
  802. package/src/filiale/rizhao/pc/Traffic.vue +0 -91
  803. package/src/filiale/rizhao/pc/UserOperate.vue +0 -49
  804. package/src/filiale/rizhao/pc/VoiceServer.vue +0 -219
  805. package/src/filiale/rizhao/pc/WorkCenterList.vue +0 -294
  806. package/src/filiale/rizhao/pc/WorkHistory.vue +0 -541
  807. package/src/filiale/rizhao/pc/WorkList.vue +0 -783
  808. package/src/filiale/rizhao/pc/WorkListAllNew.vue +0 -677
  809. package/src/filiale/rizhao/pc/WxBaobiaoService.vue +0 -134
  810. package/src/filiale/rizhao/telephone.js +0 -57
  811. package/src/filiale/rizhao/telephoneAndroid.js +0 -16
  812. package/src/filiale/rongcheng/CliWorkListAll.vue +0 -701
  813. package/src/filiale/rongcheng/FaultAll.vue +0 -713
  814. package/src/filiale/rongcheng/RepairFirstV.vue +0 -418
  815. package/src/filiale/rongcheng/RepairOrderV.vue +0 -1445
  816. package/src/filiale/rongcheng/RepairUserInfo.vue +0 -539
  817. package/src/filiale/rongcheng/ServiceDetails.vue +0 -53
  818. package/src/filiale/rongcheng/WorkListAll.vue +0 -727
  819. package/src/filiale/rongcheng/batchPrintSafeCheckOrder.vue +0 -303
  820. package/src/filiale/rongcheng/checkmsgZG.vue +0 -243
  821. package/src/filiale/rongcheng/onlineBuyGas.vue +0 -799
  822. package/src/filiale/rongcheng/onlineoperation.vue +0 -383
  823. package/src/filiale/rongcheng/telephone.js +0 -19
  824. package/src/filiale/rongcheng/telephoneAndroid.js +0 -19
  825. package/src/filiale/shanxian/android/RepairFirstV.vue +0 -639
  826. package/src/filiale/shanxian/pc/RepairsWork.vue +0 -826
  827. package/src/filiale/shanxian/pc/TelFindUser.vue +0 -310
  828. package/src/filiale/shanxian/pc/WorkList.vue +0 -823
  829. package/src/filiale/shanxian/telephone.js +0 -14
  830. package/src/filiale/shanxian/telephoneAndroid.js +0 -13
  831. package/src/filiale/shaoguan/pc/WorkCenterList.vue +0 -326
  832. package/src/filiale/shaoguan/pc/WorkListAllNew.vue +0 -683
  833. package/src/filiale/shaoguan/telephone.js +0 -14
  834. package/src/filiale/shexian/android/AddMyTask.vue +0 -361
  835. package/src/filiale/shexian/android/CompletedRepair.vue +0 -280
  836. package/src/filiale/shexian/android/FaultAll.vue +0 -847
  837. package/src/filiale/shexian/android/Outlay.vue +0 -266
  838. package/src/filiale/shexian/android/RepairFirstV.vue +0 -780
  839. package/src/filiale/shexian/android/RepairInfo.vue +0 -183
  840. package/src/filiale/shexian/android/RepairOrderV.vue +0 -732
  841. package/src/filiale/shexian/pc/NewRepairPaper.vue +0 -374
  842. package/src/filiale/shexian/pc/QueryVisitHistory.vue +0 -237
  843. package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +0 -271
  844. package/src/filiale/shexian/pc/TelByOrderMan.vue +0 -109
  845. package/src/filiale/shexian/pc/TelByOrderManCount.vue +0 -124
  846. package/src/filiale/shexian/pc/TelByRepairType.vue +0 -111
  847. package/src/filiale/shexian/pc/WorkList.vue +0 -785
  848. package/src/filiale/shexian/pc/WorkListAllNew.vue +0 -735
  849. package/src/filiale/shexian/telephone.js +0 -21
  850. package/src/filiale/shexian/telephoneAndroid.js +0 -32
  851. package/src/filiale/shimen/pc/ChangemeterInfo.vue +0 -108
  852. package/src/filiale/shimen/pc/ComplainWork.vue +0 -297
  853. package/src/filiale/shimen/pc/DistributeWork.vue +0 -173
  854. package/src/filiale/shimen/pc/InfoTable.vue +0 -122
  855. package/src/filiale/shimen/pc/RepairList.vue +0 -109
  856. package/src/filiale/shimen/pc/RepairsWork.vue +0 -803
  857. package/src/filiale/shimen/pc/Seekwork.vue +0 -307
  858. package/src/filiale/shimen/pc/SellInfo.vue +0 -87
  859. package/src/filiale/shimen/pc/WorkListAllNew.vue +0 -680
  860. package/src/filiale/shimen/telephone.js +0 -23
  861. package/src/filiale/tianke/android/FaultAll.vue +0 -854
  862. package/src/filiale/tianke/android/RepairFirstV.vue +0 -614
  863. package/src/filiale/tianke/android.js +0 -12
  864. package/src/filiale/tianke/pc/DistributeWork.vue +0 -180
  865. package/src/filiale/tianke/pc/IgnitionVentilationWork.vue +0 -801
  866. package/src/filiale/tianke/pc/NewRepairPaper.vue +0 -370
  867. package/src/filiale/tianke/pc/RepairsWork.vue +0 -794
  868. package/src/filiale/tianke/pc/WorkList.vue +0 -769
  869. package/src/filiale/tianke/telephone.js +0 -17
  870. package/src/filiale/tianke/telephoneAndroid.js +0 -13
  871. package/src/filiale/tongchuan/android/AndroidStopGasManager.vue +0 -321
  872. package/src/filiale/tongchuan/android/CompletedRepair.vue +0 -211
  873. package/src/filiale/tongchuan/android/PhoneStandWork.vue +0 -409
  874. package/src/filiale/tongchuan/android/PhoneUpUserinfo.vue +0 -1005
  875. package/src/filiale/tongchuan/android/RepairDetails.vue +0 -623
  876. package/src/filiale/tongchuan/android/RepairFirstV.vue +0 -646
  877. package/src/filiale/tongchuan/android/RepairInfo.vue +0 -172
  878. package/src/filiale/tongchuan/android/RepairOrderV.vue +0 -1446
  879. package/src/filiale/tongchuan/android/TicketDetails.vue +0 -411
  880. package/src/filiale/tongchuan/pc/AnalysisMain.vue +0 -355
  881. package/src/filiale/tongchuan/pc/CallRecords.vue +0 -96
  882. package/src/filiale/tongchuan/pc/CheckWork.vue +0 -289
  883. package/src/filiale/tongchuan/pc/ComplainWork.vue +0 -324
  884. package/src/filiale/tongchuan/pc/DepRepairManCount.vue +0 -148
  885. package/src/filiale/tongchuan/pc/DistributeWork.vue +0 -179
  886. package/src/filiale/tongchuan/pc/ExportExcel.vue +0 -204
  887. package/src/filiale/tongchuan/pc/HiddenSituationWeixiu.vue +0 -115
  888. package/src/filiale/tongchuan/pc/QueryVisitHistory.vue +0 -236
  889. package/src/filiale/tongchuan/pc/RecordListLeft.vue +0 -216
  890. package/src/filiale/tongchuan/pc/RepairList.vue +0 -102
  891. package/src/filiale/tongchuan/pc/RepairWorkReport.vue +0 -133
  892. package/src/filiale/tongchuan/pc/RepairsWork.vue +0 -836
  893. package/src/filiale/tongchuan/pc/SeatInfo.vue +0 -325
  894. package/src/filiale/tongchuan/pc/Seekwork.vue +0 -307
  895. package/src/filiale/tongchuan/pc/ServiceDetails.vue +0 -112
  896. package/src/filiale/tongchuan/pc/StateStatistics.vue +0 -292
  897. package/src/filiale/tongchuan/pc/TelFindUser.vue +0 -278
  898. package/src/filiale/tongchuan/pc/TelMan.vue +0 -142
  899. package/src/filiale/tongchuan/pc/TelephoneAnaly.vue +0 -102
  900. package/src/filiale/tongchuan/pc/TelephoneType.vue +0 -272
  901. package/src/filiale/tongchuan/pc/Traffic.vue +0 -103
  902. package/src/filiale/tongchuan/pc/UserWork.vue +0 -805
  903. package/src/filiale/tongchuan/pc/VisitInfo.vue +0 -305
  904. package/src/filiale/tongchuan/pc/VisitListWork.vue +0 -251
  905. package/src/filiale/tongchuan/pc/VoiceServer.vue +0 -218
  906. package/src/filiale/tongchuan/pc/WorkCenterList.vue +0 -297
  907. package/src/filiale/tongchuan/pc/WorkHistory.vue +0 -521
  908. package/src/filiale/tongchuan/pc/WorkList.vue +0 -811
  909. package/src/filiale/tongchuan/pc/WorkListAll.vue +0 -731
  910. package/src/filiale/tongchuan/pc/WorkOrderStatistics.vue +0 -294
  911. package/src/filiale/tongchuan/pc/WorkorderCheckDistributePlan.vue +0 -376
  912. package/src/filiale/tongchuan/pc/visitPlanList.vue +0 -342
  913. package/src/filiale/tongchuan/pc/visitPlanManage.vue +0 -599
  914. package/src/filiale/tongchuan/pc/visitServiceList.vue +0 -285
  915. package/src/filiale/tongchuan/telephone.js +0 -52
  916. package/src/filiale/tongchuan/telephoneAndroid.js +0 -23
  917. package/src/filiale/v3new/android/FaultAll.vue +0 -809
  918. package/src/filiale/v3new/android/RepairFirstV.vue +0 -633
  919. package/src/filiale/v3new/pc/SiteBack.vue +0 -83
  920. package/src/filiale/v3new/pc/WorkCenter.vue +0 -104
  921. package/src/filiale/v3new/pc/WorkCenterList.vue +0 -274
  922. package/src/filiale/v3new/pc/WorkHistory.vue +0 -537
  923. package/src/filiale/v3new/pc/WorkList.vue +0 -766
  924. package/src/filiale/v3new/pc/WorkListNew.vue +0 -706
  925. package/src/filiale/v3new/pc/serviceDeleteOrder.vue +0 -51
  926. package/src/filiale/v3new/telephone.js +0 -19
  927. package/src/filiale/v3new/telephoneAndroid.js +0 -15
  928. package/src/filiale/weinanct/android/AppInstallationMaterial.vue +0 -586
  929. package/src/filiale/weinanct/android/FaultAll.vue +0 -854
  930. package/src/filiale/weinanct/android/RepairDetails.vue +0 -508
  931. package/src/filiale/weinanct/android/RepairFirstV.vue +0 -635
  932. package/src/filiale/weinanct/android/RepairOrderV.vue +0 -1443
  933. package/src/filiale/weinanct/pc/TelFindUser.vue +0 -213
  934. package/src/filiale/weinanct/pc/VoiceServer.vue +0 -208
  935. package/src/filiale/weinanct/telephone.js +0 -14
  936. package/src/filiale/weinanct/telephoneAndroid.js +0 -20
  937. package/src/filiale/weinanct//350/257/264/346/230/216.txt +0 -1
  938. package/src/filiale/wenxi/android/FailureShow.vue +0 -61
  939. package/src/filiale/wenxi/android/FaultAll.vue +0 -710
  940. package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +0 -1053
  941. package/src/filiale/wenxi/android/RepairFirstV.vue +0 -537
  942. package/src/filiale/wenxi/android/RepairInfo.vue +0 -252
  943. package/src/filiale/wenxi/android/RepairOrderV.vue +0 -805
  944. package/src/filiale/wenxi/android/RepairUserInfo.vue +0 -532
  945. package/src/filiale/wenxi/android/ZHihuanFirst.vue +0 -505
  946. package/src/filiale/wenxi/pc/DistributeWork.vue +0 -163
  947. package/src/filiale/wenxi/pc/FailureEdit.vue +0 -206
  948. package/src/filiale/wenxi/pc/GasWork.vue +0 -747
  949. package/src/filiale/wenxi/pc/MetereadInfo.vue +0 -82
  950. package/src/filiale/wenxi/pc/RepairsWork.vue +0 -853
  951. package/src/filiale/wenxi/pc/TelAgentVoiceReport.vue +0 -290
  952. package/src/filiale/wenxi/pc/TelFindUser.vue +0 -306
  953. package/src/filiale/wenxi/pc/VoiceServer.vue +0 -214
  954. package/src/filiale/wenxi/pc/WorkListAll.vue +0 -698
  955. package/src/filiale/wenxi/telephone.js +0 -19
  956. package/src/filiale/wenxi/telephoneAndroid.js +0 -20
  957. package/src/filiale/wuan/Util.js +0 -461
  958. package/src/filiale/wuan/android/AddMyTask.vue +0 -227
  959. package/src/filiale/wuan/android/RepairInfo.vue +0 -136
  960. package/src/filiale/wuan/android/RepairOrderV.vue +0 -1384
  961. package/src/filiale/wuan/android/RepairUserInfo.vue +0 -581
  962. package/src/filiale/wuan/pc/BatchList.vue +0 -329
  963. package/src/filiale/wuan/pc/BatchListSanhu.vue +0 -329
  964. package/src/filiale/wuan/pc/BatchOrdersSanhu.vue +0 -115
  965. package/src/filiale/wuan/pc/CheckWork.vue +0 -263
  966. package/src/filiale/wuan/pc/DistributeWork.vue +0 -136
  967. package/src/filiale/wuan/pc/FailureEdit.vue +0 -174
  968. package/src/filiale/wuan/pc/GasWorkSanhu.vue +0 -817
  969. package/src/filiale/wuan/pc/RepairsWork.vue +0 -848
  970. package/src/filiale/wuan/pc/Seekwork.vue +0 -311
  971. package/src/filiale/wuan/pc/TelFindUser.vue +0 -229
  972. package/src/filiale/wuan/pc/WorkListAll.vue +0 -642
  973. package/src/filiale/wuan/telephone.js +0 -23
  974. package/src/filiale/wuan/telephoneAndroid.js +0 -17
  975. package/src/filiale/wuhai/pc/CallRcords.vue +0 -109
  976. package/src/filiale/wuhai/pc/ComplainWork.vue +0 -324
  977. package/src/filiale/wuhai/pc/Console.vue +0 -432
  978. package/src/filiale/wuhai/pc/DistributeWork.vue +0 -173
  979. package/src/filiale/wuhai/pc/FailureEdit.vue +0 -190
  980. package/src/filiale/wuhai/pc/InfoTable.vue +0 -135
  981. package/src/filiale/wuhai/pc/NewRepairPaper.vue +0 -380
  982. package/src/filiale/wuhai/pc/RecordListLeft.vue +0 -202
  983. package/src/filiale/wuhai/pc/RepairsWork.vue +0 -811
  984. package/src/filiale/wuhai/pc/SecuritycheckInfo.vue +0 -92
  985. package/src/filiale/wuhai/pc/Seekwork.vue +0 -361
  986. package/src/filiale/wuhai/pc/ServiceRcords.vue +0 -146
  987. package/src/filiale/wuhai/pc/TelFindUser.vue +0 -256
  988. package/src/filiale/wuhai/pc/VoiceServer.vue +0 -211
  989. package/src/filiale/wuhai/pc/WorkCenter.vue +0 -104
  990. package/src/filiale/wuhai/pc/WorkCenterList.vue +0 -337
  991. package/src/filiale/wuhai/pc/WorkListAllNew.vue +0 -715
  992. package/src/filiale/wuhai/pc/serviceDeleteOrder.vue +0 -54
  993. package/src/filiale/wuhai/telephone.js +0 -35
  994. package/src/filiale/xinkang/android/FaultAll.vue +0 -840
  995. package/src/filiale/xinkang/android/RepairFirstV.vue +0 -484
  996. package/src/filiale/xinkang/telephoneAndroid.js +0 -14
  997. package/src/filiale/yuansheng/android/RepairFirstV.vue +0 -636
  998. package/src/filiale/yuansheng/android/RepairInfo.vue +0 -166
  999. package/src/filiale/yuansheng/pc/DistributeWork.vue +0 -177
  1000. package/src/filiale/yuansheng/pc/FailureEdit.vue +0 -188
  1001. package/src/filiale/yuansheng/pc/HandplanInfo.vue +0 -78
  1002. package/src/filiale/yuansheng/pc/MetereadInfo.vue +0 -83
  1003. package/src/filiale/yuansheng/pc/ReservationWork.vue +0 -156
  1004. package/src/filiale/yuansheng/pc/TelFindUser.vue +0 -237
  1005. package/src/filiale/yuansheng/pc/VoiceServer.vue +0 -208
  1006. package/src/filiale/yuansheng/telephone.js +0 -20
  1007. package/src/filiale/yuansheng/telephoneAndroid.js +0 -16
  1008. package/src/filiale/yuncheng/pc/TelFindUser.vue +0 -315
  1009. package/src/filiale/yuncheng/pc/WorkList.vue +0 -823
  1010. package/src/filiale/yuncheng/pc/WorkListAllNew.vue +0 -722
  1011. package/src/filiale/yuncheng/telephone.js +0 -14
  1012. package/src/filiale/zhongsheng/android/FailureShow.vue +0 -61
  1013. package/src/filiale/zhongsheng/android/FaultAll.vue +0 -741
  1014. package/src/filiale/zhongsheng/android/RepairFirstV.vue +0 -464
  1015. package/src/filiale/zhongsheng/android/RepairInfo.vue +0 -133
  1016. package/src/filiale/zhongsheng/android/RepairOrderV.vue +0 -1430
  1017. package/src/filiale/zhongsheng/android/RepairUserInfo.vue +0 -559
  1018. package/src/filiale/zhongsheng/pc/ComplainWork.vue +0 -299
  1019. package/src/filiale/zhongsheng/pc/Console.vue +0 -432
  1020. package/src/filiale/zhongsheng/pc/DistributeWork.vue +0 -173
  1021. package/src/filiale/zhongsheng/pc/IgnitionVentilationWork.vue +0 -836
  1022. package/src/filiale/zhongsheng/pc/InfoTable.vue +0 -124
  1023. package/src/filiale/zhongsheng/pc/RepairsWork.vue +0 -775
  1024. package/src/filiale/zhongsheng/pc/Seekwork.vue +0 -283
  1025. package/src/filiale/zhongsheng/pc/TelFindUser.vue +0 -216
  1026. package/src/filiale/zhongsheng/pc/WorkList.vue +0 -805
  1027. package/src/filiale/zhongsheng/pc/WorkListAll.vue +0 -628
  1028. package/src/filiale/zhongsheng/telephone.js +0 -23
  1029. package/src/filiale/zhongsheng/telephoneAndroid.js +0 -19
  1030. package/src/filiale/zhongyi/android/FaultAll.vue +0 -854
  1031. package/src/filiale/zhongyi/android/RepairFirstV.vue +0 -614
  1032. package/src/filiale/zhongyi/android.js +0 -12
  1033. package/src/filiale/zhongyi/pc/DistributeWork.vue +0 -180
  1034. package/src/filiale/zhongyi/pc/IgnitionVentilationWork.vue +0 -801
  1035. package/src/filiale/zhongyi/pc/NewRepairPaper.vue +0 -370
  1036. package/src/filiale/zhongyi/pc/RepairsWork.vue +0 -794
  1037. package/src/filiale/zhongyi/pc/WorkList.vue +0 -769
  1038. package/src/filiale/zhongyi/pc/WorkListAllNew.vue +0 -672
  1039. package/src/filiale/zhongyi/telephone.js +0 -18
  1040. package/src/filiale/zhongyi/telephoneAndroid.js +0 -13
  1041. package/src/filiale/zhoukou/android/ChargeBill.vue +0 -201
  1042. package/src/filiale/zhoukou/android/FaultAll.vue +0 -779
  1043. package/src/filiale/zhoukou/android/Othercharge.vue +0 -591
  1044. package/src/filiale/zhoukou/android/OtherchargeZhoukou.vue +0 -574
  1045. package/src/filiale/zhoukou/android/Outlay.vue +0 -236
  1046. package/src/filiale/zhoukou/android/RepairDetails.vue +0 -544
  1047. package/src/filiale/zhoukou/android/RepairFirstV.vue +0 -542
  1048. package/src/filiale/zhoukou/android/RepairInfo.vue +0 -136
  1049. package/src/filiale/zhoukou/android/RepairOrderV.vue +0 -1383
  1050. package/src/filiale/zhoukou/android/RepairUserInfo.vue +0 -532
  1051. package/src/filiale/zhoukou/android/ZkBill.vue +0 -191
  1052. package/src/filiale/zhoukou/android/createQRcode.vue +0 -256
  1053. package/src/filiale/zhoukou/android/onlineBuyGas.vue +0 -804
  1054. package/src/filiale/zhoukou/android/onlineoperation.vue +0 -416
  1055. package/src/filiale/zhoukou/android/onlinequeryuser.vue +0 -468
  1056. package/src/filiale/zhoukou/assets/dancheng.png +0 -0
  1057. package/src/filiale/zhoukou/assets/luyi.png +0 -0
  1058. package/src/filiale/zhoukou/assets/xiangcheng.png +0 -0
  1059. package/src/filiale/zhoukou/assets/xihua.png +0 -0
  1060. package/src/filiale/zhoukou/assets/zhoukou.png +0 -0
  1061. package/src/filiale/zhoukou/pc/ExportExcel.vue +0 -204
  1062. package/src/filiale/zhoukou/pc/NewRepairPaper.vue +0 -366
  1063. package/src/filiale/zhoukou/pc/SiteSend.vue +0 -265
  1064. package/src/filiale/zhoukou/pc/WorkHistory.vue +0 -514
  1065. package/src/filiale/zhoukou/pc/WorkList.vue +0 -653
  1066. package/src/filiale/zhoukou/pc/WorkListAllNew.vue +0 -675
  1067. package/src/filiale/zhoukou/telephone.js +0 -18
  1068. 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>