fa-markdown.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. <template>
  2. <view style="width: 100%;">
  3. <view>
  4. <view class="toolbar">
  5. <!-- 加粗 -->
  6. <view class="iconfont icon-bold" @click="toolBarClick('bold')"></view>
  7. <!-- 斜体 -->
  8. <view class="iconfont icon-italic" @click="toolBarClick('italic')"></view>
  9. <!-- 标题 -->
  10. <view class="iconfont icon-xiahuaxian1" @click="toolBarClick('header')"></view>
  11. <!-- <view class="iconfont icon-underline" @click="toolBarClick('underline')"></view>
  12. <view class="iconfont icon-strike" @click="toolBarClick('strike')"></view>
  13. <view class="iconfont icon-sup" @click="toolBarClick('sup')"></view>
  14. <view class="iconfont icon-sub" @click="toolBarClick('sub')"></view>
  15. <view class="iconfont icon-alignleft" @click="toolBarClick('alignleft')"></view>
  16. <view class="iconfont icon-aligncenter" @click="toolBarClick('aligncenter')"></view>
  17. <view class="iconfont icon-alignright" @click="toolBarClick('alignright')"></view> -->
  18. <!-- 插入链接 -->
  19. <view class="iconfont icon-link" @click="toolBarClick('link')"></view>
  20. <!-- 插入图片 -->
  21. <view class="iconfont icon-image" @click="toolBarClick('imgage')"></view>
  22. <!-- 插入代码 -->
  23. <view class="iconfont icon-code" @click="toolBarClick('code')"></view>
  24. <!-- 插入引用 -->
  25. <view class="iconfont icon-blockquote" @click="toolBarClick('blockquote')"></view>
  26. <!-- 插入列表文本 -->
  27. <view class="iconfont icon-unorderedlist" @click="toolBarClick('unorderedlist')"></view>
  28. <!-- 插入列表文本 -->
  29. <view class="iconfont icon-orderedlist" @click="toolBarClick('orderedlist')"></view>
  30. <!-- 插入表格 -->
  31. <view class="iconfont icon-table" @click="toolBarClick('table')"></view>
  32. <!-- 清除 -->
  33. <view class="iconfont icon-qingkong" @click="toolBarClick('clear')"></view>
  34. <!-- 预览 -->
  35. <view class="iconfont icon-preview" @click="toolBarClick('look')"></view>
  36. </view>
  37. <view class="input-content" v-if="!showPreview">
  38. <textarea :style="{ height: height + 'rpx' }" maxlength="-1" v-model="textareaData" @blur="getCursor" :focus="autoFocus" :fixed="true"></textarea>
  39. </view>
  40. <scroll-view v-if="showPreview" class="u-p-30" scroll-y :style="[{ height: height + 'rpx', width: 'auto', border: '1px solid #eee' }]">
  41. <u-parse
  42. :html="textareaHtml"
  43. @imgtap="navigate"
  44. @linkpress="navigate"
  45. :tag-style="vuex_parse_style"
  46. :domain="vuex_config.upload ? vuex_config.upload.cdnurl : ''"
  47. ></u-parse>
  48. </scroll-view>
  49. </view>
  50. </view>
  51. </template>
  52. <script>
  53. import marked from '@/components/fa-markdown/marked/index.js';
  54. export default {
  55. name: 'fa-markdown',
  56. data: function() {
  57. return {
  58. cursor: 0,
  59. textareaData: '',
  60. textareaHtml: '',
  61. showPreview: false,
  62. autoFocus: false
  63. };
  64. },
  65. props: {
  66. markdown: {
  67. type: String,
  68. default: ''
  69. },
  70. html: {
  71. type: String,
  72. default: ''
  73. },
  74. height: {
  75. type: Number,
  76. default() {
  77. return 500;
  78. }
  79. },
  80. //多个富文本的区分
  81. marKey:{
  82. type:[String,Number],
  83. default:''
  84. }
  85. },
  86. methods: {
  87. preview(src, e) {
  88. uni.previewImage({
  89. urls: src
  90. });
  91. },
  92. navigate(e) {
  93. console.log(e);
  94. },
  95. toolBarClick(type) {
  96. switch (type) {
  97. case 'bold':
  98. this.textareaData += '**粗体文字** ';
  99. break;
  100. case 'italic':
  101. this.textareaData += '*斜体* ';
  102. break;
  103. case 'header':
  104. uni.showActionSheet({
  105. itemList: ['标题1', '标题2', '标题3', '标题4', '标题5', '标题6'],
  106. success: res => {
  107. switch (res.tapIndex) {
  108. case 0:
  109. this.textareaData += '# 标题1\r';
  110. return;
  111. case 1:
  112. this.textareaData += '## 标题2\r';
  113. return;
  114. case 2:
  115. this.textareaData += '### 标题3\r';
  116. return;
  117. case 3:
  118. this.textareaData += '#### 标题4\r';
  119. return;
  120. case 4:
  121. this.textareaData += '##### 标题5\r';
  122. return;
  123. case 5:
  124. this.textareaData += '###### 标题6\r';
  125. return;
  126. }
  127. }
  128. });
  129. break;
  130. case 'underline':
  131. this.textareaData += '++下划线++ ';
  132. break;
  133. case 'strike':
  134. this.textareaData += '~~中划线~~ ';
  135. break;
  136. case 'sup':
  137. this.textareaData += '^上角标^ ';
  138. break;
  139. case 'sub':
  140. this.textareaData += '~下角标~ ';
  141. break;
  142. case 'alignleft':
  143. this.textareaData += '\n::: hljs-left\n\n左对齐\n\n:::\n';
  144. break;
  145. case 'aligncenter':
  146. this.textareaData += '\n::: hljs-center\n\n居中对齐\n\n:::\n';
  147. break;
  148. case 'alignright':
  149. this.textareaData += '\n::: hljs-right\n\n\n\n右对齐\n\n:::\n';
  150. break;
  151. case 'link':
  152. this.textareaData += '[在此输入网址描述](在此输入网址) ';
  153. break;
  154. case 'imgage':
  155. uni.chooseImage({
  156. count: 1,
  157. success: async chooseImageRes => {
  158. const tempFilePaths = chooseImageRes.tempFilePaths;
  159. try {
  160. let res = await this.$api.goUpload({filePath:tempFilePaths[0]});
  161. console.log(res);
  162. this.textareaData += '![](' + res.data.fullurl + ') ';
  163. } catch (e) {
  164. console.error(e);
  165. this.$u.toast('上传失败!');
  166. this.textareaData += '![](在此输入图片地址) ';
  167. }
  168. }
  169. });
  170. break;
  171. case 'code':
  172. this.textareaData += '\n``` 代码块 \n\n```\n';
  173. break;
  174. case 'blockquote':
  175. this.textareaData += '> 这里输入引用文本这里输入引用文本\n';
  176. break;
  177. case 'unorderedlist':
  178. this.textareaData += '- 这里是列表文本\n';
  179. break;
  180. case 'orderedlist':
  181. this.textareaData += '1. 这里是列表文本\n';
  182. break;
  183. case 'table':
  184. this.textareaData += '\n|列1|列2|列3|\n|-|-|-|\n|单元格1|单元格2|单元格3|\n';
  185. break;
  186. case 'clear':
  187. uni.showModal({
  188. title: '提示',
  189. content: '确定清空?',
  190. success: res => {
  191. if (res.confirm) {
  192. this.textareaData = '';
  193. }
  194. }
  195. });
  196. break;
  197. case 'look':
  198. this.showPreview = !this.showPreview;
  199. break;
  200. default:
  201. this.showPreview = false;
  202. }
  203. },
  204. getCursor(e) {
  205. //安卓失去焦点获取不到cursor位置,暂不使用
  206. //this.cursor = e.detail.cursor;
  207. },
  208. getAutoFocus() {
  209. this.autoFocus = true;
  210. },
  211. clearData() {
  212. this.textareaData = '';
  213. },
  214. getData() {
  215. return {
  216. key:this.marKey,
  217. textareaData: newValue,
  218. textareaHtml: this.textareaHtml
  219. };
  220. },
  221. setData(param) {
  222. this.textareaData = param;
  223. }
  224. },
  225. watch: {
  226. textareaData: function(newValue, oldValue) {
  227. this.textareaHtml = marked(newValue);
  228. this.$emit('getResult', {
  229. key:this.marKey,
  230. textareaData: newValue,
  231. textareaHtml: this.textareaHtml
  232. });
  233. },
  234. markdown: {
  235. handler: function(newValue, oldValue) {
  236. this.textareaData = newValue;
  237. },
  238. immediate: true
  239. },
  240. html: {
  241. handler: function(newValue, oldValue) {
  242. this.textareaHtml = newValue;
  243. },
  244. immediate: true
  245. }
  246. }
  247. };
  248. </script>
  249. <style>
  250. @font-face {
  251. font-family: 'iconfont';
  252. src: url(data:application/font-woff2;charset=utf-8;base64,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)
  253. format('woff2'),
  254. url(data:application/font-woff;charset=utf-8;base64,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)
  255. format('woff');
  256. font-weight: normal;
  257. font-style: normal;
  258. }
  259. .iconfont {
  260. font-family: 'iconfont' !important;
  261. font-size: 16px;
  262. font-style: normal;
  263. -webkit-font-smoothing: antialiased;
  264. -moz-osx-font-smoothing: grayscale;
  265. }
  266. .icon-aligncenter:before {
  267. content: '\e600';
  268. }
  269. .icon-alignjustify:before {
  270. content: '\e601';
  271. }
  272. .icon-alignleft:before {
  273. content: '\e602';
  274. }
  275. .icon-aligncenter1:before {
  276. content: '\e603';
  277. }
  278. .icon-alignjustify1:before {
  279. content: '\e604';
  280. }
  281. .icon-alignleft1:before {
  282. content: '\e605';
  283. }
  284. .icon-alignright:before {
  285. content: '\e606';
  286. }
  287. .icon-anchor:before {
  288. content: '\e607';
  289. }
  290. .icon-blockquote:before {
  291. content: '\e608';
  292. }
  293. .icon-bold:before {
  294. content: '\e609';
  295. }
  296. .icon-char:before {
  297. content: '\e60a';
  298. }
  299. .icon-clearformat:before {
  300. content: '\e60b';
  301. }
  302. .icon-code:before {
  303. content: '\e60c';
  304. }
  305. .icon-configure:before {
  306. content: '\e60d';
  307. }
  308. .icon-copy:before {
  309. content: '\e60e';
  310. }
  311. .icon-corner:before {
  312. content: '\e60f';
  313. }
  314. .icon-cut:before {
  315. content: '\e610';
  316. }
  317. .icon-datetime:before {
  318. content: '\e611';
  319. }
  320. .icon-explore:before {
  321. content: '\e612';
  322. }
  323. .icon-find:before {
  324. content: '\e613';
  325. }
  326. .icon-fullscreen:before {
  327. content: '\e614';
  328. }
  329. .icon-help:before {
  330. content: '\e615';
  331. }
  332. .icon-hr:before {
  333. content: '\e616';
  334. }
  335. .icon-indent:before {
  336. content: '\e618';
  337. }
  338. .icon-italic:before {
  339. content: '\e619';
  340. }
  341. .icon-link:before {
  342. content: '\e61a';
  343. }
  344. .icon-ltr:before {
  345. content: '\e61b';
  346. }
  347. .icon-nbsp:before {
  348. content: '\e61c';
  349. }
  350. .icon-new:before {
  351. content: '\e61d';
  352. }
  353. .icon-ok:before {
  354. content: '\e61e';
  355. }
  356. .icon-orderedlist:before {
  357. content: '\e61f';
  358. }
  359. .icon-outdent:before {
  360. content: '\e620';
  361. }
  362. .icon-pagebreak:before {
  363. content: '\e621';
  364. }
  365. .icon-paragraph:before {
  366. content: '\e622';
  367. }
  368. .icon-paste:before {
  369. content: '\e623';
  370. }
  371. .icon-pasteastext:before {
  372. content: '\e624';
  373. }
  374. .icon-preview:before {
  375. content: '\e625';
  376. }
  377. .icon-print:before {
  378. content: '\e626';
  379. }
  380. .icon-redo:before {
  381. content: '\e627';
  382. }
  383. .icon-rtl:before {
  384. content: '\e628';
  385. }
  386. .icon-save:before {
  387. content: '\e629';
  388. }
  389. .icon-smiley:before {
  390. content: '\e62a';
  391. }
  392. .icon-specialchar:before {
  393. content: '\e62b';
  394. }
  395. .icon-spellcheck:before {
  396. content: '\e62c';
  397. }
  398. .icon-strike:before {
  399. content: '\e62d';
  400. }
  401. .icon-sub:before {
  402. content: '\e62e';
  403. }
  404. .icon-sup:before {
  405. content: '\e62f';
  406. }
  407. .icon-table:before {
  408. content: '\e630';
  409. }
  410. .icon-template:before {
  411. content: '\e631';
  412. }
  413. .icon-underline:before {
  414. content: '\e632';
  415. }
  416. .icon-undo:before {
  417. content: '\e633';
  418. }
  419. .icon-unlink:before {
  420. content: '\e634';
  421. }
  422. .icon-unorderedlist:before {
  423. content: '\e635';
  424. }
  425. .icon-video:before {
  426. content: '\e636';
  427. }
  428. .icon-mark:before {
  429. content: '\e63a';
  430. }
  431. .icon-image:before {
  432. content: '\e63e';
  433. }
  434. .icon-xiahuaxian1:before {
  435. content: '\e7d1';
  436. }
  437. .icon-qingkong:before {
  438. content: '\e6a3';
  439. }
  440. .input-content {
  441. width: 100%;
  442. }
  443. .input-content textarea {
  444. padding: 5%;
  445. font-size: 30rpx;
  446. line-height: 1.5;
  447. width: 90%;
  448. border: 1px solid #eee;
  449. }
  450. .preview {
  451. border-top: 1px solid #e0e0e0;
  452. width: 100%;
  453. }
  454. .toolbar {
  455. width: 100%;
  456. border: none;
  457. }
  458. .toolbar .iconfont {
  459. display: inline-block;
  460. cursor: pointer;
  461. height: 61.6rpx;
  462. width: 61.6rpx;
  463. margin: 13rpx 0;
  464. font-size: 33rpx;
  465. color: #757575;
  466. border-radius: 11px;
  467. text-align: center;
  468. background: none;
  469. border: none;
  470. outline: none;
  471. line-height: 2.2;
  472. vertical-align: middle;
  473. }
  474. .input-content {
  475. min-height: ;
  476. }
  477. </style>