ocpview-plus 1.3.14 → 1.3.16

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 (213) hide show
  1. package/README.md +55 -43
  2. package/dist/ocpviewplus.min.esm.js +574 -482
  3. package/dist/ocpviewplus.min.js +9 -9
  4. package/dist/style.css +1 -1
  5. package/dist/styles/efviewplus.css +1 -1
  6. package/package.json +146 -146
  7. package/src/components/base/ContractPrintMixins.js +30 -30
  8. package/src/components/base/controlbase.vue +190 -190
  9. package/src/components/base/controlbox.vue +102 -102
  10. package/src/components/base/index.js +2 -2
  11. package/src/components/base/load.js +19 -19
  12. package/src/components/base/probase.js +220 -220
  13. package/src/components/base/size.js +78 -78
  14. package/src/components/billbox/billbox.vue +67 -67
  15. package/src/components/billbox/index.js +1 -1
  16. package/src/components/cascaderbox/cascaderbox.vue +184 -184
  17. package/src/components/cascaderbox/index.js +2 -2
  18. package/src/components/checkbox/checkbox.vue +75 -75
  19. package/src/components/checkbox/checkgroupbox.vue +103 -103
  20. package/src/components/checkbox/index.js +2 -2
  21. package/src/components/colorbox/colorbox.vue +43 -43
  22. package/src/components/colorbox/index.js +1 -1
  23. package/src/components/combobox/combobox.vue +219 -219
  24. package/src/components/combobox/index.js +1 -1
  25. package/src/components/conditionbox/conditionbase.vue +194 -194
  26. package/src/components/conditionbox/conditionbox.vue +62 -62
  27. package/src/components/conditionbox/conditionfilterbox.vue +479 -479
  28. package/src/components/conditionbox/conditionselectorbox.vue +237 -237
  29. package/src/components/conditionbox/index.js +4 -4
  30. package/src/components/conditionbox/queryconditionbox.vue +25 -25
  31. package/src/components/conditionbox/queryconditionboxbase.vue +123 -123
  32. package/src/components/conditionbox/searchconditionbox.vue +113 -113
  33. package/src/components/conditionbox/searchgrid.vue +391 -391
  34. package/src/components/datebox/DateBoxV1.vue +22 -22
  35. package/src/components/datebox/datebox.vue +129 -129
  36. package/src/components/datebox/daterangebox.vue +154 -154
  37. package/src/components/datebox/index.js +5 -5
  38. package/src/components/form/baseform.vue +676 -676
  39. package/src/components/form/detailsbox.vue +487 -487
  40. package/src/components/form/formbox.vue +28 -28
  41. package/src/components/form/formcardbox.vue +267 -267
  42. package/src/components/form/formcardbox2.vue +228 -228
  43. package/src/components/form/formcardgroupbox.vue +251 -251
  44. package/src/components/form/formcompro.js +18 -18
  45. package/src/components/form/formdetail.vue +128 -128
  46. package/src/components/form/formdetailtwo.vue +302 -302
  47. package/src/components/form/index.js +9 -9
  48. package/src/components/form/toolanchor.js +45 -45
  49. package/src/components/form/workform.vue +167 -167
  50. package/src/components/grid/basegrid.vue +1062 -1062
  51. package/src/components/grid/editgrid.vue +51 -51
  52. package/src/components/grid/editgridbase.vue +1062 -1062
  53. package/src/components/grid/editgridcard.vue +193 -193
  54. package/src/components/grid/expandrow.vue +137 -137
  55. package/src/components/grid/index.js +5 -5
  56. package/src/components/grid/viewgrid.vue +121 -121
  57. package/src/components/grid/viewgridbase.vue +1286 -1286
  58. package/src/components/icon/common-icon.vue +53 -53
  59. package/src/components/icon/eicon.vue +28 -28
  60. package/src/components/icon/icons.vue +42 -42
  61. package/src/components/icon/index.js +1 -1
  62. package/src/components/label/index.js +2 -2
  63. package/src/components/label/showtext.vue +94 -94
  64. package/src/components/load/loadcartoon.vue +227 -227
  65. package/src/components/map/index.js +1 -1
  66. package/src/components/map/mapbox.vue +348 -348
  67. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanel.vue +184 -184
  68. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTable.vue +838 -838
  69. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlbox.vue +126 -126
  70. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlboxNumberbox.vue +27 -27
  71. package/src/components/masterplate/RewriteBillListDetails/BillListPanel.vue +126 -126
  72. package/src/components/masterplate/RewriteBillListDetails/BillListPanelQueryBar.vue +280 -280
  73. package/src/components/masterplate/RewriteBillListDetails/BillListPanelTable.vue +346 -346
  74. package/src/components/masterplate/RewriteBillListDetails/index.vue +325 -325
  75. package/src/components/masterplate/RewriteBillListDetails/mixins/useVxeGridEditTypeKeydownEventHook.js +251 -251
  76. package/src/components/masterplate/RewriteListdetails/BillListPanelV2.vue +115 -115
  77. package/src/components/masterplate/RewriteListdetails/BillListPanelV2QueryBar.vue +24 -24
  78. package/src/components/masterplate/RewriteListdetails/BillListPanelV3.vue +121 -121
  79. package/src/components/masterplate/RewriteListdetails/BillListPanelV3QueryBar.vue +275 -275
  80. package/src/components/masterplate/RewriteListdetails/indexV2.vue +320 -320
  81. package/src/components/masterplate/RewriteListdetails/indexV3.vue +331 -331
  82. package/src/components/masterplate/appendix.vue +586 -586
  83. package/src/components/masterplate/approval.vue +863 -863
  84. package/src/components/masterplate/base.vue +1028 -1028
  85. package/src/components/masterplate/billasyncimport.vue +614 -614
  86. package/src/components/masterplate/billconditionbox.vue +223 -223
  87. package/src/components/masterplate/billconditionsbox.vue +427 -427
  88. package/src/components/masterplate/billdetailform.vue +1028 -1028
  89. package/src/components/masterplate/billimport.vue +301 -301
  90. package/src/components/masterplate/billquerygrid.vue +391 -391
  91. package/src/components/masterplate/billsinglegrid.vue +234 -234
  92. package/src/components/masterplate/birtreport.vue +185 -185
  93. package/src/components/masterplate/contractappendix.vue +688 -688
  94. package/src/components/masterplate/detailbtntoolbar.vue +311 -311
  95. package/src/components/masterplate/detailsbox.vue +386 -386
  96. package/src/components/masterplate/editgridcard.vue +292 -292
  97. package/src/components/masterplate/editgridcard2.vue +127 -127
  98. package/src/components/masterplate/formcard.vue +105 -105
  99. package/src/components/masterplate/formcardgroupbox.vue +167 -167
  100. package/src/components/masterplate/formdetailtwo.vue +366 -366
  101. package/src/components/masterplate/gridcolset.vue +226 -226
  102. package/src/components/masterplate/index.js +54 -54
  103. package/src/components/masterplate/layouttemplate.vue +51 -51
  104. package/src/components/masterplate/leftlistrightdetails.vue +581 -581
  105. package/src/components/masterplate/leftlistrightlist.vue +464 -464
  106. package/src/components/masterplate/lefttreerightdetails.vue +636 -636
  107. package/src/components/masterplate/levelreport.vue +510 -510
  108. package/src/components/masterplate/listbtntoolbar.vue +276 -276
  109. package/src/components/masterplate/listdetails.vue +768 -768
  110. package/src/components/masterplate/operlog.vue +272 -272
  111. package/src/components/masterplate/options.vue +110 -110
  112. package/src/components/masterplate/page.vue +102 -102
  113. package/src/components/masterplate/promptmessage.vue +73 -73
  114. package/src/components/masterplate/querybar.vue +490 -490
  115. package/src/components/masterplate/report.vue +357 -357
  116. package/src/components/masterplate/rowbtntoolbar.vue +126 -126
  117. package/src/components/masterplate/simpletree.vue +137 -137
  118. package/src/components/masterplate/simpleviewgrid.vue +144 -144
  119. package/src/components/mychart/bar/bar.vue +201 -201
  120. package/src/components/mychart/basechart.vue +190 -190
  121. package/src/components/mychart/complexmychart/barline.vue +153 -153
  122. package/src/components/mychart/gauge/gauge.vue +82 -82
  123. package/src/components/mychart/index.js +8 -8
  124. package/src/components/mychart/line/line.vue +201 -201
  125. package/src/components/mychart/liquidfill/liquidfill.vue +108 -108
  126. package/src/components/mychart/pie/pie.vue +95 -95
  127. package/src/components/mychart/radar/radar.vue +121 -121
  128. package/src/components/mychart/scatter/scatter.vue +75 -75
  129. package/src/components/numberbox/NumberBoxV1.vue +39 -39
  130. package/src/components/numberbox/append.js +11 -11
  131. package/src/components/numberbox/index.js +4 -4
  132. package/src/components/numberbox/numberbox.vue +302 -302
  133. package/src/components/numberbox/numberrangebox.vue +422 -422
  134. package/src/components/picturebox/filebox.vue +369 -369
  135. package/src/components/picturebox/index.js +2 -2
  136. package/src/components/picturebox/picturebox.vue +541 -541
  137. package/src/components/picturebox/uploadbox.vue +164 -164
  138. package/src/components/poptagbox/index.js +1 -1
  139. package/src/components/poptagbox/poptagbox.vue +388 -388
  140. package/src/components/poptextbox/index.js +1 -1
  141. package/src/components/poptextbox/poptextbox.vue +624 -624
  142. package/src/components/radiobox/index.js +1 -1
  143. package/src/components/radiobox/radiogroupbox.vue +75 -75
  144. package/src/components/richtextbox/editor.vue +150 -150
  145. package/src/components/richtextbox/index.js +1 -1
  146. package/src/components/richtextbox/richtextbox.vue +448 -448
  147. package/src/components/textbox/index.js +1 -1
  148. package/src/components/textbox/textbox.vue +97 -97
  149. package/src/components/timebox/index.js +1 -1
  150. package/src/components/timebox/timebox.vue +75 -75
  151. package/src/components/toolbar/ebutton.vue +169 -169
  152. package/src/components/toolbar/index.js +3 -3
  153. package/src/components/toolbar/toolbar.vue +445 -445
  154. package/src/components/tree/CompatTree.vue +297 -297
  155. package/src/components/tree/basetree.vue +1098 -1098
  156. package/src/components/tree/index.js +2 -2
  157. package/src/components/tree/treedata.vue +53 -53
  158. package/src/components/tree/treedatabase.vue +189 -189
  159. package/src/components/upload/billimport.vue +233 -233
  160. package/src/components/upload/index.js +1 -1
  161. package/src/components/videobox/index.js +1 -1
  162. package/src/components/videobox/uploadbox.vue +148 -148
  163. package/src/components/videobox/videobox.vue +503 -503
  164. package/src/components/wrichtextbox/editor.vue +219 -219
  165. package/src/components/wrichtextbox/index.js +1 -1
  166. package/src/components/wrichtextbox/wrichtextbox.vue +62 -62
  167. package/src/index.js +231 -231
  168. package/src/locale/format.js +51 -51
  169. package/src/locale/index.js +63 -63
  170. package/src/locale/lang/zh-CN.js +123 -123
  171. package/src/locale/lang/zh-TW.js +114 -114
  172. package/src/locale/lang/zh-UG.js +115 -115
  173. package/src/locale/lang.js +15 -15
  174. package/src/method/case/case.js +1274 -1274
  175. package/src/method/config/queryconfig.js +24 -24
  176. package/src/method/const/const.js +815 -815
  177. package/src/method/index.js +7 -7
  178. package/src/plugins/theme/theme-variable.css +114 -114
  179. package/src/plugins/vxeTable/index.js +241 -241
  180. package/src/plugins/vxeTable/renderer/components/TableFilterInput.vue +51 -51
  181. package/src/plugins/vxeTable/renderer/filter.js +32 -32
  182. package/src/static/excel/exportexcel.js +626 -626
  183. package/src/static/iview/coustom.js +462 -462
  184. package/src/store/index.js +18 -18
  185. package/src/store/modules/app.js +53 -53
  186. package/src/styles/README.md +3 -3
  187. package/src/styles/common.less +80 -80
  188. package/src/styles/components/anchor.less +74 -74
  189. package/src/styles/components/approval.less +135 -135
  190. package/src/styles/components/button.less +208 -208
  191. package/src/styles/components/card.less +51 -51
  192. package/src/styles/components/content.less +38 -38
  193. package/src/styles/components/font.less +313 -313
  194. package/src/styles/components/form.less +71 -71
  195. package/src/styles/components/iconfont/fonts/iconfont.less +1384 -1384
  196. package/src/styles/components/iconfont/fonts/iconfont.svg +703 -703
  197. package/src/styles/components/index.less +16 -16
  198. package/src/styles/components/input.less +290 -290
  199. package/src/styles/components/modal.less +203 -203
  200. package/src/styles/components/page.less +340 -340
  201. package/src/styles/components/select.less +361 -361
  202. package/src/styles/components/steps.less +367 -367
  203. package/src/styles/components/table.less +544 -544
  204. package/src/styles/components/tabs.less +249 -249
  205. package/src/styles/components/upload.less +82 -82
  206. package/src/styles/custom.less +67 -67
  207. package/src/styles/index.less +6 -6
  208. package/src/styles/pack.less +6 -6
  209. package/src/utils/EfuMessenger.js +155 -155
  210. package/src/utils/assist.js +353 -353
  211. package/src/utils/index.js +1 -1
  212. package/src/utils/random_str.js +10 -10
  213. package/src/components/masterplate/detailgridbox.vue +0 -386
@@ -1,448 +1,448 @@
1
- <template>
2
- <div v-show="myConfig.visible" @keydown.enter.stop="keyDown" @blue="onEditorBlur">
3
- <!-- 图片上传组件辅助-->
4
- <UploadBox v-show="false" id="iviewUp" ref="uploadbox" class="avatar-uploader" :config="myConfig" @success="handleSuccess" :headers="headers"/>
5
- <Editor ref="myQuillEditor" :style="myConfig.editorStyle" :myConfig="myConfig" :toolbarOptions="myConfig.toolbarOptions" :value="value" @updateValue="onEditorChange" @imgClick="imgClick" @initQuill="initQuill" />
6
- </div>
7
- </template>
8
- <script>
9
- // 工具栏配置
10
- import Base from '@/components/base/controlbase.vue';
11
- import UploadBox from '@/components/picturebox/uploadbox.vue'
12
- import { Quill } from '@vueup/vue-quill'
13
- import Editor from './editor.vue';
14
- export default {
15
- name: 'richtextbox',
16
- components:{
17
- UploadBox,Editor
18
- },
19
- extends: Base,
20
- data () {
21
- return {
22
- myConfig:{
23
- fileType:['jpg','jpeg','png','gif'],
24
- fileSize: 2,
25
- multiSelect:true,
26
- editorStyle:{
27
- 'height':'auto'
28
- },
29
- simpleFlag:false,
30
- showImage:true,
31
- uploadfile:'',
32
- toolbarOptions:[
33
- ['bold', 'italic', 'underline', 'strike'],
34
- [{ 'header': 1 }, { 'header': 2 }],
35
- [{ list:'ordered' }, { list:'bullet' }],
36
- [{ script:'sub' }, { script:'super' }],
37
- [{ 'indent': '-1' }, { 'indent': '+1' }],
38
- [{ 'color': [] }, { 'background': [] }],
39
- [{ 'size': [false, '42px', '36px', '26px', '24px', '22px', '18px', '16px','15px', '14px', '12px', '10.5px', '9px', '7.5px','6.5px', '5.5px','5px'] }],
40
- [{ 'font': [false,'SimSun','KaiTi','FangSong','SimHei','Microsoft-YaHei','PmingLiu','Impact','Georgia','Tahoma','Arial','Verdana'] }],
41
- [{ header:[1, 2, 3, 4, 5, 6, false] }],
42
- [{ 'align': [] }],
43
- ["clean"]
44
- ],
45
- },
46
-
47
- quillUpdateImg:false, // 根据图片上传状态来确定是否显示loading动画,刚开始是false,不显示
48
- headers:{
49
- 'billmoduleid':'img',
50
- 'billno':'img'
51
- // token: sessionStorage.token
52
- }, // 有的图片服务器要求请求头需要有token
53
- };
54
- },
55
-
56
- mounted () {
57
- //eslint-disable-next-line no-labels
58
- this.onEditorFocus();
59
- },
60
- methods:{
61
- customInit () {
62
- if (!this.myConfig.simpleFlag) {
63
- if (!this.myConfig.uploadfile) {
64
- this.myConfig.uploadfile = this.OmdUrl.uploadfile;
65
- }
66
- }
67
- if (this.myConfig.showImage) {
68
- this.myConfig.toolbarOptions.push(['link', 'image'])
69
- }
70
- },
71
- onEditorBlur () {
72
- // 失去焦点事件
73
- this.onEditorChange(this.quill.getHTML());
74
- },
75
- onEditorFocus (e) {
76
- if (this.myConfig.readOnly) {
77
- this.quill.enable(false);
78
- } else {
79
- this.quill.enable(true);
80
- }
81
- // 获得焦点事件
82
- },
83
- onEditorChange (value) {
84
- this.value = value;
85
- // 内容改变事件
86
- this.setFatherValue();
87
- //this.$emit('inputValue', this.content);
88
- },
89
-
90
- // 富文本图片上传前
91
- beforeUpload () {
92
- // 显示loading动画
93
- this.quillUpdateImg = true;
94
- },
95
- imgClick(value) {
96
- if (value) {
97
- if (!this.myConfig.readOnly) {
98
- document.querySelector('#iviewUp input').click();
99
- }
100
- } else {
101
- this.quill.format('image', false);
102
- }
103
- },
104
- handleSuccess (res) {
105
- // res为图片服务器返回的数据
106
- // 获取富文本组件实例
107
- let quill = this.quill;
108
- // 如果上传成功
109
- if (res.returncode === '0') {
110
- // 获取光标所在位置
111
- let length = quill.getSelection().index;
112
- // 插入图片 res.url为服务器返回的图片地址
113
- let url = '';
114
- if (res.data[0].url) {
115
- url = res.url;
116
- } else {
117
- if (res.data[0].fileKey) {
118
- res.data[0].filekey = res.data[0].fileKey;
119
- }
120
- url = this.OmdUrl.downfile + res.data[0].filekey;
121
- }
122
- quill.insertEmbed(length, 'image', url);
123
- // 调整光标到最后
124
- quill.setSelection(length + 1);
125
- } else {
126
- this.$message.error('图片插入失败');
127
- }
128
- // loading动画消失
129
- this.quillUpdateImg = false;
130
- },
131
- // 富文本图片上传失败
132
- uploadError () {
133
- // loading动画消失
134
- this.quillUpdateImg = false;
135
- this.$message.error('图片插入失败');
136
- },
137
- addQuillTitle () {
138
- // eslint-disable-next-line one-var
139
- const oToolBar = document.querySelector('.ql-toolbar'),
140
- aButton = oToolBar.querySelectorAll('button'),
141
- aSelect = oToolBar.querySelectorAll('select');
142
- aButton.forEach(function (item) {
143
- if (item.className === 'ql-script') {
144
- item.value === 'sub' ? (item.title = '下标') : (item.title = '上标');
145
- } else if (item.className === 'ql-indent') {
146
- item.value === '+1'
147
- ? (item.title = '向右缩进')
148
- : (item.title = '向左缩进');
149
- } else {
150
- // eslint-disable-next-line no-undef
151
- item.title = titleConfig[item.classList[0]];
152
- }
153
- });
154
- aSelect.forEach(function (item) {
155
- // eslint-disable-next-line no-undef
156
- item.parentNode.title = titleConfig[item.classList[0]];
157
- });
158
- },
159
- keyDown (e) {
160
- //e.stopPropagation();
161
- },
162
- initQuill(obj) {
163
- this.quill = obj.quill;
164
- },
165
- setDynamicText(value) {
166
- let quill = this.quill;
167
- let range = quill.getSelection(true);
168
- quill.insertEmbed(range.index, 'atusertag', {text:value}, Quill.sources.USER);
169
- quill.setSelection(range.index + 1, Quill.sources.SILENT);
170
- //quill.focus();
171
- //quill.update();
172
- },
173
- setCustomPro(obj) {
174
- if (obj) {
175
- this.myConfig = Object.assign({}, this.myConfig, obj);
176
- }
177
- if (obj.readOnly !== undefined) {
178
- this.onEditorFocus();
179
- }
180
- }
181
- }
182
- };
183
- </script>
184
-
185
- <style>
186
- .customEditor {
187
- line-height: normal !important;
188
- }
189
- .ql-snow .ql-tooltip[data-mode=link]::before {
190
- content: "请输入链接地址:";
191
- }
192
- .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
193
- border-right: 0px;
194
- content: '保存';
195
- padding-right: 0px;
196
- }
197
-
198
- .ql-snow .ql-tooltip[data-mode=video]::before {
199
- content: "请输入视频地址:";
200
- }
201
-
202
- .ql-snow .ql-picker.ql-size .ql-picker-label::before,
203
- .ql-snow .ql-picker.ql-size .ql-picker-item::before {
204
- content: "四号";
205
- font-size: 14px;
206
- }
207
-
208
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]::before,
209
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]::before {
210
- content: "四号";
211
- font-size: 14px;
212
- }
213
-
214
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="42px"]::before,
215
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="42px"]::before {
216
- content: "初号";
217
- font-size: 42px;
218
- }
219
-
220
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="36px"]::before,
221
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="36px"]::before {
222
- content: "小初";
223
- font-size: 36px;
224
- }
225
-
226
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="26px"]::before,
227
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="26px"]::before {
228
- content: "一号";
229
- font-size: 26px;
230
- }
231
-
232
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]::before,
233
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]::before {
234
- content: "小一";
235
- font-size: 24px;
236
- }
237
-
238
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="22px"]::before,
239
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="22px"]::before {
240
- content: "二号";
241
- font-size: 22px;
242
- }
243
-
244
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]::before,
245
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]::before {
246
- content: "小二";
247
- font-size: 18px;
248
- }
249
-
250
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]::before,
251
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]::before {
252
- content: "三号";
253
- font-size: 16px;
254
- }
255
-
256
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="15px"]::before,
257
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="15px"]::before {
258
- content: "小三";
259
- font-size: 15px;
260
- }
261
-
262
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]::before,
263
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]::before {
264
- content: "小四";
265
- font-size: 12px;
266
- }
267
-
268
-
269
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="10.5px"]::before,
270
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="10.5px"]::before {
271
- content: "五号";
272
- font-size: 10.5px;
273
- }
274
-
275
-
276
-
277
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="9px"]::before,
278
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="9px"]::before {
279
- content: "小五";
280
- font-size: 9px;
281
- }
282
-
283
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="7.5px"]::before,
284
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="7.5px"]::before {
285
- content: "六号";
286
- font-size: 7.5px;
287
- }
288
-
289
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="6.5px"]::before,
290
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="6.5px"]::before {
291
- content: "小六";
292
- font-size: 6.5px;
293
- }
294
-
295
-
296
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="5.5px"]::before,
297
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="5.5px"]::before {
298
- content: "七号";
299
- font-size: 5.5px;
300
- }
301
-
302
- .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="5px"]::before,
303
- .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="5px"]::before {
304
- content: "八号";
305
- font-size: 5px;
306
- }
307
-
308
- .ql-snow .ql-picker.ql-header .ql-picker-label::before,
309
- .ql-snow .ql-picker.ql-header .ql-picker-item::before {
310
- content: '文本';
311
- }
312
- .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
313
- .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
314
- content: '标题1';
315
- }
316
- .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
317
- .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
318
- content: '标题2';
319
- }
320
- .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
321
- .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
322
- content: '标题3';
323
- }
324
- .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
325
- .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
326
- content: '标题4';
327
- }
328
- .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
329
- .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
330
- content: '标题5';
331
- }
332
- .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
333
- .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
334
- content: '标题6';
335
- }
336
-
337
- .ql-snow .ql-picker.ql-font .ql-picker-label::before,
338
- .ql-snow .ql-picker.ql-font .ql-picker-item::before {
339
- content: '黑体';
340
- }
341
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='SimSun']::before,
342
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='SimSun']::before {
343
- content: "宋体";
344
- font-family: SimSun,sans-serif;
345
- }
346
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='KaiTi']::before,
347
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='KaiTi']::before {
348
- content: "楷体";
349
- font-family: KaiTi,sans-serif;
350
- }
351
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='FangSong']::before,
352
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='FangSong']::before {
353
- content: "仿宋";
354
- font-family: FangSong,sans-serif;
355
- }
356
-
357
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='SimHei']::before,
358
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='SimHei']::before {
359
- content: "黑体";
360
- font-family: SimHei,sans-serif;
361
- }
362
-
363
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Microsoft-YaHei']::before,
364
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Microsoft-YaHei']::before {
365
- content: "微软雅黑";
366
- font-family: Microsoft YaHei,sans-serif;
367
- }
368
-
369
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='PmingLiu']::before,
370
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='PmingLiu']::before {
371
- content: "PmingLiu";
372
- font-family: PmingLiu,sans-serif;
373
- }
374
-
375
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Impact']::before,
376
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Impact']::before {
377
- content: "Impact";
378
- font-family: Impact,sans-serif;
379
- }
380
-
381
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Georgia']::before,
382
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Georgia']::before {
383
- content: "Georgia";
384
- font-family: Georgia,sans-serif;
385
- }
386
-
387
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Tahoma']::before,
388
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Tahoma']::before {
389
- content: "Tahoma";
390
- font-family: Tahoma,sans-serif;
391
- }
392
-
393
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Arial']::before,
394
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Arial']::before {
395
- content: "Arial";
396
- font-family: Arial,sans-serif;
397
- }
398
-
399
- .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Verdana']::before,
400
- .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Verdana']::before {
401
- content: "Verdana";
402
- font-family: Verdana,sans-serif;
403
- }
404
- .ql-font-SimSun {
405
- font-family: SimSun , sans-serif;
406
- }
407
- .ql-font-KaiTi {
408
- font-family: KaiTi , sans-serif;
409
- }
410
- .ql-font-FangSong {
411
- font-family: FangSong , sans-serif;
412
- }
413
- .ql-font-SimHei {
414
- font-family: SimHei , sans-serif;
415
- }
416
- .ql-font-KaiTi {
417
- font-family: KaiTi , sans-serif;
418
- }
419
- .ql-font-Microsoft-YaHei {
420
- font-family: Microsoft YaHei , sans-serif;
421
- }
422
- .ql-font-PmingLiu {
423
- font-family: PmingLiu , sans-serif;
424
- }
425
-
426
- .ql-font-Impact {
427
- font-family: Impact , sans-serif;
428
- }
429
-
430
- .ql-font-Georgia {
431
- font-family: Georgia , sans-serif;
432
- }
433
-
434
- .ql-font-Tahoma {
435
- font-family: Tahoma , sans-serif;
436
- }
437
-
438
- .ql-font-Arial {
439
- font-family: Arial , sans-serif;
440
- }
441
- .ql-font-Verdana {
442
- font-family: Verdana , sans-serif;
443
- }
444
- .ql-picker-options {
445
- height: 300px;
446
- overflow: auto;
447
- }
448
- </style>
1
+ <template>
2
+ <div v-show="myConfig.visible" @keydown.enter.stop="keyDown" @blue="onEditorBlur">
3
+ <!-- 图片上传组件辅助-->
4
+ <UploadBox v-show="false" id="iviewUp" ref="uploadbox" class="avatar-uploader" :config="myConfig" @success="handleSuccess" :headers="headers"/>
5
+ <Editor ref="myQuillEditor" :style="myConfig.editorStyle" :myConfig="myConfig" :toolbarOptions="myConfig.toolbarOptions" :value="value" @updateValue="onEditorChange" @imgClick="imgClick" @initQuill="initQuill" />
6
+ </div>
7
+ </template>
8
+ <script>
9
+ // 工具栏配置
10
+ import Base from '@/components/base/controlbase.vue';
11
+ import UploadBox from '@/components/picturebox/uploadbox.vue'
12
+ import { Quill } from '@vueup/vue-quill'
13
+ import Editor from './editor.vue';
14
+ export default {
15
+ name: 'richtextbox',
16
+ components:{
17
+ UploadBox,Editor
18
+ },
19
+ extends: Base,
20
+ data () {
21
+ return {
22
+ myConfig:{
23
+ fileType:['jpg','jpeg','png','gif'],
24
+ fileSize: 2,
25
+ multiSelect:true,
26
+ editorStyle:{
27
+ 'height':'auto'
28
+ },
29
+ simpleFlag:false,
30
+ showImage:true,
31
+ uploadfile:'',
32
+ toolbarOptions:[
33
+ ['bold', 'italic', 'underline', 'strike'],
34
+ [{ 'header': 1 }, { 'header': 2 }],
35
+ [{ list:'ordered' }, { list:'bullet' }],
36
+ [{ script:'sub' }, { script:'super' }],
37
+ [{ 'indent': '-1' }, { 'indent': '+1' }],
38
+ [{ 'color': [] }, { 'background': [] }],
39
+ [{ 'size': [false, '42px', '36px', '26px', '24px', '22px', '18px', '16px','15px', '14px', '12px', '10.5px', '9px', '7.5px','6.5px', '5.5px','5px'] }],
40
+ [{ 'font': [false,'SimSun','KaiTi','FangSong','SimHei','Microsoft-YaHei','PmingLiu','Impact','Georgia','Tahoma','Arial','Verdana'] }],
41
+ [{ header:[1, 2, 3, 4, 5, 6, false] }],
42
+ [{ 'align': [] }],
43
+ ["clean"]
44
+ ],
45
+ },
46
+
47
+ quillUpdateImg:false, // 根据图片上传状态来确定是否显示loading动画,刚开始是false,不显示
48
+ headers:{
49
+ 'billmoduleid':'img',
50
+ 'billno':'img'
51
+ // token: sessionStorage.token
52
+ }, // 有的图片服务器要求请求头需要有token
53
+ };
54
+ },
55
+
56
+ mounted () {
57
+ //eslint-disable-next-line no-labels
58
+ this.onEditorFocus();
59
+ },
60
+ methods:{
61
+ customInit () {
62
+ if (!this.myConfig.simpleFlag) {
63
+ if (!this.myConfig.uploadfile) {
64
+ this.myConfig.uploadfile = this.OmdUrl.uploadfile;
65
+ }
66
+ }
67
+ if (this.myConfig.showImage) {
68
+ this.myConfig.toolbarOptions.push(['link', 'image'])
69
+ }
70
+ },
71
+ onEditorBlur () {
72
+ // 失去焦点事件
73
+ this.onEditorChange(this.quill.getHTML());
74
+ },
75
+ onEditorFocus (e) {
76
+ if (this.myConfig.readOnly) {
77
+ this.quill.enable(false);
78
+ } else {
79
+ this.quill.enable(true);
80
+ }
81
+ // 获得焦点事件
82
+ },
83
+ onEditorChange (value) {
84
+ this.value = value;
85
+ // 内容改变事件
86
+ this.setFatherValue();
87
+ //this.$emit('inputValue', this.content);
88
+ },
89
+
90
+ // 富文本图片上传前
91
+ beforeUpload () {
92
+ // 显示loading动画
93
+ this.quillUpdateImg = true;
94
+ },
95
+ imgClick(value) {
96
+ if (value) {
97
+ if (!this.myConfig.readOnly) {
98
+ document.querySelector('#iviewUp input').click();
99
+ }
100
+ } else {
101
+ this.quill.format('image', false);
102
+ }
103
+ },
104
+ handleSuccess (res) {
105
+ // res为图片服务器返回的数据
106
+ // 获取富文本组件实例
107
+ let quill = this.quill;
108
+ // 如果上传成功
109
+ if (res.returncode === '0') {
110
+ // 获取光标所在位置
111
+ let length = quill.getSelection().index;
112
+ // 插入图片 res.url为服务器返回的图片地址
113
+ let url = '';
114
+ if (res.data[0].url) {
115
+ url = res.url;
116
+ } else {
117
+ if (res.data[0].fileKey) {
118
+ res.data[0].filekey = res.data[0].fileKey;
119
+ }
120
+ url = this.OmdUrl.downfile + res.data[0].filekey;
121
+ }
122
+ quill.insertEmbed(length, 'image', url);
123
+ // 调整光标到最后
124
+ quill.setSelection(length + 1);
125
+ } else {
126
+ this.$message.error('图片插入失败');
127
+ }
128
+ // loading动画消失
129
+ this.quillUpdateImg = false;
130
+ },
131
+ // 富文本图片上传失败
132
+ uploadError () {
133
+ // loading动画消失
134
+ this.quillUpdateImg = false;
135
+ this.$message.error('图片插入失败');
136
+ },
137
+ addQuillTitle () {
138
+ // eslint-disable-next-line one-var
139
+ const oToolBar = document.querySelector('.ql-toolbar'),
140
+ aButton = oToolBar.querySelectorAll('button'),
141
+ aSelect = oToolBar.querySelectorAll('select');
142
+ aButton.forEach(function (item) {
143
+ if (item.className === 'ql-script') {
144
+ item.value === 'sub' ? (item.title = '下标') : (item.title = '上标');
145
+ } else if (item.className === 'ql-indent') {
146
+ item.value === '+1'
147
+ ? (item.title = '向右缩进')
148
+ : (item.title = '向左缩进');
149
+ } else {
150
+ // eslint-disable-next-line no-undef
151
+ item.title = titleConfig[item.classList[0]];
152
+ }
153
+ });
154
+ aSelect.forEach(function (item) {
155
+ // eslint-disable-next-line no-undef
156
+ item.parentNode.title = titleConfig[item.classList[0]];
157
+ });
158
+ },
159
+ keyDown (e) {
160
+ //e.stopPropagation();
161
+ },
162
+ initQuill(obj) {
163
+ this.quill = obj.quill;
164
+ },
165
+ setDynamicText(value) {
166
+ let quill = this.quill;
167
+ let range = quill.getSelection(true);
168
+ quill.insertEmbed(range.index, 'atusertag', {text:value}, Quill.sources.USER);
169
+ quill.setSelection(range.index + 1, Quill.sources.SILENT);
170
+ //quill.focus();
171
+ //quill.update();
172
+ },
173
+ setCustomPro(obj) {
174
+ if (obj) {
175
+ this.myConfig = Object.assign({}, this.myConfig, obj);
176
+ }
177
+ if (obj.readOnly !== undefined) {
178
+ this.onEditorFocus();
179
+ }
180
+ }
181
+ }
182
+ };
183
+ </script>
184
+
185
+ <style>
186
+ .customEditor {
187
+ line-height: normal !important;
188
+ }
189
+ .ql-snow .ql-tooltip[data-mode=link]::before {
190
+ content: "请输入链接地址:";
191
+ }
192
+ .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
193
+ border-right: 0px;
194
+ content: '保存';
195
+ padding-right: 0px;
196
+ }
197
+
198
+ .ql-snow .ql-tooltip[data-mode=video]::before {
199
+ content: "请输入视频地址:";
200
+ }
201
+
202
+ .ql-snow .ql-picker.ql-size .ql-picker-label::before,
203
+ .ql-snow .ql-picker.ql-size .ql-picker-item::before {
204
+ content: "四号";
205
+ font-size: 14px;
206
+ }
207
+
208
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]::before,
209
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]::before {
210
+ content: "四号";
211
+ font-size: 14px;
212
+ }
213
+
214
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="42px"]::before,
215
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="42px"]::before {
216
+ content: "初号";
217
+ font-size: 42px;
218
+ }
219
+
220
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="36px"]::before,
221
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="36px"]::before {
222
+ content: "小初";
223
+ font-size: 36px;
224
+ }
225
+
226
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="26px"]::before,
227
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="26px"]::before {
228
+ content: "一号";
229
+ font-size: 26px;
230
+ }
231
+
232
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]::before,
233
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]::before {
234
+ content: "小一";
235
+ font-size: 24px;
236
+ }
237
+
238
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="22px"]::before,
239
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="22px"]::before {
240
+ content: "二号";
241
+ font-size: 22px;
242
+ }
243
+
244
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]::before,
245
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]::before {
246
+ content: "小二";
247
+ font-size: 18px;
248
+ }
249
+
250
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]::before,
251
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]::before {
252
+ content: "三号";
253
+ font-size: 16px;
254
+ }
255
+
256
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="15px"]::before,
257
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="15px"]::before {
258
+ content: "小三";
259
+ font-size: 15px;
260
+ }
261
+
262
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]::before,
263
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]::before {
264
+ content: "小四";
265
+ font-size: 12px;
266
+ }
267
+
268
+
269
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="10.5px"]::before,
270
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="10.5px"]::before {
271
+ content: "五号";
272
+ font-size: 10.5px;
273
+ }
274
+
275
+
276
+
277
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="9px"]::before,
278
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="9px"]::before {
279
+ content: "小五";
280
+ font-size: 9px;
281
+ }
282
+
283
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="7.5px"]::before,
284
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="7.5px"]::before {
285
+ content: "六号";
286
+ font-size: 7.5px;
287
+ }
288
+
289
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="6.5px"]::before,
290
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="6.5px"]::before {
291
+ content: "小六";
292
+ font-size: 6.5px;
293
+ }
294
+
295
+
296
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="5.5px"]::before,
297
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="5.5px"]::before {
298
+ content: "七号";
299
+ font-size: 5.5px;
300
+ }
301
+
302
+ .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="5px"]::before,
303
+ .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="5px"]::before {
304
+ content: "八号";
305
+ font-size: 5px;
306
+ }
307
+
308
+ .ql-snow .ql-picker.ql-header .ql-picker-label::before,
309
+ .ql-snow .ql-picker.ql-header .ql-picker-item::before {
310
+ content: '文本';
311
+ }
312
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
313
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
314
+ content: '标题1';
315
+ }
316
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
317
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
318
+ content: '标题2';
319
+ }
320
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
321
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
322
+ content: '标题3';
323
+ }
324
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
325
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
326
+ content: '标题4';
327
+ }
328
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
329
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
330
+ content: '标题5';
331
+ }
332
+ .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
333
+ .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
334
+ content: '标题6';
335
+ }
336
+
337
+ .ql-snow .ql-picker.ql-font .ql-picker-label::before,
338
+ .ql-snow .ql-picker.ql-font .ql-picker-item::before {
339
+ content: '黑体';
340
+ }
341
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='SimSun']::before,
342
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='SimSun']::before {
343
+ content: "宋体";
344
+ font-family: SimSun,sans-serif;
345
+ }
346
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='KaiTi']::before,
347
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='KaiTi']::before {
348
+ content: "楷体";
349
+ font-family: KaiTi,sans-serif;
350
+ }
351
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='FangSong']::before,
352
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='FangSong']::before {
353
+ content: "仿宋";
354
+ font-family: FangSong,sans-serif;
355
+ }
356
+
357
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='SimHei']::before,
358
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='SimHei']::before {
359
+ content: "黑体";
360
+ font-family: SimHei,sans-serif;
361
+ }
362
+
363
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Microsoft-YaHei']::before,
364
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Microsoft-YaHei']::before {
365
+ content: "微软雅黑";
366
+ font-family: Microsoft YaHei,sans-serif;
367
+ }
368
+
369
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='PmingLiu']::before,
370
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='PmingLiu']::before {
371
+ content: "PmingLiu";
372
+ font-family: PmingLiu,sans-serif;
373
+ }
374
+
375
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Impact']::before,
376
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Impact']::before {
377
+ content: "Impact";
378
+ font-family: Impact,sans-serif;
379
+ }
380
+
381
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Georgia']::before,
382
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Georgia']::before {
383
+ content: "Georgia";
384
+ font-family: Georgia,sans-serif;
385
+ }
386
+
387
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Tahoma']::before,
388
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Tahoma']::before {
389
+ content: "Tahoma";
390
+ font-family: Tahoma,sans-serif;
391
+ }
392
+
393
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Arial']::before,
394
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Arial']::before {
395
+ content: "Arial";
396
+ font-family: Arial,sans-serif;
397
+ }
398
+
399
+ .ql-snow .ql-picker.ql-font .ql-picker-label[data-value='Verdana']::before,
400
+ .ql-snow .ql-picker.ql-font .ql-picker-item[data-value='Verdana']::before {
401
+ content: "Verdana";
402
+ font-family: Verdana,sans-serif;
403
+ }
404
+ .ql-font-SimSun {
405
+ font-family: SimSun , sans-serif;
406
+ }
407
+ .ql-font-KaiTi {
408
+ font-family: KaiTi , sans-serif;
409
+ }
410
+ .ql-font-FangSong {
411
+ font-family: FangSong , sans-serif;
412
+ }
413
+ .ql-font-SimHei {
414
+ font-family: SimHei , sans-serif;
415
+ }
416
+ .ql-font-KaiTi {
417
+ font-family: KaiTi , sans-serif;
418
+ }
419
+ .ql-font-Microsoft-YaHei {
420
+ font-family: Microsoft YaHei , sans-serif;
421
+ }
422
+ .ql-font-PmingLiu {
423
+ font-family: PmingLiu , sans-serif;
424
+ }
425
+
426
+ .ql-font-Impact {
427
+ font-family: Impact , sans-serif;
428
+ }
429
+
430
+ .ql-font-Georgia {
431
+ font-family: Georgia , sans-serif;
432
+ }
433
+
434
+ .ql-font-Tahoma {
435
+ font-family: Tahoma , sans-serif;
436
+ }
437
+
438
+ .ql-font-Arial {
439
+ font-family: Arial , sans-serif;
440
+ }
441
+ .ql-font-Verdana {
442
+ font-family: Verdana , sans-serif;
443
+ }
444
+ .ql-picker-options {
445
+ height: 300px;
446
+ overflow: auto;
447
+ }
448
+ </style>