@tencentcloud/ai-desk-customer-vue 0.1.3 → 0.1.4

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 (222) hide show
  1. package/components/CustomerServiceChat/index-web.vue +6 -14
  2. package/components/CustomerServiceChat/message-input/message-input-quote/index.vue +3 -14
  3. package/components/CustomerServiceChat/message-input-toolbar/emoji-dialog-mobile/emoji-dialog-mobile.vue +2 -5
  4. package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.vue +8 -15
  5. package/components/CustomerServiceChat/message-input-toolbar/file-upload/index.vue +3 -7
  6. package/components/CustomerServiceChat/message-input-toolbar/image-upload/index.vue +6 -44
  7. package/components/CustomerServiceChat/message-input-toolbar/index-web.vue +1 -14
  8. package/components/CustomerServiceChat/message-input-toolbar/style/uni.scss +0 -56
  9. package/components/CustomerServiceChat/message-input-toolbar/toolbar-item-container/index.vue +4 -7
  10. package/components/CustomerServiceChat/message-input-toolbar/toolbar-item-container/style/index.scss +0 -1
  11. package/components/CustomerServiceChat/message-input-toolbar/video-upload/index.vue +7 -50
  12. package/components/CustomerServiceChat/message-list/index-web.vue +3 -7
  13. package/components/CustomerServiceChat/message-list/message-elements/{plugins/plugin-components → message-desk}/index.ts +1 -1
  14. package/components/{customer-icon.vue → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/customer-icon.vue} +0 -9
  15. package/components/CustomerServiceChat/message-list/message-elements/{plugins/plugin-components/message-customer → message-desk/message-desk-elements}/index.ts +1 -1
  16. package/components/{message-branch.vue → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-branch.vue} +4 -4
  17. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-desk.vue +126 -0
  18. package/components/{message-multi-branch → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch}/branch-pc.vue +1 -1
  19. package/components/{message-multi-branch → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch}/index.vue +2 -3
  20. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/component-mobile/form-popup.vue +2 -3
  21. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/component-mobile/input-mobile.vue +1 -1
  22. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/component-mobile/radios-mobile.vue +7 -7
  23. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/component-pc/input-pc.vue +1 -1
  24. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/component-pc/radio-pc.vue +4 -5
  25. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/form-mobile.vue +8 -7
  26. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/form-pc.vue +5 -5
  27. package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/index.vue +3 -3
  28. package/components/{message-product-card.vue → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-product-card.vue} +2 -2
  29. package/components/{message-rating → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating}/index.vue +4 -4
  30. package/components/{message-rating → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating}/message-rating-number.vue +3 -3
  31. package/components/{message-rating → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating}/message-rating-star.vue +5 -5
  32. package/components/{message-rich-text.vue → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rich-text.vue} +5 -17
  33. package/components/{message-robot-welcome.vue → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-robot-welcome.vue} +7 -7
  34. package/components/{message-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-single-form}/form-input.vue +5 -5
  35. package/components/{message-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-single-form}/index.vue +1 -1
  36. package/components/{message-stream.vue → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-stream.vue} +2 -2
  37. package/{styles → components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/styles}/common.scss +1 -1
  38. package/components/CustomerServiceChat/message-list/message-elements/{plugins/plugin-components → message-desk}/message-plugin-layout-web.vue +2 -9
  39. package/components/CustomerServiceChat/message-list/message-elements/{plugins/plugin-components → message-desk}/message-plugin-web.vue +5 -5
  40. package/components/CustomerServiceChat/message-list/message-elements/message-quote/index-web.vue +2 -4
  41. package/components/CustomerServiceChat/message-list/message-elements/message-record/index.vue +3 -6
  42. package/components/CustomerServiceChat/message-list/message-elements/simple-message-list/index.vue +3 -29
  43. package/components/CustomerServiceChat/style/index.scss +0 -2
  44. package/components/common/Avatar/index.vue +2 -23
  45. package/components/common/BottomPopup/index.vue +2 -3
  46. package/components/common/Dialog/index.vue +2 -2
  47. package/components/common/ImagePreviewer/index-web.vue +2 -84
  48. package/components/common/ProgressMessage/index.vue +0 -8
  49. package/index.ts +4 -13
  50. package/index.vue +1 -60
  51. package/package.json +1 -1
  52. package/server.ts +2 -12
  53. package/utils/chatStorage.ts +2 -11
  54. package/utils/index.ts +2 -1
  55. package/assets/audio-before-delete.svg +0 -4
  56. package/assets/audio-blue.png +0 -0
  57. package/assets/audio-bubble-blue.svg +0 -3
  58. package/assets/audio-bubble-red.svg +0 -3
  59. package/assets/audio-delete.svg +0 -10
  60. package/assets/audio.svg +0 -6
  61. package/assets/camera-uni.png +0 -0
  62. package/assets/face-uni.png +0 -0
  63. package/assets/more-uni.png +0 -0
  64. package/assets/translate.svg +0 -12
  65. package/assets/video-uni.png +0 -0
  66. package/components/CustomerServiceChat/message-input-toolbar/toolbar-item-container/style/uni.scss +0 -36
  67. package/components/CustomerServiceChat/message-list/link/index.ts +0 -23
  68. package/components/CustomerServiceChat/message-list/message-elements/plugins/plugin-components/message-customer/message-customer-service.vue +0 -22
  69. package/components/CustomerServiceChat/style/uni.scss +0 -12
  70. package/components/CustomerServiceChat/style/wx.scss +0 -5
  71. package/components/common/RichText/LICENSE +0 -21
  72. package/components/common/RichText/README.md +0 -244
  73. package/components/common/RichText/dist/mp-alipay/index.acss +0 -1
  74. package/components/common/RichText/dist/mp-alipay/index.axml +0 -1
  75. package/components/common/RichText/dist/mp-alipay/index.js +0 -8
  76. package/components/common/RichText/dist/mp-alipay/index.json +0 -1
  77. package/components/common/RichText/dist/mp-alipay/node/node.acss +0 -1
  78. package/components/common/RichText/dist/mp-alipay/node/node.axml +0 -1
  79. package/components/common/RichText/dist/mp-alipay/node/node.js +0 -1
  80. package/components/common/RichText/dist/mp-alipay/node/node.json +0 -1
  81. package/components/common/RichText/dist/mp-alipay/parser.js +0 -1
  82. package/components/common/RichText/dist/mp-baidu/index.css +0 -1
  83. package/components/common/RichText/dist/mp-baidu/index.js +0 -8
  84. package/components/common/RichText/dist/mp-baidu/index.json +0 -1
  85. package/components/common/RichText/dist/mp-baidu/index.swan +0 -1
  86. package/components/common/RichText/dist/mp-baidu/node/node.css +0 -1
  87. package/components/common/RichText/dist/mp-baidu/node/node.js +0 -1
  88. package/components/common/RichText/dist/mp-baidu/node/node.json +0 -1
  89. package/components/common/RichText/dist/mp-baidu/node/node.swan +0 -1
  90. package/components/common/RichText/dist/mp-baidu/parser.js +0 -1
  91. package/components/common/RichText/dist/mp-qq/index.js +0 -8
  92. package/components/common/RichText/dist/mp-qq/index.json +0 -1
  93. package/components/common/RichText/dist/mp-qq/index.qml +0 -1
  94. package/components/common/RichText/dist/mp-qq/index.qss +0 -1
  95. package/components/common/RichText/dist/mp-qq/node/node.js +0 -1
  96. package/components/common/RichText/dist/mp-qq/node/node.json +0 -1
  97. package/components/common/RichText/dist/mp-qq/node/node.qml +0 -1
  98. package/components/common/RichText/dist/mp-qq/node/node.qss +0 -1
  99. package/components/common/RichText/dist/mp-qq/parser.js +0 -1
  100. package/components/common/RichText/dist/mp-toutiao/index.js +0 -8
  101. package/components/common/RichText/dist/mp-toutiao/index.json +0 -1
  102. package/components/common/RichText/dist/mp-toutiao/index.ttml +0 -1
  103. package/components/common/RichText/dist/mp-toutiao/index.ttss +0 -1
  104. package/components/common/RichText/dist/mp-toutiao/node/node.js +0 -1
  105. package/components/common/RichText/dist/mp-toutiao/node/node.json +0 -1
  106. package/components/common/RichText/dist/mp-toutiao/node/node.ttml +0 -1
  107. package/components/common/RichText/dist/mp-toutiao/node/node.ttss +0 -1
  108. package/components/common/RichText/dist/mp-toutiao/parser.js +0 -1
  109. package/components/common/RichText/dist/mp-weixin/index.js +0 -8
  110. package/components/common/RichText/dist/mp-weixin/index.json +0 -1
  111. package/components/common/RichText/dist/mp-weixin/index.wxml +0 -1
  112. package/components/common/RichText/dist/mp-weixin/index.wxss +0 -1
  113. package/components/common/RichText/dist/mp-weixin/node/node.js +0 -1
  114. package/components/common/RichText/dist/mp-weixin/node/node.json +0 -1
  115. package/components/common/RichText/dist/mp-weixin/node/node.wxml +0 -1
  116. package/components/common/RichText/dist/mp-weixin/node/node.wxss +0 -1
  117. package/components/common/RichText/dist/mp-weixin/parser.js +0 -1
  118. package/components/common/RichText/dist/uni-app/components/mp-html/mp-html.vue +0 -498
  119. package/components/common/RichText/dist/uni-app/components/mp-html/node/node.vue +0 -587
  120. package/components/common/RichText/dist/uni-app/components/mp-html/parser.js +0 -1393
  121. package/components/common/RichText/dist/uni-app/static/app-plus/mp-html/js/handler.js +0 -1
  122. package/components/common/RichText/dist/uni-app/static/app-plus/mp-html/js/uni.webview.min.js +0 -1
  123. package/components/common/RichText/dist/uni-app/static/app-plus/mp-html/local.html +0 -1
  124. package/components/common/RichText/docs/.nojekyll +0 -0
  125. package/components/common/RichText/docs/index.html +0 -50
  126. package/components/common/RichText/docs/lib/docsify.min.js +0 -1
  127. package/components/common/RichText/docs/lib/prism-bash.min.js +0 -1
  128. package/components/common/RichText/docs/lib/search.min.js +0 -1
  129. package/components/common/RichText/docs/lib/vue.css +0 -858
  130. package/components/common/RichText/gulpfile.js +0 -113
  131. package/components/common/RichText/lint.js +0 -63
  132. package/components/common/RichText/package.json +0 -74
  133. package/components/common/RichText/plugins/README.md +0 -2
  134. package/components/common/RichText/plugins/audio/README.md +0 -25
  135. package/components/common/RichText/plugins/audio/build.js +0 -11
  136. package/components/common/RichText/plugins/audio/context.js +0 -7
  137. package/components/common/RichText/plugins/audio/index.js +0 -34
  138. package/components/common/RichText/plugins/audio/miniprogram/audio.js +0 -189
  139. package/components/common/RichText/plugins/audio/miniprogram/audio.json +0 -3
  140. package/components/common/RichText/plugins/audio/miniprogram/audio.wxml +0 -17
  141. package/components/common/RichText/plugins/audio/miniprogram/audio.wxss +0 -127
  142. package/components/common/RichText/plugins/audio/miniprogram/build.js +0 -3
  143. package/components/common/RichText/plugins/audio/uni-app/audio.vue +0 -269
  144. package/components/common/RichText/plugins/audio/uni-app/build.js +0 -3
  145. package/components/common/RichText/plugins/card/README.md +0 -30
  146. package/components/common/RichText/plugins/card/build.js +0 -14
  147. package/components/common/RichText/plugins/card/index.js +0 -7
  148. package/components/common/RichText/plugins/card/miniprogram/build.js +0 -3
  149. package/components/common/RichText/plugins/card/miniprogram/card.js +0 -26
  150. package/components/common/RichText/plugins/card/miniprogram/card.json +0 -3
  151. package/components/common/RichText/plugins/card/miniprogram/card.wxml +0 -9
  152. package/components/common/RichText/plugins/card/miniprogram/card.wxss +0 -55
  153. package/components/common/RichText/plugins/card/uni-app/build.js +0 -3
  154. package/components/common/RichText/plugins/card/uni-app/card.vue +0 -122
  155. package/components/common/RichText/plugins/editable/README.md +0 -137
  156. package/components/common/RichText/plugins/editable/config.js +0 -15
  157. package/components/common/RichText/plugins/editable/miniprogram/build.js +0 -813
  158. package/components/common/RichText/plugins/editable/miniprogram/index.js +0 -551
  159. package/components/common/RichText/plugins/editable/uni-app/build.js +0 -744
  160. package/components/common/RichText/plugins/editable/uni-app/index.js +0 -553
  161. package/components/common/RichText/plugins/emoji/README.md +0 -15
  162. package/components/common/RichText/plugins/emoji/index.js +0 -203
  163. package/components/common/RichText/plugins/highlight/README.md +0 -26
  164. package/components/common/RichText/plugins/highlight/config.js +0 -5
  165. package/components/common/RichText/plugins/highlight/index.js +0 -96
  166. package/components/common/RichText/plugins/highlight/miniprogram/build.js +0 -88
  167. package/components/common/RichText/plugins/highlight/prism.css +0 -125
  168. package/components/common/RichText/plugins/highlight/prism.min.js +0 -7
  169. package/components/common/RichText/plugins/highlight/uni-app/build.js +0 -88
  170. package/components/common/RichText/plugins/img-cache/README.md +0 -24
  171. package/components/common/RichText/plugins/img-cache/build.js +0 -16
  172. package/components/common/RichText/plugins/img-cache/index.js +0 -138
  173. package/components/common/RichText/plugins/latex/README.md +0 -16
  174. package/components/common/RichText/plugins/latex/build.js +0 -14
  175. package/components/common/RichText/plugins/latex/index.js +0 -77
  176. package/components/common/RichText/plugins/latex/katex.css +0 -1070
  177. package/components/common/RichText/plugins/latex/katex.min.js +0 -1
  178. package/components/common/RichText/plugins/markdown/README.md +0 -17
  179. package/components/common/RichText/plugins/markdown/index.js +0 -34
  180. package/components/common/RichText/plugins/markdown/marked.min.js +0 -6
  181. package/components/common/RichText/plugins/markdown/miniprogram/build.js +0 -70
  182. package/components/common/RichText/plugins/markdown/uni-app/build.js +0 -68
  183. package/components/common/RichText/plugins/search/README.md +0 -46
  184. package/components/common/RichText/plugins/search/miniprogram/index.js +0 -137
  185. package/components/common/RichText/plugins/search/uni-app/index.js +0 -132
  186. package/components/common/RichText/plugins/style/README.md +0 -30
  187. package/components/common/RichText/plugins/style/index.js +0 -129
  188. package/components/common/RichText/plugins/style/parser.js +0 -175
  189. package/components/common/RichText/plugins/template/README.md +0 -2
  190. package/components/common/RichText/plugins/template/build.js +0 -65
  191. package/components/common/RichText/plugins/template/index.js +0 -67
  192. package/components/common/RichText/plugins/txv-video/README.md +0 -18
  193. package/components/common/RichText/plugins/txv-video/build.js +0 -3
  194. package/components/common/RichText/plugins/txv-video/index.js +0 -46
  195. package/components/common/RichText/plugins/txv-video/miniprogram/build.js +0 -6
  196. package/components/common/RichText/plugins/txv-video/uni-app/build.js +0 -3
  197. package/components/common/RichText/src/miniprogram/index.js +0 -396
  198. package/components/common/RichText/src/miniprogram/index.json +0 -6
  199. package/components/common/RichText/src/miniprogram/index.wxml +0 -7
  200. package/components/common/RichText/src/miniprogram/index.wxss +0 -13
  201. package/components/common/RichText/src/miniprogram/node/node.js +0 -247
  202. package/components/common/RichText/src/miniprogram/node/node.json +0 -6
  203. package/components/common/RichText/src/miniprogram/node/node.wxml +0 -112
  204. package/components/common/RichText/src/miniprogram/node/node.wxss +0 -164
  205. package/components/common/RichText/src/miniprogram/parser.js +0 -1269
  206. package/components/common/RichText/src/uni-app/components/mp-html/mp-html.vue +0 -498
  207. package/components/common/RichText/src/uni-app/components/mp-html/node/node.vue +0 -585
  208. package/components/common/RichText/src/uni-app/components/mp-html/parser.js +0 -1393
  209. package/components/common/RichText/src/uni-app/static/app-plus/mp-html/js/handler.js +0 -254
  210. package/components/common/RichText/src/uni-app/static/app-plus/mp-html/js/uni.webview.min.js +0 -1
  211. package/components/common/RichText/src/uni-app/static/app-plus/mp-html/local.html +0 -33
  212. package/components/common/RichText/tools/config.js +0 -82
  213. package/components/common/RichText/tools/converter.js +0 -205
  214. package/components/common/RichText/tools/ifdef.js +0 -115
  215. package/components/common/RichText/tools/minifier.js +0 -40
  216. package/components/common/RichText/tools/plugin.js +0 -248
  217. package/components/message-customer-service.vue +0 -114
  218. package/script/fileCopy.js +0 -60
  219. package/script/syncVersion.js +0 -35
  220. /package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/component-mobile/label-mobile.vue +0 -0
  221. /package/components/{message-multi-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form}/component-pc/label-pc.vue +0 -0
  222. /package/components/{message-form → CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-single-form}/form-branch.vue +0 -0
@@ -1,553 +0,0 @@
1
- /**
2
- * @fileoverview editable 插件
3
- */
4
- const config = require('./config')
5
- const Parser = require('../parser')
6
-
7
- function Editable (vm) {
8
- this.vm = vm
9
- this.editHistory = [] // 历史记录
10
- this.editI = -1 // 历史记录指针
11
- vm._mask = [] // 蒙版被点击时进行的操作
12
-
13
- vm._setData = function (path, val) {
14
- const paths = path.split('.')
15
- let target = vm
16
- for (let i = 0; i < paths.length - 1; i++) {
17
- target = target[paths[i]]
18
- }
19
- vm.$set(target, paths.pop(), val)
20
- }
21
-
22
- /**
23
- * @description 移动历史记录指针
24
- * @param {Number} num 移动距离
25
- */
26
- const move = num => {
27
- setTimeout(() => {
28
- const item = this.editHistory[this.editI + num]
29
- if (item) {
30
- this.editI += num
31
- vm._setData(item.key, item.value)
32
- }
33
- }, 200)
34
- }
35
- vm.undo = () => move(-1) // 撤销
36
- vm.redo = () => move(1) // 重做
37
-
38
- /**
39
- * @description 更新记录
40
- * @param {String} path 更新内容路径
41
- * @param {*} oldVal 旧值
42
- * @param {*} newVal 新值
43
- * @param {Boolean} set 是否更新到视图
44
- * @private
45
- */
46
- vm._editVal = (path, oldVal, newVal, set) => {
47
- // 当前指针后的内容去除
48
- while (this.editI < this.editHistory.length - 1) {
49
- this.editHistory.pop()
50
- }
51
-
52
- // 最多存储 30 条操作记录
53
- while (this.editHistory.length > 30) {
54
- this.editHistory.pop()
55
- this.editI--
56
- }
57
-
58
- const last = this.editHistory[this.editHistory.length - 1]
59
- if (!last || last.key !== path) {
60
- if (last) {
61
- // 去掉上一次的新值
62
- this.editHistory.pop()
63
- this.editI--
64
- }
65
- // 存入这一次的旧值
66
- this.editHistory.push({
67
- key: path,
68
- value: oldVal
69
- })
70
- this.editI++
71
- }
72
-
73
- // 存入本次的新值
74
- this.editHistory.push({
75
- key: path,
76
- value: newVal
77
- })
78
- this.editI++
79
-
80
- // 更新到视图
81
- if (set) {
82
- vm._setData(path, newVal)
83
- }
84
- }
85
-
86
- /**
87
- * @description 获取菜单项
88
- * @private
89
- */
90
- vm._getItem = function (node, up, down) {
91
- let items
92
- let i
93
- if (node === 'color') {
94
- return config.color
95
- }
96
- if (node.name === 'img') {
97
- items = config.img.slice(0)
98
- if (!vm.getSrc) {
99
- i = items.indexOf('换图')
100
- if (i !== -1) {
101
- items.splice(i, 1)
102
- }
103
- i = items.indexOf('超链接')
104
- if (i !== -1) {
105
- items.splice(i, 1)
106
- }
107
- i = items.indexOf('预览图')
108
- if (i !== -1) {
109
- items.splice(i, 1)
110
- }
111
- }
112
- i = items.indexOf('禁用预览')
113
- if (i !== -1 && node.attrs.ignore) {
114
- items[i] = '启用预览'
115
- }
116
- } else if (node.name === 'a') {
117
- items = config.link.slice(0)
118
- if (!vm.getSrc) {
119
- i = items.indexOf('更换链接')
120
- if (i !== -1) {
121
- items.splice(i, 1)
122
- }
123
- }
124
- } else if (node.name === 'video' || node.name === 'audio') {
125
- items = config.media.slice(0)
126
- i = items.indexOf('封面')
127
- if (!vm.getSrc && i !== -1) {
128
- items.splice(i, 1)
129
- }
130
- i = items.indexOf('循环')
131
- if (node.attrs.loop && i !== -1) {
132
- items[i] = '不循环'
133
- }
134
- i = items.indexOf('自动播放')
135
- if (node.attrs.autoplay && i !== -1) {
136
- items[i] = '不自动播放'
137
- }
138
- } else if (node.name === 'card') {
139
- items = config.card.slice(0)
140
- } else {
141
- items = config.node.slice(0)
142
- }
143
- if (!up) {
144
- i = items.indexOf('上移')
145
- if (i !== -1) {
146
- items.splice(i, 1)
147
- }
148
- }
149
- if (!down) {
150
- i = items.indexOf('下移')
151
- if (i !== -1) {
152
- items.splice(i, 1)
153
- }
154
- }
155
- return items
156
- }
157
-
158
- /**
159
- * @description 显示 tooltip
160
- * @param {object} obj
161
- * @private
162
- */
163
- vm._tooltip = function (obj) {
164
- vm.$set(vm, 'tooltip', {
165
- top: obj.top,
166
- items: obj.items
167
- })
168
- vm._tooltipcb = obj.success
169
- }
170
-
171
- /**
172
- * @description 显示滚动条
173
- * @param {object} obj
174
- * @private
175
- */
176
- vm._slider = function (obj) {
177
- vm.$set(vm, 'slider', {
178
- min: obj.min,
179
- max: obj.max,
180
- value: obj.value,
181
- top: obj.top
182
- })
183
- vm._slideringcb = obj.changing
184
- vm._slidercb = obj.change
185
- }
186
-
187
- /**
188
- * @description 显示颜色选择
189
- * @param {object} obj
190
- * @private
191
- */
192
- vm._color = function (obj) {
193
- vm.$set(vm, 'color', {
194
- items: obj.items,
195
- top: obj.top
196
- })
197
- vm._colorcb = obj.success
198
- }
199
-
200
- /**
201
- * @description 点击蒙版
202
- * @private
203
- */
204
- vm._maskTap = function () {
205
- // 隐藏所有悬浮窗
206
- while (vm._mask.length) {
207
- (vm._mask.pop())()
208
- }
209
- if (vm.tooltip) {
210
- vm.$set(vm, 'tooltip', null)
211
- }
212
- if (vm.slider) {
213
- vm.$set(vm, 'slider', null)
214
- }
215
- if (vm.color) {
216
- vm.$set(vm, 'color', null)
217
- }
218
- }
219
-
220
- /**
221
- * @description 插入节点
222
- * @param {Object} node
223
- */
224
- function insert (node) {
225
- if (vm._edit) {
226
- vm._edit.insert(node)
227
- } else {
228
- const nodes = vm.nodes.slice(0)
229
- nodes.push(node)
230
- vm._editVal('nodes', vm.nodes, nodes, true)
231
- }
232
- }
233
-
234
- /**
235
- * @description 在光标处插入指定 html 内容
236
- * @param {String} html 内容
237
- */
238
- vm.insertHtml = html => {
239
- this.inserting = true
240
- const arr = new Parser(vm).parse(html)
241
- this.inserting = undefined
242
- for (let i = 0; i < arr.length; i++) {
243
- insert(arr[i])
244
- }
245
- }
246
-
247
- /**
248
- * @description 在光标处插入图片
249
- */
250
- vm.insertImg = function () {
251
- vm.getSrc && vm.getSrc('img').then(src => {
252
- if (typeof src === 'string') {
253
- src = [src]
254
- }
255
- const parser = new Parser(vm)
256
- for (let i = 0; i < src.length; i++) {
257
- insert({
258
- name: 'img',
259
- attrs: {
260
- src: parser.getUrl(src[i])
261
- }
262
- })
263
- }
264
- }).catch(() => { })
265
- }
266
-
267
- /**
268
- * @description 在光标处插入一个链接
269
- */
270
- vm.insertLink = function () {
271
- vm.getSrc && vm.getSrc('link').then(url => {
272
- insert({
273
- name: 'a',
274
- attrs: {
275
- href: url
276
- },
277
- children: [{
278
- type: 'text',
279
- text: url
280
- }]
281
- })
282
- }).catch(() => { })
283
- }
284
-
285
- /**
286
- * @description 在光标处插入一个表格
287
- * @param {Number} rows 行数
288
- * @param {Number} cols 列数
289
- */
290
- vm.insertTable = function (rows, cols) {
291
- const table = {
292
- name: 'table',
293
- attrs: {
294
- style: 'display:table;width:100%;margin:10px 0;text-align:center;border-spacing:0;border-collapse:collapse;border:1px solid gray'
295
- },
296
- children: []
297
- }
298
- for (let i = 0; i < rows; i++) {
299
- const tr = {
300
- name: 'tr',
301
- attrs: {},
302
- children: []
303
- }
304
- for (let j = 0; j < cols; j++) {
305
- tr.children.push({
306
- name: 'td',
307
- attrs: {
308
- style: 'padding:2px;border:1px solid gray'
309
- },
310
- children: [{
311
- type: 'text',
312
- text: ''
313
- }]
314
- })
315
- }
316
- table.children.push(tr)
317
- }
318
- insert(table)
319
- }
320
-
321
- /**
322
- * @description 插入视频/音频
323
- * @param {Object} node
324
- */
325
- function insertMedia (node) {
326
- if (typeof node.src === 'string') {
327
- node.src = [node.src]
328
- }
329
- const parser = new Parser(vm)
330
- // 拼接主域名
331
- for (let i = 0; i < node.src.length; i++) {
332
- node.src[i] = parser.getUrl(node.src[i])
333
- }
334
- insert({
335
- name: 'div',
336
- attrs: {
337
- style: 'text-align:center'
338
- },
339
- children: [node]
340
- })
341
- }
342
-
343
- /**
344
- * @description 在光标处插入一个视频
345
- */
346
- vm.insertVideo = function () {
347
- vm.getSrc && vm.getSrc('video').then(src => {
348
- insertMedia({
349
- name: 'video',
350
- attrs: {
351
- controls: 'T'
352
- },
353
- children: [],
354
- src,
355
- // #ifdef APP-PLUS
356
- html: `<video src="${src}" style="width:100%;height:100%"></video>`
357
- // #endif
358
- })
359
- }).catch(() => { })
360
- }
361
-
362
- /**
363
- * @description 在光标处插入一个音频
364
- */
365
- vm.insertAudio = function () {
366
- vm.getSrc && vm.getSrc('audio').then(attrs => {
367
- let src
368
- if (attrs.src) {
369
- src = attrs.src
370
- attrs.src = undefined
371
- } else {
372
- src = attrs
373
- attrs = {}
374
- }
375
- attrs.controls = 'T'
376
- insertMedia({
377
- name: 'audio',
378
- attrs,
379
- children: [],
380
- src
381
- })
382
- }).catch(() => { })
383
- }
384
-
385
- /**
386
- * @description 在光标处插入一段文本
387
- */
388
- vm.insertText = function () {
389
- insert({
390
- name: 'p',
391
- attrs: {},
392
- children: [{
393
- type: 'text',
394
- text: ''
395
- }]
396
- })
397
- }
398
-
399
- /**
400
- * @description 清空内容
401
- */
402
- vm.clear = function () {
403
- vm._maskTap()
404
- vm._edit = undefined
405
- vm.$set(vm, 'nodes', [{
406
- name: 'p',
407
- attrs: {},
408
- children: [{
409
- type: 'text',
410
- text: ''
411
- }]
412
- }])
413
- }
414
-
415
- /**
416
- * @description 获取编辑后的 html
417
- */
418
- vm.getContent = function () {
419
- let html = '';
420
- // 递归遍历获取
421
- (function traversal (nodes, table) {
422
- for (let i = 0; i < nodes.length; i++) {
423
- let item = nodes[i]
424
- if (item.type === 'text') {
425
- html += item.text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g, '<br>').replace(/\xa0/g, '&nbsp;') // 编码实体
426
- } else {
427
- if (item.name === 'img') {
428
- item.attrs.i = ''
429
- // 还原被转换的 svg
430
- if ((item.attrs.src || '').includes('data:image/svg+xml;utf8,')) {
431
- html += item.attrs.src.substr(24).replace(/%23/g, '#').replace('<svg', '<svg style="' + (item.attrs.style || '') + '"')
432
- continue
433
- }
434
- } else if (item.name === 'video' || item.name === 'audio') {
435
- // 还原 video 和 audio 的 source
436
- item = JSON.parse(JSON.stringify(item))
437
- if (item.src.length > 1) {
438
- item.children = []
439
- for (let j = 0; j < item.src.length; j++) {
440
- item.children.push({
441
- name: 'source',
442
- attrs: {
443
- src: item.src[j]
444
- }
445
- })
446
- }
447
- } else {
448
- item.attrs.src = item.src[0]
449
- }
450
- } else if (item.name === 'div' && (item.attrs.style || '').includes('overflow:auto') && (item.children[0] || {}).name === 'table') {
451
- // 还原滚动层
452
- item = item.children[0]
453
- }
454
- // 还原 table
455
- if (item.name === 'table') {
456
- item = JSON.parse(JSON.stringify(item))
457
- table = item.attrs
458
- if ((item.attrs.style || '').includes('display:grid')) {
459
- item.attrs.style = item.attrs.style.split('display:grid')[0]
460
- const children = [{
461
- name: 'tr',
462
- attrs: {},
463
- children: []
464
- }]
465
- for (let j = 0; j < item.children.length; j++) {
466
- item.children[j].attrs.style = item.children[j].attrs.style.replace(/grid-[^;]+;*/g, '')
467
- if (item.children[j].r !== children.length) {
468
- children.push({
469
- name: 'tr',
470
- attrs: {},
471
- children: [item.children[j]]
472
- })
473
- } else {
474
- children[children.length - 1].children.push(item.children[j])
475
- }
476
- }
477
- item.children = children
478
- }
479
- }
480
- html += '<' + item.name
481
- for (const attr in item.attrs) {
482
- let val = item.attrs[attr]
483
- if (!val) continue
484
- if (val === 'T' || val === true) {
485
- // bool 型省略值
486
- html += ' ' + attr
487
- continue
488
- } else if (item.name[0] === 't' && attr === 'style' && table) {
489
- // 取消为了显示 table 添加的 style
490
- val = val.replace(/;*display:table[^;]*/, '')
491
- if (table.border) {
492
- val = val.replace(/border[^;]+;*/g, $ => $.includes('collapse') ? $ : '')
493
- }
494
- if (table.cellpadding) {
495
- val = val.replace(/padding[^;]+;*/g, '')
496
- }
497
- if (!val) continue
498
- }
499
- html += ' ' + attr + '="' + val.replace(/"/g, '&quot;') + '"'
500
- }
501
- html += '>'
502
- if (item.children) {
503
- traversal(item.children, table)
504
- html += '</' + item.name + '>'
505
- }
506
- }
507
- }
508
- })(vm.nodes)
509
-
510
- // 其他插件处理
511
- for (let i = vm.plugins.length; i--;) {
512
- if (vm.plugins[i].onGetContent) {
513
- html = vm.plugins[i].onGetContent(html) || html
514
- }
515
- }
516
-
517
- return html
518
- }
519
- }
520
-
521
- Editable.prototype.onUpdate = function (content, config) {
522
- if (this.vm.editable) {
523
- this.vm._maskTap()
524
- config.entities.amp = '&'
525
- if (!this.inserting) {
526
- this.vm._edit = undefined
527
- if (!content) {
528
- setTimeout(() => {
529
- this.vm.$set(this.vm, 'nodes', [{
530
- name: 'p',
531
- attrs: {},
532
- children: [{
533
- type: 'text',
534
- text: ''
535
- }]
536
- }])
537
- }, 0)
538
- }
539
- }
540
- }
541
- }
542
-
543
- Editable.prototype.onParse = function (node) {
544
- // 空白单元格可编辑
545
- if (this.vm.editable && (node.name === 'td' || node.name === 'th') && !this.vm.getText(node.children)) {
546
- node.children.push({
547
- type: 'text',
548
- text: ''
549
- })
550
- }
551
- }
552
-
553
- module.exports = Editable
@@ -1,15 +0,0 @@
1
- # emoji
2
- 功能:解析 *emoji*
3
- 大小:*≈3KB*
4
- 支持平台:
5
-
6
- | 微信小程序 | QQ 小程序 | 百度小程序 | 支付宝小程序 | 头条小程序 | uni-app |
7
- |:---:|:---:|:---:|:---:|:---:|:---:|
8
- | √ | √ | √ | √ | √ | √ |
9
-
10
- 说明:
11
- 将形如 *[笑脸]* 的文本替换为 *emoji* 字符 😄
12
- 匹配模式可以通过修改 *reg* 变量实现
13
- 默认配置了 *177* 个常用的 *emoji* 小表情,可以自行按照需要修改 *data* 变量
14
-
15
- ?> 与 *editable* 插件共用时,导出编辑好的 *html* 内容,会将 *emoji* 字符编码为文本形式,便于存储