faq.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  1. <template>
  2. <div class="m-0 p-0 bg-[#f2f2f2]">
  3. <!-- 主页面 -->
  4. <div v-show="!showSearch" class="q_and_a w-900px my-0 mx-auto">
  5. <div class="banner_wrap w-full h-290px relative bg-[#ccc]">
  6. <div class="search_bg"></div>
  7. <div class="search w-710px h-40px absolute bottom-30px left-[25%] ml-[-135px] rounded-20px opacity-50">
  8. <input
  9. id="index_search" type="text" name="search" placeholder="大家都在问" class="w-full h-full text-center text-[#fff] text-[14px] absolute top-0 left-0 rounded-20px bg-[#000000] border-none outline-solid-none"
  10. @focus="changeShowSearch">
  11. <span class="w-15px h-14px absolute top-14px left-[50%] ml-[-60px]">
  12. <img src="~/assets/images/faq/ic_search.png" class="absolute left-0 top-0 ">
  13. </span>
  14. </div>
  15. </div>
  16. <div class="pro_solve w-full">
  17. <dl>
  18. <dt>
  19. <span></span>
  20. <h3>格式转换</h3>
  21. </dt>
  22. <dd>
  23. <h4 id="format_type"><span></span>支持哪些格式转换?</h4>
  24. <p>支持PDF to Word、PPT、Excel、TXT、JPG/PNG无限次数转换。</p>
  25. </dd>
  26. <dd>
  27. <h4 id="where_format"><span></span>从哪里可以找到转档后的文件?</h4>
  28. <p>1. 在主页点击格式转换;</p>
  29. <p>2. 点击右上角转换任务,即可看到转换中 / 转换成功 / 转换失败三种状态;</p>
  30. <p>3. 滑动到转换成功,点击文件,即可直接进入到17PDF的 Converted文件夹。</p>
  31. </dd>
  32. <dd>
  33. <h4 id="meet_problem"><span></span>转换遇见问题?</h4>
  34. <p>请前往应用商店更新至最新版本,重新登录账号 -> 进行转档</p>
  35. </dd>
  36. </dl>
  37. <dl>
  38. <dt>
  39. <span></span>
  40. <h3>账号登录 </h3>
  41. </dt>
  42. <dd>
  43. <h4 id="login"><span></span>账号登录 / VIP & 转换券购买 遇到问题?</h4>
  44. <p>请前往应用商店更新至最新版本,重新登录账号 -> 进行VIP / 转换券购买</p>
  45. </dd>
  46. </dl>
  47. <dl>
  48. <dt>
  49. <span></span>
  50. <h3>账号绑定</h3>
  51. </dt>
  52. <dd>
  53. <h4 id="file_scanning"><span></span>QQ / 微信账号绑定手机号时,为什么会显示 “手机账号已绑定其他账户,请更换 绑定方式”?</h4>
  54. <p>说明该手机号已注册并使用过,请更换号码重新绑定噢!</p>
  55. </dd>
  56. <dd>
  57. <h4 id=""><span></span>账号绑定遇到问题?</h4>
  58. <p>请前往应用商店更新至最新版本,重新登录账号 -> 进行账号绑定</p>
  59. </dd>
  60. </dl>
  61. <dl>
  62. <dt>
  63. <span></span>
  64. <h3>文件扫描</h3>
  65. </dt>
  66. <dd>
  67. <h4 id="files_scanning"><span></span>如何使用PDF扫描&amp;转档功能?</h4>
  68. <p>
  69. 点击相机快速扫描文件<br>
  70. 点击分享和保存到PDF将扫描文件保存为PDF文件<br>
  71. 转档后可对文件进行编辑<br><br>
  72. </p>
  73. <span class="font-bold">PS:</span>如果扫描/转档失败,请先前往应用商店更新至最新版本噢
  74. </dd>
  75. </dl>
  76. <dl>
  77. <dt>
  78. <span></span>
  79. <h3>文件注释</h3>
  80. </dt>
  81. <dd>
  82. <h4 id="how_white"><span></span>如何使用手绘&amp;手写?</h4>
  83. <p>
  84. 点击注释按钮可使用、退出该功能<br>
  85. 点击并长按图标调整颜色、笔刷大小和透明度
  86. </p>
  87. </dd>
  88. <dd>
  89. <h4 id="how_notes"><span></span>如何移除PDF文件注释?</h4>
  90. <p>
  91. 点击选择需要移除的注释<br>
  92. 点击弹出对话框中 “清除” 选项去除注释
  93. </p>
  94. </dd>
  95. </dl>
  96. <dl>
  97. <dt>
  98. <span></span>
  99. <h3>文件阅读</h3>
  100. </dt>
  101. <dd>
  102. <h4 id="eye_model"><span></span>是否支持护眼模式</h4>
  103. <p>目前有三种阅读模式:日间模式、夜间模式、柔和模式,满足用户在不同环境下看书的需求,有效缓解眼睛疲劳,保护视力。</p>
  104. </dd>
  105. <dd>
  106. <h4 id="words_model"><span></span>如何使用纯文字模式(文字转语音TTS)?</h4>
  107. <p>
  108. 打开PDF文档,点击右上角More按钮<br>
  109. 点击选择 TTS 即可转换文本模式为语音模式;<br>
  110. 该功能需要手机自带语音引擎才能使用,<br>
  111. 如无语音引擎需到外部下载第三方语音引擎即可使用。
  112. </p>
  113. </dd>
  114. </dl>
  115. </div>
  116. </div>
  117. <!--搜索页面-->
  118. <div v-show="showSearch" class="search_wrap w-900px my-0 mx-auto">
  119. <!-- 搜索框 -->
  120. <div class="search_ipt">
  121. <div class="search_txt w-[90%] h-40px my-0 mx-auto ">
  122. <input id="search" v-model="inputValue" type="search" placeholder="你想问啥?" @input="search">
  123. <a id="return" href="javascript:;" class="float-right text-[#fff] text-[14px] leading-[40px] no-underline "
  124. @click="changeShowSearch">取消</a>
  125. </div>
  126. </div>
  127. <!-- 热点问题 -->
  128. <dl v-show="showHot" class="hot w-[98%] bg-[#fff] my-0 mx-auto pt-12px px-0 pb-20px">
  129. <dt class="w-full text-[#333] text-[14px]">
  130. <span class="w-4px h-12px bg-[#ff4948] inline-block mr-10px ml-12px"></span>
  131. 热点问题
  132. </dt>
  133. <dd class="ml-26px text-[12px] leading-[26px] mt-7px">
  134. <span class="h-4px w-4px bg-[#333] rounded-4px inline-block mr-6px"></span>
  135. <a href="javascript:;" class="text-[#333] no-underline" @click="skip(350)">支持哪些格式转换?</a>
  136. </dd>
  137. <dd class="ml-26px text-[12px] leading-[26px] mt-7px">
  138. <span class="h-4px w-4px bg-[#333] rounded-4px inline-block mr-6px"></span>
  139. <a href="javascript:;" class="text-[#333] no-underline" @click="skip(450)">从哪里可以找到转档后的文件?</a>
  140. </dd>
  141. </dl>
  142. <!-- 搜索展示区 -->
  143. <div v-show="!showHot" class="search_list w-[98%] bg-[#fff] my-0 mx-auto py-12px">
  144. <ul class="m-0 pl-26px">
  145. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  146. <a v-show="x0" href="javascript:;" @click="skip(350)" v-html="questions[0]"></a>
  147. </li>
  148. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  149. <a v-show="x1" href="javascript:;" @click="skip(450)" v-html="questions[1]"></a>
  150. </li>
  151. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  152. <a v-show="x2" href="javascript:;" @click="skip(650)" v-html="questions[2]"></a>
  153. </li>
  154. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  155. <a v-show="x3" href="javascript:;" @click="skip(850)" v-html="questions[3]"></a>
  156. </li>
  157. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  158. <a v-show="x4" href="javascript:;" @click="skip(1050)" v-html="questions[4]"></a>
  159. </li>
  160. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  161. <a v-show="x5" href="javascript:;" @click="skip(1150)" v-html="questions[5]"></a>
  162. </li>
  163. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  164. <a v-show="x6" href="javascript:;" @click="skip (1350)" v-html="questions[6]"></a>
  165. </li>
  166. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  167. <a v-show="x7" href="javascript:;" @click="skip(1650)" v-html="questions[7]"></a>
  168. </li>
  169. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  170. <a v-show="x8" href="javascript:;" @click="skip(1760)" v-html="questions[8]"></a>
  171. </li>
  172. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  173. <a v-show="x9" href="javascript:;" @click="skip(1950)" v-html="questions[9]"></a>
  174. </li>
  175. <li class="m-0 p-0 text-[#333] text-[14px] leading-[40px] list-none">
  176. <a v-show="x10" href="javascript:;" @click="skip(2100)" v-html="questions[10]"></a>
  177. </li>
  178. </ul>
  179. </div>
  180. </div>
  181. </div>
  182. </template>
  183. <script>
  184. import { ref } from 'vue';
  185. export default {
  186. layout: "custom",
  187. setup(props) {
  188. // 控制搜索区展示
  189. const showSearch = ref(false)
  190. function changeShowSearch() {
  191. showSearch.value = !showSearch.value
  192. }
  193. // 用户输入
  194. const inputValue = ref("")
  195. // 控制热点问题展示
  196. const showHot = ref(true)
  197. // 对应问题展示
  198. const x0 = ref(false)
  199. const x1 = ref(false)
  200. const x2 = ref(false)
  201. const x3 = ref(false)
  202. const x4 = ref(false)
  203. const x5 = ref(false)
  204. const x6 = ref(false)
  205. const x7 = ref(false)
  206. const x8 = ref(false)
  207. const x9 = ref(false)
  208. const x10 = ref(false)
  209. // 搜索问题
  210. const questions = [
  211. "支持哪些格式转换?",
  212. "从哪里可以找到转档后的文件?",
  213. "转换遇到问题?",
  214. "账号登录 / VIP & 转换券购买 遇到问题?",
  215. "QQ / 微信账号绑定手机号时,为什么会显示'手机账号已绑定其他账户,请更换绑定方式'?",
  216. "账号绑定遇到问题?",
  217. "如何使用PDF扫描;转档功能?",
  218. "如何使用手绘&amp;手写?",
  219. "如何移除PDF文件注释?",
  220. "是否支持护眼模式",
  221. "如何使用纯文字模式(文字转语音TTS)?"]
  222. // 搜索功能
  223. function search() {
  224. // 初始化
  225. questions[0] = "支持哪些格式转换?"
  226. questions[1] = "从哪里可以找到转档后的文件?"
  227. questions[2] = "转换遇到问题?"
  228. questions[3] = "账号登录 / VIP & 转换券购买 遇到问题?"
  229. questions[4] = "QQ / 微信账号绑定手机号时,为什么会显示'手机账号已绑定其他账户,请更换绑定方式'?"
  230. questions[5] = "账号绑定遇到问题?"
  231. questions[6] = "如何使用PDF扫描;转档功能?"
  232. questions[7] = "如何使用手绘&amp;手写?"
  233. questions[8] = "如何移除PDF文件注释?"
  234. questions[9] = "是否支持护眼模式"
  235. questions[10] = "如何使用纯文字模式(文字转语音TTS)?"
  236. // 控制热点问题展示
  237. if (!inputValue.value == "") {
  238. showHot.value = false
  239. const lastStr=inputValue.value.slice(-1)
  240. // 展示搜索问题
  241. questions.forEach((item, index) => {
  242. if (item.includes(lastStr)) {
  243. show(index)
  244. } else {
  245. unshow(index)
  246. }
  247. })
  248. } else {
  249. showHot.value = true
  250. }
  251. // 展示问题
  252. function show(index) {
  253. switch (index) {
  254. case 0:
  255. x0.value = true;
  256. questions[0] = brightenKeyword(questions[0], inputValue.value)
  257. break;
  258. case 1:
  259. x1.value = true;
  260. questions[1] = brightenKeyword(questions[1], inputValue.value)
  261. break;
  262. case 2:
  263. x2.value = true;
  264. questions[2] = brightenKeyword(questions[2], inputValue.value)
  265. break;
  266. case 3:
  267. x3.value = true;
  268. questions[3] = brightenKeyword(questions[3], inputValue.value)
  269. break;
  270. case 4:
  271. x4.value = true;
  272. questions[4] = brightenKeyword(questions[4], inputValue.value)
  273. break;
  274. case 5:
  275. x5.value = true;
  276. questions[5] = brightenKeyword(questions[5], inputValue.value)
  277. break;
  278. case 6:
  279. x6.value = true;
  280. questions[6] = brightenKeyword(questions[6], inputValue.value)
  281. break;
  282. case 7:
  283. x7.value = true;
  284. questions[7] = brightenKeyword(questions[7], inputValue.value)
  285. break;
  286. case 8:
  287. x8.value = true;
  288. questions[8] = brightenKeyword(questions[8], inputValue.value)
  289. break;
  290. case 9:
  291. x9.value = true;
  292. questions[9] = brightenKeyword(questions[9], inputValue.value)
  293. break;
  294. case 10:
  295. x10.value = true;
  296. questions[10] = brightenKeyword(questions[10], inputValue.value)
  297. break;
  298. }
  299. }
  300. // 隐藏已经过时的问题
  301. function unshow(index) {
  302. switch (index) {
  303. case 0:
  304. x0.value = false;
  305. break;
  306. case 1:
  307. x1.value = false;
  308. break;
  309. case 2:
  310. x2.value = false;
  311. break;
  312. case 3:
  313. x3.value = false;
  314. break;
  315. case 4:
  316. x4.value = false;
  317. break;
  318. case 5:
  319. x5.value = false;
  320. break;
  321. case 6:
  322. x6.value = false;
  323. break;
  324. case 7:
  325. x7.value = false;
  326. break;
  327. case 8:
  328. x8.value = false;
  329. break;
  330. case 9:
  331. x9.value = false;
  332. break;
  333. case 10:
  334. x10.value = false;
  335. break;
  336. }
  337. }
  338. function brightenKeyword(val, keyword) {
  339. const allStr=keyword.split("")
  340. let res = val;
  341. allStr.forEach((item)=>{
  342. if (val.includes(item)) {
  343. res = val.replace(item, '<font color="#ff4948">' + item + '</font>')
  344. }
  345. })
  346. return res
  347. }
  348. }
  349. // 问题跳转
  350. function skip(num){
  351. changeShowSearch()
  352. const top = num;
  353. let x=1;
  354. function run() {
  355. x=x+50
  356. window.scrollTo(0,x)
  357. run.timer = requestAnimationFrame(run);
  358. if (x>top) {
  359. cancelAnimationFrame(run.timer);
  360. }
  361. }
  362. requestAnimationFrame(run);
  363. }
  364. return {
  365. showSearch,
  366. changeShowSearch,
  367. showHot,
  368. search,
  369. inputValue,
  370. x0,
  371. x1,
  372. x2,
  373. x3,
  374. x4,
  375. x5,
  376. x6,
  377. x7,
  378. x8,
  379. x9,
  380. x10,
  381. questions,
  382. skip,
  383. }
  384. }
  385. }
  386. </script>
  387. <style >
  388. /* 设置body */
  389. body{
  390. background-color:#f2f2f2 ;
  391. min-width: 0px
  392. }
  393. /* 主页面背景图 */
  394. .search_bg {
  395. width: 100%;
  396. height: 100%;
  397. background: rgba(0, 0, 0, 0.5) url(http://cn-file.17pdf.com/website/common/searcg_bg.png) no-repeat;
  398. }
  399. input {
  400. outline: none;
  401. }
  402. /* 主页面下dl等样式 */
  403. .pro_solve dl {
  404. width: 100%;
  405. zoom: 1;
  406. background: #fff;
  407. border-radius: 4px;
  408. box-shadow: 0px 1px 5px rgb(0 0 0 / 10%);
  409. padding: 38px 0px;
  410. margin: 8px 0px;
  411. }
  412. .pro_solve dl:after {
  413. visibility: hidden;
  414. display: block;
  415. font-size: 0;
  416. content: " ";
  417. clear: both;
  418. height: 0;
  419. }
  420. .pro_solve dl dt {
  421. width: 33%;
  422. float: left;
  423. }
  424. .pro_solve dl dt span {
  425. width: 110px;
  426. height: 4px;
  427. display: block;
  428. background: #ff4948;
  429. border-radius: 4px;
  430. margin-left: 85px;
  431. }
  432. .pro_solve dl dt h3 {
  433. font-size: 20px;
  434. color: #333;
  435. margin: 20px 0px 20px 85px;
  436. font-weight: bold;
  437. }
  438. .pro_solve dl dd {
  439. width: 67%;
  440. float: right;
  441. margin: 0px;
  442. font-size: 16px;
  443. margin: 10px 0px;
  444. }
  445. .pro_solve dl dd h4 {
  446. color: #333;
  447. margin: 0px;
  448. line-height: 24px;
  449. font-weight: bold;
  450. }
  451. .pro_solve dl dd h4 span {
  452. display: inline-block;
  453. width: 6px;
  454. height: 6px;
  455. border-radius: 100%;
  456. background: #333;
  457. margin-right: 14px;
  458. }
  459. .pro_solve dl dd p {
  460. color: #636363;
  461. padding-left: 20px;
  462. margin: 16px 0px;
  463. line-height: 24px;
  464. width: 520px;
  465. }
  466. /* 搜索页面背景图 */
  467. .search_ipt {
  468. width: 100%;
  469. /* height: 40px; */
  470. background: url(http://cn-file.17pdf.com/website/common/search_label.png) no-repeat;
  471. background-size: 100% 100%;
  472. padding: 33px 0px;
  473. }
  474. .search_txt input {
  475. width: 94%;
  476. height: 100%;
  477. background: rgba(0, 0, 0, 0.5) url(http://cn-file.17pdf.com/website/common/ic_search.png) no-repeat 16px 12px;
  478. border-radius: 60px;
  479. border: 0px;
  480. outline: none;
  481. padding-left: 40px;
  482. font-size: 14px;
  483. color: #fff;
  484. float: left;
  485. }
  486. .hot {
  487. border-radius: 0px 0px 4px 4px;
  488. }
  489. .search_list {
  490. border-radius: 0px 0px 4px 4px;
  491. }
  492. .search_list ul li:last-of-type {
  493. border-bottom: 0px;
  494. }
  495. .search_list ul li {
  496. border-bottom: 1px solid rgba(0, 0, 0, 0.03);
  497. }
  498. .hot dd a:hover {
  499. color: #ff4948;
  500. }
  501. .search_list ul li a:hover {
  502. color: #ff4948;
  503. }
  504. </style>