askbot-dragon 1.6.76-beta → 1.6.76

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 (308) hide show
  1. package/README.md +27 -27
  2. package/babel.config.js +6 -6
  3. package/dragon.iml +7 -7
  4. package/package.json +58 -55
  5. package/public/index.html +75 -72
  6. package/public/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
  7. package/public/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
  8. package/public/pdfjs/cmaps/78-H.bcmap +0 -0
  9. package/public/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
  10. package/public/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
  11. package/public/pdfjs/cmaps/78-V.bcmap +0 -0
  12. package/public/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
  13. package/public/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
  14. package/public/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
  15. package/public/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
  16. package/public/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
  17. package/public/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
  18. package/public/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
  19. package/public/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
  20. package/public/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
  21. package/public/pdfjs/cmaps/Add-H.bcmap +0 -0
  22. package/public/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
  23. package/public/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
  24. package/public/pdfjs/cmaps/Add-V.bcmap +0 -0
  25. package/public/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
  26. package/public/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
  27. package/public/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
  28. package/public/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
  29. package/public/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
  30. package/public/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
  31. package/public/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
  32. package/public/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  33. package/public/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
  34. package/public/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
  35. package/public/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
  36. package/public/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
  37. package/public/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
  38. package/public/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
  39. package/public/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  40. package/public/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
  41. package/public/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
  42. package/public/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
  43. package/public/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
  44. package/public/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
  45. package/public/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
  46. package/public/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
  47. package/public/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  48. package/public/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
  49. package/public/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
  50. package/public/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
  51. package/public/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  52. package/public/pdfjs/cmaps/B5-H.bcmap +0 -0
  53. package/public/pdfjs/cmaps/B5-V.bcmap +0 -0
  54. package/public/pdfjs/cmaps/B5pc-H.bcmap +0 -0
  55. package/public/pdfjs/cmaps/B5pc-V.bcmap +0 -0
  56. package/public/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
  57. package/public/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
  58. package/public/pdfjs/cmaps/CNS1-H.bcmap +0 -0
  59. package/public/pdfjs/cmaps/CNS1-V.bcmap +0 -0
  60. package/public/pdfjs/cmaps/CNS2-H.bcmap +0 -0
  61. package/public/pdfjs/cmaps/CNS2-V.bcmap +3 -0
  62. package/public/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
  63. package/public/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
  64. package/public/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
  65. package/public/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
  66. package/public/pdfjs/cmaps/ETenms-B5-H.bcmap +3 -0
  67. package/public/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
  68. package/public/pdfjs/cmaps/EUC-H.bcmap +0 -0
  69. package/public/pdfjs/cmaps/EUC-V.bcmap +0 -0
  70. package/public/pdfjs/cmaps/Ext-H.bcmap +0 -0
  71. package/public/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
  72. package/public/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
  73. package/public/pdfjs/cmaps/Ext-V.bcmap +0 -0
  74. package/public/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
  75. package/public/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
  76. package/public/pdfjs/cmaps/GB-H.bcmap +4 -0
  77. package/public/pdfjs/cmaps/GB-V.bcmap +0 -0
  78. package/public/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
  79. package/public/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
  80. package/public/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
  81. package/public/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
  82. package/public/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
  83. package/public/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
  84. package/public/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
  85. package/public/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
  86. package/public/pdfjs/cmaps/GBT-H.bcmap +0 -0
  87. package/public/pdfjs/cmaps/GBT-V.bcmap +0 -0
  88. package/public/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
  89. package/public/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
  90. package/public/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
  91. package/public/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
  92. package/public/pdfjs/cmaps/H.bcmap +0 -0
  93. package/public/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
  94. package/public/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
  95. package/public/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
  96. package/public/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
  97. package/public/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
  98. package/public/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
  99. package/public/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
  100. package/public/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
  101. package/public/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
  102. package/public/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
  103. package/public/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
  104. package/public/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
  105. package/public/pdfjs/cmaps/Hankaku.bcmap +0 -0
  106. package/public/pdfjs/cmaps/Hiragana.bcmap +0 -0
  107. package/public/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
  108. package/public/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
  109. package/public/pdfjs/cmaps/KSC-H.bcmap +0 -0
  110. package/public/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
  111. package/public/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
  112. package/public/pdfjs/cmaps/KSC-V.bcmap +0 -0
  113. package/public/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
  114. package/public/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  115. package/public/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  116. package/public/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
  117. package/public/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
  118. package/public/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
  119. package/public/pdfjs/cmaps/Katakana.bcmap +0 -0
  120. package/public/pdfjs/cmaps/LICENSE +36 -0
  121. package/public/pdfjs/cmaps/NWP-H.bcmap +0 -0
  122. package/public/pdfjs/cmaps/NWP-V.bcmap +0 -0
  123. package/public/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
  124. package/public/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
  125. package/public/pdfjs/cmaps/Roman.bcmap +0 -0
  126. package/public/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  127. package/public/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  128. package/public/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  129. package/public/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  130. package/public/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  131. package/public/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  132. package/public/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  133. package/public/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  134. package/public/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
  135. package/public/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
  136. package/public/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
  137. package/public/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
  138. package/public/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
  139. package/public/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
  140. package/public/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
  141. package/public/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
  142. package/public/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  143. package/public/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  144. package/public/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  145. package/public/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  146. package/public/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  147. package/public/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  148. package/public/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  149. package/public/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  150. package/public/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  151. package/public/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  152. package/public/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  153. package/public/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  154. package/public/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  155. package/public/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  156. package/public/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  157. package/public/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  158. package/public/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  159. package/public/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  160. package/public/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  161. package/public/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  162. package/public/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  163. package/public/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  164. package/public/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  165. package/public/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
  166. package/public/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
  167. package/public/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
  168. package/public/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
  169. package/public/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
  170. package/public/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
  171. package/public/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
  172. package/public/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
  173. package/public/pdfjs/cmaps/V.bcmap +0 -0
  174. package/public/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
  175. package/public/pdfjs/standard_fonts/FoxitDingbats.pfb +0 -0
  176. package/public/pdfjs/standard_fonts/FoxitFixed.pfb +0 -0
  177. package/public/pdfjs/standard_fonts/FoxitFixedBold.pfb +0 -0
  178. package/public/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  179. package/public/pdfjs/standard_fonts/FoxitFixedItalic.pfb +0 -0
  180. package/public/pdfjs/standard_fonts/FoxitSans.pfb +0 -0
  181. package/public/pdfjs/standard_fonts/FoxitSansBold.pfb +0 -0
  182. package/public/pdfjs/standard_fonts/FoxitSansBoldItalic.pfb +0 -0
  183. package/public/pdfjs/standard_fonts/FoxitSansItalic.pfb +0 -0
  184. package/public/pdfjs/standard_fonts/FoxitSerif.pfb +0 -0
  185. package/public/pdfjs/standard_fonts/FoxitSerifBold.pfb +0 -0
  186. package/public/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  187. package/public/pdfjs/standard_fonts/FoxitSerifItalic.pfb +0 -0
  188. package/public/pdfjs/standard_fonts/FoxitSymbol.pfb +0 -0
  189. package/public/pdfjs/standard_fonts/LICENSE_FOXIT +27 -0
  190. package/public/pdfjs/standard_fonts/LICENSE_LIBERATION +102 -0
  191. package/public/pdfjs/standard_fonts/LiberationSans-Bold.ttf +0 -0
  192. package/public/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  193. package/public/pdfjs/standard_fonts/LiberationSans-Italic.ttf +0 -0
  194. package/public/pdfjs/standard_fonts/LiberationSans-Regular.ttf +0 -0
  195. package/src/App.vue +31 -31
  196. package/src/api/index.js +1 -1
  197. package/src/api/mock.http +2 -2
  198. package/src/api/requestUrl.js +185 -185
  199. package/src/assets/image/default_avt_ui.png +0 -0
  200. package/src/assets/image/filtType/audio.png +0 -0
  201. package/src/assets/image/filtType/excel1.png +0 -0
  202. package/src/assets/image/filtType/general.png +0 -0
  203. package/src/assets/image/filtType/html.png +0 -0
  204. package/src/assets/image/filtType/image1.png +0 -0
  205. package/src/assets/image/filtType/link.png +0 -0
  206. package/src/assets/image/filtType/md2.png +0 -0
  207. package/src/assets/image/filtType/mode.png +0 -0
  208. package/src/assets/image/filtType/news.png +0 -0
  209. package/src/assets/image/filtType/pdf1.png +0 -0
  210. package/src/assets/image/filtType/ppt1.png +0 -0
  211. package/src/assets/image/filtType/selfadd1.png +0 -0
  212. package/src/assets/image/filtType/txt1.png +0 -0
  213. package/src/assets/image/filtType/video.png +0 -0
  214. package/src/assets/image/filtType/wechat.png +0 -0
  215. package/src/assets/image/filtType/word1.png +0 -0
  216. package/src/assets/image/loading.gif +0 -0
  217. package/src/assets/js/AliyunlssUtil.js +117 -92
  218. package/src/assets/js/Base64Util.js +22 -22
  219. package/src/assets/js/common.js +287 -252
  220. package/src/assets/js/hammer.js +89 -100
  221. package/src/assets/js/script.js +36 -36
  222. package/src/assets/less/common.css +6773 -6773
  223. package/src/assets/less/converSationContainer/common.less +192 -199
  224. package/src/assets/less/converSationContainer/converSatonContainer.less +486 -493
  225. package/src/assets/less/iconfont.css +37 -37
  226. package/src/assets/less/ticketMessage.less +294 -294
  227. package/src/assets/less/variables.less +122 -0
  228. package/src/components/ActionAlertIframe.vue +155 -177
  229. package/src/components/AiGuide.vue +473 -466
  230. package/src/components/AnswerDocknowledge.vue +1207 -1059
  231. package/src/components/AnswerVoice.vue +286 -285
  232. package/src/components/AskIFrame.vue +15 -15
  233. package/src/components/ConversationContainer.vue +10880 -4934
  234. package/src/components/FileType.vue +86 -86
  235. package/src/components/Message.vue +27 -27
  236. package/src/components/MyEditor.vue +343 -351
  237. package/src/components/QwFeedback.vue +304 -0
  238. package/src/components/actionSatisfaction.vue +109 -107
  239. package/src/components/actionSendToBot.vue +64 -62
  240. package/src/components/answerDissatisfaction.vue +64 -62
  241. package/src/components/answerRadio.vue +261 -186
  242. package/src/components/ask-components/DissatisfactionOptions.vue +58 -57
  243. package/src/components/ask-components/Msgloading.vue +38 -37
  244. package/src/components/ask-components/SatisfactionV2.vue +15 -15
  245. package/src/components/askVideo.vue +214 -162
  246. package/src/components/assetDetails.vue +379 -378
  247. package/src/components/assetMessage.vue +231 -228
  248. package/src/components/associationIntention.vue +414 -355
  249. package/src/components/attachmentPreview.vue +92 -90
  250. package/src/components/botActionSatisfactor.vue +70 -68
  251. package/src/components/chatContent.vue +514 -513
  252. package/src/components/feedBack.vue +138 -136
  253. package/src/components/fielListView.vue +352 -351
  254. package/src/components/file/AliyunOssComponents.vue +108 -108
  255. package/src/components/formTemplate.vue +3517 -3572
  256. package/src/components/imgView.vue +32 -0
  257. package/src/components/intelligentSummary.vue +232 -227
  258. package/src/components/interruptComponents/imageSelectionAnswer.vue +203 -0
  259. package/src/components/interruptComponents/multipleChoiceAnswer.vue +134 -0
  260. package/src/components/interruptComponents/singleChoiceAnswer.vue +82 -0
  261. package/src/components/kkview.vue +1130 -1138
  262. package/src/components/loadingProcess.vue +164 -164
  263. package/src/components/markDownText.vue +961 -0
  264. package/src/components/message/ActionAlertIframe.vue +112 -112
  265. package/src/components/message/ShopMessage.vue +164 -164
  266. package/src/components/message/TextMessage.vue +926 -924
  267. package/src/components/message/TicketMessage.vue +201 -201
  268. package/src/components/message/swiper/index.js +4 -4
  269. package/src/components/message/swiper/ticketSwiper.vue +503 -503
  270. package/src/components/message/swiper/ticketSwiperItem.vue +61 -61
  271. package/src/components/msgLoading.vue +231 -231
  272. package/src/components/myPopup.vue +75 -70
  273. package/src/components/outputComponents/outputCom.vue +149 -0
  274. package/src/components/pagination.vue +130 -0
  275. package/src/components/pdfPosition.vue +1337 -1506
  276. package/src/components/popup.vue +230 -227
  277. package/src/components/preview/docView.vue +263 -0
  278. package/src/components/preview/excelView.vue +260 -0
  279. package/src/components/preview/markDownView.vue +70 -0
  280. package/src/components/preview/newPositionPreview.vue +601 -0
  281. package/src/components/preview/pdfView.vue +973 -0
  282. package/src/components/previewDoc.vue +253 -247
  283. package/src/components/previewPdf.vue +1106 -757
  284. package/src/components/previewWisdom.vue +252 -0
  285. package/src/components/receiverMessagePlatform.vue +71 -65
  286. package/src/components/recommend.vue +82 -80
  287. package/src/components/selector/hOption.vue +20 -20
  288. package/src/components/selector/hSelector.vue +199 -199
  289. package/src/components/selector/hWrapper.vue +216 -216
  290. package/src/components/senderMessagePlatform.vue +60 -50
  291. package/src/components/source/BotMessage.vue +24 -24
  292. package/src/components/source/CustomMessage.vue +24 -24
  293. package/src/components/test.vue +260 -260
  294. package/src/components/tree.vue +310 -295
  295. package/src/components/utils/AliyunIssUtil.js +103 -81
  296. package/src/components/utils/ckeditor.js +185 -174
  297. package/src/components/utils/format_date.js +25 -25
  298. package/src/components/utils/index.js +6 -6
  299. package/src/components/utils/math_utils.js +29 -29
  300. package/src/components/voiceComponent.vue +122 -119
  301. package/src/components/welcomeKnowledgeFile.vue +346 -340
  302. package/src/components/welcomeLlmCard.vue +142 -140
  303. package/src/components/welcomeSuggest.vue +99 -97
  304. package/src/locales/cn.json +100 -0
  305. package/src/locales/en.json +99 -0
  306. package/src/main.js +76 -57
  307. package/vue.config.js +54 -54
  308. package/src/components/newPdfPosition.vue +0 -878
@@ -1,503 +1,503 @@
1
- <template>
2
- <div id="pnm_swiper">
3
- <div
4
- class="swiper"
5
- @touchstart="touchStart"
6
- @touchmove="touchMove"
7
- @touchend="touchEnd"
8
-
9
- >
10
- <slot></slot>
11
- </div>
12
- <div v-if="device==='PC'&&content.multiple===true && content.cards && content.cards.length > 1" class="clickBtn">
13
- <div class="preBtn" @click="preClick" style="display: flex">
14
- <i class="el-icon-arrow-left" style="font-size: 18px;font-weight:800;align-self: center;margin: auto"></i>
15
- </div>
16
- <div class="nextBtn" @click="nextClick" style="display: flex">
17
- <i class="el-icon-arrow-right" style="font-size: 18px;font-weight:800;align-self: center;margin: auto" ></i>
18
- </div>
19
- </div>
20
- <div class="bullet" :class="{isPhoneClass:isPhone===true,isPcClass:isPc===true,isAndroidClass:isAndroid===true,isIosClass:isIos===true}">
21
- <div
22
- class="bullet_item"
23
- v-show="slideCount > 1&&content.multiple===true"
24
- v-for="(item, slideIndex) in slideCount"
25
- :class="setBulletActive(slideIndex)"
26
- :key="slideIndex"
27
- ></div>
28
- </div>
29
- </div>
30
-
31
- </template>
32
- <script>
33
- export default {
34
- data() {
35
- return {
36
- currIndex: 1,
37
- swiperStyle: {}, //swiper样式
38
- slideWidth: null, //一张slide的宽度
39
- moveTimer: null,
40
- startPos: 0,
41
- distance: 0,
42
- slideCount: 0,
43
- device:'',
44
- IsmouseOver:false,
45
- IsShowArrowHead:false,
46
- isPhone:false,
47
- isPc:false,
48
- isAndroid:false,
49
- isIos:false,
50
- startX:'',
51
- startY:'',
52
- startTime:''
53
-
54
-
55
- };
56
- },
57
- props: {
58
- moveRatio: {
59
- type: Number,
60
- default: 0.2
61
- },
62
- animDuration: {
63
- type: Number,
64
- default: 300
65
- },
66
- content:{
67
- type:Object,
68
- default(){
69
- return {}
70
- }
71
- },
72
- type:String
73
- },
74
- mounted() {
75
- this.slideOn();
76
- this.isIosOrIsAndroid()
77
-
78
- },
79
- methods: {
80
- // 0. 启动函数
81
-
82
- slideOn() {
83
- this.initDom();
84
- let swiperEls = this.$el;
85
- var touchElement = {};
86
- swiperEls.addEventListener('touchstart',function (e) {
87
- touchElement.startX = e.touches[0].clientX;
88
- touchElement.startY = e.touches[0].clientY;
89
- if (this.slideCount > 1) {
90
- clearInterval(this.moveTimer);
91
- this.startPos = e.touches[0].pageX;
92
- }
93
- })
94
- swiperEls.addEventListener('touchmove',function (e) {
95
- var deltaX = e.touches[0].clientX - touchElement.startX;
96
- var deltaY = e.touches[0].clientY - touchElement.startY;
97
- if (Math.abs(Math.asin(deltaY/deltaX)) <= 15/180*Math.PI && e.cancelable) {
98
- e.preventDefault();
99
- }
100
- if (this.slideCount > 1) {
101
- let movePos = e.touches[0].pageX;
102
- this.distance = movePos - this.startPos;
103
- let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
104
- this.setTransform(moveDistance);
105
- }
106
- })
107
- swiperEls.addEventListener('touchend',function (e) {
108
- if(e.cancelable)
109
- {
110
- e.preventDefault()
111
- }
112
- if (this.slideCount > 1) {
113
- let _Dis = Math.abs(this.distance); //绝对值求出移动的距离
114
- if (this.distance == 0) {
115
- return;
116
- } else if (
117
- this.distance > 0 &&
118
- _Dis > this.slideWidth * this.moveRatio
119
- ) {
120
- this.currIndex--;
121
- console.debug(this.currIndex)
122
- } else if (
123
- this.distance < 0 &&
124
- _Dis > this.slideWidth * this.moveRatio
125
- ) {
126
- this.currIndex++;
127
- }
128
- //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
129
- this.scrollCheck();
130
- //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
131
- /*this.moveAuto();*/
132
- }
133
-
134
-
135
-
136
- })
137
-
138
- },
139
-
140
- // 1. 初始化DOM,并获取必要的数据
141
- initDom() {
142
- this.isMobile()
143
- let swiperEls = this.$el;
144
- console.debug('swiperEls',swiperEls);
145
- let swiperEl=swiperEls.querySelector('.swiper')
146
-
147
- let slides = swiperEl.querySelectorAll(".slide");
148
- this.swiperStyle = swiperEl.style;
149
- this.slideCount = slides.length;
150
- this.slideWidth = swiperEl.offsetWidth;
151
-
152
-
153
- if (this.slideCount > 1) {
154
- let firstSlide = slides[0].cloneNode(true);
155
- let lastSlide = slides[this.slideCount - 1].cloneNode(true);
156
- swiperEl.appendChild(firstSlide);
157
- swiperEl.insertBefore(lastSlide, slides[0]);
158
- //设置开头位置
159
- this.setTransform(-this.slideWidth);
160
- }
161
- console.debug(swiperEl)
162
-
163
- },
164
-
165
- // 2. 自动滚动
166
- /* moveAuto() {
167
- this.moveTimer = setInterval(() => {
168
- this.currIndex++;
169
- //每次滚动都需要先进行检测,真正滚动也会在检测里完成
170
- this.scrollCheck();
171
- }, 1000);
172
- },*/
173
-
174
- // 3. 滚动检测(检测是第一张还是最后一张,让其回滚到正确的位置)
175
- scrollCheck() {
176
- // 开启过渡动画并开始滚动
177
- this.swiperStyle.transition = "transform " + this.animDuration + "ms";
178
- this.setTransform(-this.currIndex * this.slideWidth);
179
-
180
- //设置一个定时器,等过渡动画结束后执行(判断所处位置是第几张)
181
- setTimeout(() => {
182
- this.swiperStyle.transition = "0ms";
183
- //判断第一张,和最后一张
184
- if (this.currIndex <= 0) {
185
- this.currIndex = this.slideCount;
186
- this.setTransform(-this.currIndex * this.slideWidth);
187
- } else if (this.currIndex >= this.slideCount + 1) {
188
- this.currIndex = 1;
189
- this.setTransform(-this.slideWidth);
190
- }
191
- }, this.animDuration);
192
- },
193
-
194
- //设置swiper的transform的滚动距离
195
- setTransform(pos) {
196
- this.swiperStyle.transform = `translateX(${pos}px)`;
197
- },
198
-
199
- //重置子弹的active
200
- setBulletActive(index) {
201
- if (this.currIndex >= this.slideCount + 1) {
202
- //最后一张的情况
203
- return { active: index == 0 };
204
- } else if (this.currIndex <= 0) {
205
- //第0张的情况
206
- return { active: index == this.slideCount - 1 };
207
- } else {
208
- //一般情况
209
- return { active: index == this.currIndex - 1 };
210
- }
211
-
212
- },
213
-
214
- /*
215
- 触屏事件
216
- */
217
-
218
- touchStart(e) {
219
- // 记录下触发的坐标和时间
220
- this.startTime = (new Date()).getTime();
221
- this.startX = e.targetTouches[0].clientX;
222
- this.startY = e.targetTouches[0].clientY;
223
- if (this.slideCount > 1) {
224
- clearInterval(this.moveTimer);
225
- this.startPos = e.touches[0].pageX;
226
- }
227
- },
228
- touchMove(e) {
229
- if (this.slideCount > 1) {
230
- let movePos = e.touches[0].pageX;
231
- this.distance = movePos - this.startPos;
232
- let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
233
- this.setTransform(moveDistance);
234
- this.$emit('touchMove',e)
235
- }
236
- },
237
- touchEnd(e) {
238
- if(e.cancelable)
239
- {
240
- e.preventDefault()
241
- }
242
- var now = (new Date()).getTime();
243
- // 小于300ms可以识别为点击事件的范围 然后判断触摸点的移动距离
244
- if (now - this.startTime < 300) {
245
- var x = (Math.abs(this.startX - e.changedTouches[0].clientX) < 30);
246
- var y = (Math.abs(this.startY - e.changedTouches[0].clientY) < 30);
247
- if (x && y) {
248
- e.changedTouches[0].target.click();
249
- }
250
- else {
251
-
252
- if (this.slideCount > 1) {
253
- let _Dis = Math.abs(this.distance); //绝对值求出移动的距离
254
- if (this.distance == 0) {
255
- return;
256
- } else if (
257
- this.distance > 0 &&
258
- _Dis > this.slideWidth * this.moveRatio
259
- ) {
260
- this.currIndex--;
261
- } else if (
262
- this.distance < 0 &&
263
- _Dis > this.slideWidth * this.moveRatio
264
- ) {
265
- this.currIndex++;
266
- }
267
- //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
268
- this.scrollCheck();
269
- //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
270
- /*this.moveAuto();*/
271
- }
272
- }
273
- this.$emit('touchEnd',this.currIndex)
274
-
275
- }
276
- else {
277
- if (this.slideCount > 1) {
278
- let _Dis = Math.abs(this.distance); //绝对值求出移动的距离
279
-
280
- if (this.distance == 0) {
281
- return;
282
- } else if (
283
- this.distance > 0 &&
284
- _Dis > this.slideWidth * this.moveRatio
285
- ) {
286
- this.currIndex--;
287
- console.debug(this.currIndex)
288
- } else if (
289
- this.distance < 0 &&
290
- _Dis > this.slideWidth * this.moveRatio
291
- ) {
292
- this.currIndex++;
293
- }
294
- //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
295
- this.scrollCheck();
296
- //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
297
- /*this.moveAuto();*/
298
- }
299
- }
300
- },
301
-
302
- preClick(e){
303
- if (this.slideCount > 1) {
304
- let movePos = e.pageX;
305
- this.distance = movePos - this.startPos;
306
- let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
307
- this.setTransform(moveDistance);
308
- }
309
- this.currIndex--;
310
- if (this.slideCount > 1) {
311
-
312
- //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
313
- this.scrollCheck();
314
- //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
315
- /*this.moveAuto();*/
316
- }
317
- },
318
-
319
- nextClick(e){
320
- if (this.slideCount > 1) {
321
- let movePos = e.pageX;
322
- this.distance = movePos - this.startPos;
323
- let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
324
- this.setTransform(moveDistance);
325
- }
326
- if (this.slideCount > 1) {
327
- this.currIndex++;
328
-
329
- //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
330
- this.scrollCheck();
331
- //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
332
- /*this.moveAuto();*/
333
- }
334
- },
335
- //检测设备是PC端还是移动端
336
- isMobile() {
337
- let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
338
- if(flag){
339
- this.isPhone=true
340
- let el=this.$el
341
- el.style.width='calc(100vw - 110px)'
342
- let swiper=document.getElementsByClassName('swiper')
343
- for (let i=0;i<swiper.length;i++)
344
- {
345
- swiper[i].style.width='calc(100vw - 110px)'
346
- }
347
-
348
-
349
- }else{
350
- this.device='PC'
351
- let el=this.$el
352
- this.isPc=true
353
- el.style.width='300px'
354
- let swiper=document.getElementsByClassName('swiper')
355
-
356
- /* let pnm_swiper=document.getElementById('pnm_swiper')*/
357
- /*pnm_swiper.style.width='300px'*/
358
- for (let i=0;i<swiper.length;i++)
359
- {
360
- swiper[i].style.width='300px'
361
- }
362
- }
363
-
364
- },
365
- isIosOrIsAndroid(){
366
- var u = navigator.userAgent;
367
- var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
368
- var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
369
- if(isAndroid){
370
- this.isAndroid=true
371
- }
372
- if(isiOS){
373
-
374
- this.isIos=true
375
-
376
- }
377
- },
378
- }
379
- };
380
- </script>
381
- <style lang="less">
382
-
383
- #pnm_swiper {
384
- overflow: hidden;
385
- position: relative;
386
- margin: 0 auto;
387
- padding: 10px 0;
388
- -webkit-overflow-scrolling: touch;
389
- }
390
- .swiper {
391
- display: flex;
392
- align-items: center;
393
- }
394
- .bullet {
395
- z-index: 999;
396
- display: flex;
397
- position: absolute;
398
- bottom: 0.1rem;
399
- /* 下方2个配合起来可以达到让弹性盒子子元素真正居中 */
400
- justify-content: center;
401
- width: 100%;
402
- }
403
- //机器人中样式
404
- .isPcClass{
405
- .bullet_item {
406
- color: white;
407
- /* background-color: white;*/
408
- border: 1.5px solid #EAEDF3 !important;
409
- border-radius: 0.2rem;
410
- width: 4px;
411
- height: 4px;
412
- margin: 0 3px;
413
- background-color: #EAEDF3;
414
- }
415
- }
416
- /*.typeClassRem{
417
- .bullet_item {
418
- color: white;
419
- background-color: white;
420
- border: 1.5px solid #AAAAAA !important;
421
- border-radius: 0.2rem;
422
- width: 0.08rem;
423
- height: 0.08rem;
424
- margin: 0 0.03rem;
425
- }
426
- }*/
427
- //企业微信的样式
428
- .isAndroidClass{
429
- .bullet_item {
430
- color: white;
431
- background-color: #EAEDF3;
432
- border: 1.5px solid #EAEDF3 !important;
433
- border-radius: 0.2rem;
434
- width: 4px;
435
- height: 4px;
436
- margin: 0 3px;
437
- }
438
- }
439
- .isIosClass{
440
- .bullet_item {
441
- color: white;
442
- background-color: #EAEDF3;
443
- border: 1.5px solid #EAEDF3 !important;
444
- border-radius: 0.2rem;
445
- width: 4px;
446
- height: 4px;
447
- margin: 0 3px;
448
- }
449
- }
450
- .bullet_item.active {
451
- background-color: #366AFF;
452
- border: 1.5px solid #366AFF !important;
453
- }
454
-
455
- .preBtn{
456
- border: none;
457
- outline: none;
458
- padding: 0;
459
- margin: 0;
460
- height: 36px;
461
- width: 36px;
462
- cursor: pointer;
463
- transition: .3s;
464
- border-radius: 50%;
465
- background-color: rgba(31,45,61,.11);
466
- color: #fff;
467
- position: absolute;
468
- top: 50%;
469
- z-index: 10;
470
- transform: translateY(-50%);
471
- text-align: center;
472
- font-size: 12px
473
- }
474
- .nextBtn{
475
- border: none;
476
- outline: none;
477
- padding: 0;
478
- margin: 0;
479
- height: 36px;
480
- width: 36px;
481
- cursor: pointer;
482
- transition: .3s;
483
- border-radius: 50%;
484
- background-color: rgba(31,45,61,.11);
485
- color: #fff;
486
- position: absolute;
487
- top: 50%;
488
- right: 0;
489
- z-index: 10;
490
- transform: translateY(-50%);
491
- text-align: center;
492
- font-size: 12px
493
- }
494
- #pnm_swiper:hover .clickBtn{
495
-
496
- opacity: 1;
497
- transition: opacity 1s;
498
- }
499
- #pnm_swiper .clickBtn{
500
- opacity: 0;
501
- transition: opacity 1s;
502
- }
503
- </style>
1
+ <template>
2
+ <div id="pnm_swiper">
3
+ <div
4
+ class="swiper"
5
+ @touchstart="touchStart"
6
+ @touchmove="touchMove"
7
+ @touchend="touchEnd"
8
+
9
+ >
10
+ <slot></slot>
11
+ </div>
12
+ <div v-if="device==='PC'&&content.multiple===true" class="clickBtn">
13
+ <div class="preBtn" @click="preClick" style="display: flex">
14
+ <i class="el-icon-arrow-left" style="font-size: 18px;font-weight:800;align-self: center;margin: auto"></i>
15
+ </div>
16
+ <div class="nextBtn" @click="nextClick" style="display: flex">
17
+ <i class="el-icon-arrow-right" style="font-size: 18px;font-weight:800;align-self: center;margin: auto" ></i>
18
+ </div>
19
+ </div>
20
+ <div class="bullet" :class="{isPhoneClass:isPhone===true,isPcClass:isPc===true,isAndroidClass:isAndroid===true,isIosClass:isIos===true}">
21
+ <div
22
+ class="bullet_item"
23
+ v-show="slideCount > 1&&content.multiple===true"
24
+ v-for="(item, slideIndex) in slideCount"
25
+ :class="setBulletActive(slideIndex)"
26
+ :key="slideIndex"
27
+ ></div>
28
+ </div>
29
+ </div>
30
+
31
+ </template>
32
+ <script>
33
+ export default {
34
+ data() {
35
+ return {
36
+ currIndex: 1,
37
+ swiperStyle: {}, //swiper样式
38
+ slideWidth: null, //一张slide的宽度
39
+ moveTimer: null,
40
+ startPos: 0,
41
+ distance: 0,
42
+ slideCount: 0,
43
+ device:'',
44
+ IsmouseOver:false,
45
+ IsShowArrowHead:false,
46
+ isPhone:false,
47
+ isPc:false,
48
+ isAndroid:false,
49
+ isIos:false,
50
+ startX:'',
51
+ startY:'',
52
+ startTime:''
53
+
54
+
55
+ };
56
+ },
57
+ props: {
58
+ moveRatio: {
59
+ type: Number,
60
+ default: 0.2
61
+ },
62
+ animDuration: {
63
+ type: Number,
64
+ default: 300
65
+ },
66
+ content:{
67
+ type:Object,
68
+ default(){
69
+ return {}
70
+ }
71
+ },
72
+ type:String
73
+ },
74
+ mounted() {
75
+ this.slideOn();
76
+ this.isIosOrIsAndroid()
77
+
78
+ },
79
+ methods: {
80
+ // 0. 启动函数
81
+
82
+ slideOn() {
83
+ this.initDom();
84
+ let swiperEls = this.$el;
85
+ var touchElement = {};
86
+ swiperEls.addEventListener('touchstart',function (e) {
87
+ touchElement.startX = e.touches[0].clientX;
88
+ touchElement.startY = e.touches[0].clientY;
89
+ if (this.slideCount > 1) {
90
+ clearInterval(this.moveTimer);
91
+ this.startPos = e.touches[0].pageX;
92
+ }
93
+ })
94
+ swiperEls.addEventListener('touchmove',function (e) {
95
+ var deltaX = e.touches[0].clientX - touchElement.startX;
96
+ var deltaY = e.touches[0].clientY - touchElement.startY;
97
+ if (Math.abs(Math.asin(deltaY/deltaX)) <= 15/180*Math.PI && e.cancelable) {
98
+ e.preventDefault();
99
+ }
100
+ if (this.slideCount > 1) {
101
+ let movePos = e.touches[0].pageX;
102
+ this.distance = movePos - this.startPos;
103
+ let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
104
+ this.setTransform(moveDistance);
105
+ }
106
+ })
107
+ swiperEls.addEventListener('touchend',function (e) {
108
+ if(e.cancelable)
109
+ {
110
+ e.preventDefault()
111
+ }
112
+ if (this.slideCount > 1) {
113
+ let _Dis = Math.abs(this.distance); //绝对值求出移动的距离
114
+ if (this.distance == 0) {
115
+ return;
116
+ } else if (
117
+ this.distance > 0 &&
118
+ _Dis > this.slideWidth * this.moveRatio
119
+ ) {
120
+ this.currIndex--;
121
+ console.debug(this.currIndex)
122
+ } else if (
123
+ this.distance < 0 &&
124
+ _Dis > this.slideWidth * this.moveRatio
125
+ ) {
126
+ this.currIndex++;
127
+ }
128
+ //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
129
+ this.scrollCheck();
130
+ //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
131
+ /*this.moveAuto();*/
132
+ }
133
+
134
+
135
+
136
+ })
137
+
138
+ },
139
+
140
+ // 1. 初始化DOM,并获取必要的数据
141
+ initDom() {
142
+ this.isMobile()
143
+ let swiperEls = this.$el;
144
+ console.debug('swiperEls',swiperEls);
145
+ let swiperEl=swiperEls.querySelector('.swiper')
146
+
147
+ let slides = swiperEl.querySelectorAll(".slide");
148
+ this.swiperStyle = swiperEl.style;
149
+ this.slideCount = slides.length;
150
+ this.slideWidth = swiperEl.offsetWidth;
151
+
152
+
153
+ if (this.slideCount > 1) {
154
+ let firstSlide = slides[0].cloneNode(true);
155
+ let lastSlide = slides[this.slideCount - 1].cloneNode(true);
156
+ swiperEl.appendChild(firstSlide);
157
+ swiperEl.insertBefore(lastSlide, slides[0]);
158
+ //设置开头位置
159
+ this.setTransform(-this.slideWidth);
160
+ }
161
+ console.debug(swiperEl)
162
+
163
+ },
164
+
165
+ // 2. 自动滚动
166
+ /* moveAuto() {
167
+ this.moveTimer = setInterval(() => {
168
+ this.currIndex++;
169
+ //每次滚动都需要先进行检测,真正滚动也会在检测里完成
170
+ this.scrollCheck();
171
+ }, 1000);
172
+ },*/
173
+
174
+ // 3. 滚动检测(检测是第一张还是最后一张,让其回滚到正确的位置)
175
+ scrollCheck() {
176
+ // 开启过渡动画并开始滚动
177
+ this.swiperStyle.transition = "transform " + this.animDuration + "ms";
178
+ this.setTransform(-this.currIndex * this.slideWidth);
179
+
180
+ //设置一个定时器,等过渡动画结束后执行(判断所处位置是第几张)
181
+ setTimeout(() => {
182
+ this.swiperStyle.transition = "0ms";
183
+ //判断第一张,和最后一张
184
+ if (this.currIndex <= 0) {
185
+ this.currIndex = this.slideCount;
186
+ this.setTransform(-this.currIndex * this.slideWidth);
187
+ } else if (this.currIndex >= this.slideCount + 1) {
188
+ this.currIndex = 1;
189
+ this.setTransform(-this.slideWidth);
190
+ }
191
+ }, this.animDuration);
192
+ },
193
+
194
+ //设置swiper的transform的滚动距离
195
+ setTransform(pos) {
196
+ this.swiperStyle.transform = `translateX(${pos}px)`;
197
+ },
198
+
199
+ //重置子弹的active
200
+ setBulletActive(index) {
201
+ if (this.currIndex >= this.slideCount + 1) {
202
+ //最后一张的情况
203
+ return { active: index == 0 };
204
+ } else if (this.currIndex <= 0) {
205
+ //第0张的情况
206
+ return { active: index == this.slideCount - 1 };
207
+ } else {
208
+ //一般情况
209
+ return { active: index == this.currIndex - 1 };
210
+ }
211
+
212
+ },
213
+
214
+ /*
215
+ 触屏事件
216
+ */
217
+
218
+ touchStart(e) {
219
+ // 记录下触发的坐标和时间
220
+ this.startTime = (new Date()).getTime();
221
+ this.startX = e.targetTouches[0].clientX;
222
+ this.startY = e.targetTouches[0].clientY;
223
+ if (this.slideCount > 1) {
224
+ clearInterval(this.moveTimer);
225
+ this.startPos = e.touches[0].pageX;
226
+ }
227
+ },
228
+ touchMove(e) {
229
+ if (this.slideCount > 1) {
230
+ let movePos = e.touches[0].pageX;
231
+ this.distance = movePos - this.startPos;
232
+ let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
233
+ this.setTransform(moveDistance);
234
+ this.$emit('touchMove',e)
235
+ }
236
+ },
237
+ touchEnd(e) {
238
+ if(e.cancelable)
239
+ {
240
+ e.preventDefault()
241
+ }
242
+ var now = (new Date()).getTime();
243
+ // 小于300ms可以识别为点击事件的范围 然后判断触摸点的移动距离
244
+ if (now - this.startTime < 300) {
245
+ var x = (Math.abs(this.startX - e.changedTouches[0].clientX) < 30);
246
+ var y = (Math.abs(this.startY - e.changedTouches[0].clientY) < 30);
247
+ if (x && y) {
248
+ e.changedTouches[0].target.click();
249
+ }
250
+ else {
251
+
252
+ if (this.slideCount > 1) {
253
+ let _Dis = Math.abs(this.distance); //绝对值求出移动的距离
254
+ if (this.distance == 0) {
255
+ return;
256
+ } else if (
257
+ this.distance > 0 &&
258
+ _Dis > this.slideWidth * this.moveRatio
259
+ ) {
260
+ this.currIndex--;
261
+ } else if (
262
+ this.distance < 0 &&
263
+ _Dis > this.slideWidth * this.moveRatio
264
+ ) {
265
+ this.currIndex++;
266
+ }
267
+ //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
268
+ this.scrollCheck();
269
+ //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
270
+ /*this.moveAuto();*/
271
+ }
272
+ }
273
+ this.$emit('touchEnd',this.currIndex)
274
+
275
+ }
276
+ else {
277
+ if (this.slideCount > 1) {
278
+ let _Dis = Math.abs(this.distance); //绝对值求出移动的距离
279
+
280
+ if (this.distance == 0) {
281
+ return;
282
+ } else if (
283
+ this.distance > 0 &&
284
+ _Dis > this.slideWidth * this.moveRatio
285
+ ) {
286
+ this.currIndex--;
287
+ console.debug(this.currIndex)
288
+ } else if (
289
+ this.distance < 0 &&
290
+ _Dis > this.slideWidth * this.moveRatio
291
+ ) {
292
+ this.currIndex++;
293
+ }
294
+ //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
295
+ this.scrollCheck();
296
+ //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
297
+ /*this.moveAuto();*/
298
+ }
299
+ }
300
+ },
301
+
302
+ preClick(e){
303
+ if (this.slideCount > 1) {
304
+ let movePos = e.pageX;
305
+ this.distance = movePos - this.startPos;
306
+ let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
307
+ this.setTransform(moveDistance);
308
+ }
309
+ this.currIndex--;
310
+ if (this.slideCount > 1) {
311
+
312
+ //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
313
+ this.scrollCheck();
314
+ //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
315
+ /*this.moveAuto();*/
316
+ }
317
+ },
318
+
319
+ nextClick(e){
320
+ if (this.slideCount > 1) {
321
+ let movePos = e.pageX;
322
+ this.distance = movePos - this.startPos;
323
+ let moveDistance = -(this.currIndex * this.slideWidth) + this.distance;
324
+ this.setTransform(moveDistance);
325
+ }
326
+ if (this.slideCount > 1) {
327
+ this.currIndex++;
328
+
329
+ //在触碰结束时,由于会触碰第一张或者最后一张,所以需要来一个滚动检测
330
+ this.scrollCheck();
331
+ //上述检测完毕,让其在正确位置之后,在执行 自动翻滚
332
+ /*this.moveAuto();*/
333
+ }
334
+ },
335
+ //检测设备是PC端还是移动端
336
+ isMobile() {
337
+ let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
338
+ if(flag){
339
+ this.isPhone=true
340
+ let el=this.$el
341
+ el.style.width='calc(100vw - 110px)'
342
+ let swiper=document.getElementsByClassName('swiper')
343
+ for (let i=0;i<swiper.length;i++)
344
+ {
345
+ swiper[i].style.width='calc(100vw - 110px)'
346
+ }
347
+
348
+
349
+ }else{
350
+ this.device='PC'
351
+ let el=this.$el
352
+ this.isPc=true
353
+ el.style.width='300px'
354
+ let swiper=document.getElementsByClassName('swiper')
355
+
356
+ /* let pnm_swiper=document.getElementById('pnm_swiper')*/
357
+ /*pnm_swiper.style.width='300px'*/
358
+ for (let i=0;i<swiper.length;i++)
359
+ {
360
+ swiper[i].style.width='300px'
361
+ }
362
+ }
363
+
364
+ },
365
+ isIosOrIsAndroid(){
366
+ var u = navigator.userAgent;
367
+ var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
368
+ var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
369
+ if(isAndroid){
370
+ this.isAndroid=true
371
+ }
372
+ if(isiOS){
373
+
374
+ this.isIos=true
375
+
376
+ }
377
+ },
378
+ }
379
+ };
380
+ </script>
381
+ <style lang="less">
382
+
383
+ #pnm_swiper {
384
+ overflow: hidden;
385
+ position: relative;
386
+ margin: 0 auto;
387
+ padding: 10px 0;
388
+ -webkit-overflow-scrolling: touch;
389
+ }
390
+ .swiper {
391
+ display: flex;
392
+ align-items: center;
393
+ }
394
+ .bullet {
395
+ z-index: 999;
396
+ display: flex;
397
+ position: absolute;
398
+ bottom: 0.1rem;
399
+ /* 下方2个配合起来可以达到让弹性盒子子元素真正居中 */
400
+ justify-content: center;
401
+ width: 100%;
402
+ }
403
+ //机器人中样式
404
+ .isPcClass{
405
+ .bullet_item {
406
+ color: white;
407
+ /* background-color: white;*/
408
+ border: 1.5px solid #EAEDF3 !important;
409
+ border-radius: 0.2rem;
410
+ width: 4px;
411
+ height: 4px;
412
+ margin: 0 3px;
413
+ background-color: #EAEDF3;
414
+ }
415
+ }
416
+ /*.typeClassRem{
417
+ .bullet_item {
418
+ color: white;
419
+ background-color: white;
420
+ border: 1.5px solid #AAAAAA !important;
421
+ border-radius: 0.2rem;
422
+ width: 0.08rem;
423
+ height: 0.08rem;
424
+ margin: 0 0.03rem;
425
+ }
426
+ }*/
427
+ //企业微信的样式
428
+ .isAndroidClass{
429
+ .bullet_item {
430
+ color: white;
431
+ background-color: #EAEDF3;
432
+ border: 1.5px solid #EAEDF3 !important;
433
+ border-radius: 0.2rem;
434
+ width: 4px;
435
+ height: 4px;
436
+ margin: 0 3px;
437
+ }
438
+ }
439
+ .isIosClass{
440
+ .bullet_item {
441
+ color: white;
442
+ background-color: #EAEDF3;
443
+ border: 1.5px solid #EAEDF3 !important;
444
+ border-radius: 0.2rem;
445
+ width: 4px;
446
+ height: 4px;
447
+ margin: 0 3px;
448
+ }
449
+ }
450
+ .bullet_item.active {
451
+ background-color: #366AFF;
452
+ border: 1.5px solid #366AFF !important;
453
+ }
454
+
455
+ .preBtn{
456
+ border: none;
457
+ outline: none;
458
+ padding: 0;
459
+ margin: 0;
460
+ height: 36px;
461
+ width: 36px;
462
+ cursor: pointer;
463
+ transition: .3s;
464
+ border-radius: 50%;
465
+ background-color: rgba(31,45,61,.11);
466
+ color: #fff;
467
+ position: absolute;
468
+ top: 50%;
469
+ z-index: 10;
470
+ transform: translateY(-50%);
471
+ text-align: center;
472
+ font-size: 12px
473
+ }
474
+ .nextBtn{
475
+ border: none;
476
+ outline: none;
477
+ padding: 0;
478
+ margin: 0;
479
+ height: 36px;
480
+ width: 36px;
481
+ cursor: pointer;
482
+ transition: .3s;
483
+ border-radius: 50%;
484
+ background-color: rgba(31,45,61,.11);
485
+ color: #fff;
486
+ position: absolute;
487
+ top: 50%;
488
+ right: 0;
489
+ z-index: 10;
490
+ transform: translateY(-50%);
491
+ text-align: center;
492
+ font-size: 12px
493
+ }
494
+ #pnm_swiper:hover .clickBtn{
495
+
496
+ opacity: 1;
497
+ transition: opacity 1s;
498
+ }
499
+ #pnm_swiper .clickBtn{
500
+ opacity: 0;
501
+ transition: opacity 1s;
502
+ }
503
+ </style>