askbot-dragon 1.6.16-beta → 1.6.18-beta

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "askbot-dragon",
3
- "version": "1.6.16-beta",
3
+ "version": "1.6.18-beta",
4
4
  "scripts": {
5
5
  "serve": "vue-cli-service serve",
6
6
  "build": "vue-cli-service build",
package/public/index.html CHANGED
@@ -23,13 +23,11 @@
23
23
  });
24
24
  }
25
25
  </script>
26
- <!-- <script src="https://guoranopen-zjk.oss-cn-zhangjiakou.aliyuncs.com/ckeditor5-build-classic/0.4.4/ckeditor.js"></script> -->
27
26
  <!-- 项目图标 -->
28
27
  <link rel="stylesheet" href="//at.alicdn.com/t/font_1566110_3hu6pyd938i.css"/>
29
28
  <!-- guoran图标 -->
30
29
  <link rel="stylesheet" href="//at.alicdn.com/t/c/font_2913049_qtm7orae3l.css"/>
31
30
  <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
32
- <!-- <script src="https://static.guoranbot.com/ckeditor5-build-classic/0.3.7/build/ckeditor.js"></script> -->
33
31
 
34
32
  <!-- vue -->
35
33
  <!-- <script src="https://static.guoranbot.com/vue/2.6.11/dist/vue.min.js"></script>
package/src/main.js CHANGED
@@ -10,9 +10,6 @@ import 'video.js/dist/video-js.css'
10
10
  import Vant from 'vant';
11
11
  import 'vant/lib/index.css';
12
12
 
13
- // import CKEditor from '@ckeditor/ckeditor5-vue2';
14
- // Vue.use(CKEditor);
15
-
16
13
  /*import VConsole from 'vconsole'
17
14
  const vConsole = new VConsole();
18
15
  Vue.use(vConsole);*/
@@ -1,110 +0,0 @@
1
- import Command from "@ckeditor/ckeditor5-core/src/command";
2
- import { multipartUpload, ossFileUrl } from "../AliyunIssUtil";
3
- const ossConfig = {
4
- region: "oss-cn-zhangjiakou",
5
- //云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用STS方式来进行API访问
6
- accessKeyId: "LTAI4G3QtdEdwkEbihBngAsK",
7
- accessKeySecret: "OwgdVfc5PeCkIgqIdug660xmiSPchn",
8
- // stsToken: '<Your securityToken(STS)>',
9
- bucket: "guoranopen-zjk",
10
- }
11
- export default class ImageCommand extends Command {
12
- refresh() {
13
- this.isEnabled = true;
14
- }
15
- execute(file) {
16
- if (file){
17
- this.forEachFiles(file.file)
18
- return
19
- }
20
- var inputObj = document.createElement('input')
21
- inputObj.setAttribute('id', '_ef');
22
- inputObj.setAttribute('type', 'file');
23
- inputObj.setAttribute('accept','image/jpeg,image/png,image/gif,image/bmp,image/webp,image/tiff')
24
- inputObj.setAttribute("style", 'visibility:hidden');
25
- document.body.appendChild(inputObj);
26
- inputObj.click();
27
- inputObj.onchange = () => {
28
- // 循环上传文件
29
- let files = inputObj.files;
30
- for (let index = 0; index < files.length; index++) {
31
- const filed = files[index];
32
- let command = this.editor.commands.get("insertAskComponent");
33
- command.execute({
34
- tag: "span-editable",
35
- options: {
36
- name: filed.name + '正在上传...',
37
- data: index,
38
- editable:false,
39
- type:'upload'
40
- },
41
- })
42
- this.upload(filed).then(res =>{
43
- // let command = this.editor.commands.get("insertAskComponent");
44
- command.execute({
45
- tag: "img",
46
- options: {
47
- width:'100%',
48
- alt: filed.name + index,
49
- src: res.default
50
- },
51
- });
52
- })
53
- }
54
- }
55
- }
56
- forEachFiles(files){
57
- for (let index = 0; index < files.length; index++) {
58
- const filed = files[index];
59
- let command = this.editor.commands.get("insertAskComponent");
60
- command.execute({
61
- tag: "span-editable",
62
- options: {
63
- name: filed.name + '正在上传...',
64
- data: index,
65
- editable: false,
66
- type: 'upload'
67
- },
68
- })
69
- this.upload(filed).then(res => {
70
- // let command = this.editor.commands.get("insertAskComponent");
71
- command.execute({
72
- tag: "img",
73
- options: {
74
- width: '100%',
75
- alt: filed.name + index,
76
- src: res.default
77
- },
78
- });
79
- })
80
- }
81
- }
82
- upload(file) {
83
- return new Promise((resolve) => {
84
- /* this._initRequest();
85
- this._initListeners( resolve, reject, file );
86
- this._sendRequest( file );*/
87
- this.uploadFile(file, resolve)
88
- })
89
- }
90
- uploadFile(file, resolve) {
91
- let imgInfo = {
92
- url: '',
93
- }
94
- let res = multipartUpload(
95
- ossConfig,
96
- file,
97
- null,
98
- imgInfo
99
- );
100
- console.log(res,'resprespresp');
101
- res.then(resp => {
102
- imgInfo.url = ossFileUrl(ossConfig, resp.name)
103
- console.log(resp,'resprespresp');
104
- console.log(imgInfo)
105
- resolve({
106
- default: imgInfo.url
107
- })
108
- })
109
- }
110
- }
@@ -1,12 +0,0 @@
1
- import Plugin from "@ckeditor/ckeditor5-core/src/plugin";
2
- import ImageCommand from "./command";
3
- export default class MyimageUpload extends Plugin {
4
- static get pluginName() {
5
- return "imageUpload";
6
- }
7
- init() {
8
- const editor = this.editor;
9
- // 注册一个 BoldCommand 命令
10
- editor.commands.add('imageUpload', new ImageCommand(editor));
11
- }
12
- }
@@ -1,12 +0,0 @@
1
- import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
2
- import ToolbarUI from './toolbar-ui'
3
- import ImageUpload from './editing'
4
-
5
- export default class MyimageUpload extends Plugin {
6
- static get requires() {
7
- return [ImageUpload, ToolbarUI];
8
- }
9
- static get pluginName() {
10
- return 'MyimageUpload';
11
- }
12
- }
@@ -1,41 +0,0 @@
1
- /* eslint-disable */
2
- import Plugin from "@ckeditor/ckeditor5-core/src/plugin";
3
- import ButtonView from "@ckeditor/ckeditor5-ui/src/button/buttonview";
4
- // import aoteman from "@ckeditor/ckeditor5-basic-styles/theme/icons/bold.svg";
5
-
6
- // console.log(aoteman.replace('/',''));
7
- export default class BoldToolbarUI extends Plugin {
8
- init() {
9
- this._createToolbarButton();
10
- }
11
-
12
- _createToolbarButton() {
13
- const editor = this.editor;
14
- const command = editor.commands.get('imageUpload');
15
- editor.ui.componentFactory.add('MyimageUpload', (locale) => {
16
- const view = new ButtonView(locale);
17
- view.set({
18
- label: '上传图片',
19
- tooltip: true,
20
- withText: true, // 在按钮上展示 label
21
- // icon:`<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
22
- // viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
23
- // <path d="M182,4.2H18c-9.9,0-18,8-18,18l0,0v156c0.2,9.7,8.3,17.5,18,17.5h164c9.7,0,17.8-7.8,18-17.5v-156C200,12.3,192,4.2,182,4.2
24
- // z M152.5,101.2c-3.1-2.3-7.5-2.3-10.6,0l-31.1,26.1L67.9,58.5c-3.4-3.7-8.9-3.9-12.6-0.6c-0.2,0.2-0.3,0.3-0.6,0.6L18,99.3V22.2h164
25
- // v91.3L152.5,101.2z" fill="#333333"/>
26
- // <path d="M145.8,38.3c-14,0-25.3,11.3-25.3,25.3s11.3,25.3,25.3,25.3s25.3-11.3,25.3-25.3l0,0C171.1,49.6,159.7,38.3,145.8,38.3z
27
- // M145.8,70.3c-4,0-7.3-3.2-7.3-7.3s3.2-7.3,7.3-7.3s7.3,3.2,7.3,7.3c0.2,4-2.8,7.4-6.8,7.6c-0.1,0-0.3,0-0.4,0V70.3z" fill="#333333"/>
28
- // </svg>`,
29
- class:'icon'
30
- });
31
-
32
- // console.log(Template);
33
- // 将按钮的状态关联到命令对应值上
34
- view.bind("isOn", "isEnabled").to(command, "value", "isEnabled");
35
- // 点击按钮时触发相应命令
36
- this.listenTo(view, "execute", () => editor.execute('imageUpload'));
37
- return view;
38
-
39
- })
40
- }
41
- }
@@ -1,182 +0,0 @@
1
- import Command from "@ckeditor/ckeditor5-core/src/command";
2
- import { multipartUpload, ossFileUrl } from "../AliyunIssUtil";
3
- import { v4 as uuidv4 } from "uuid";
4
-
5
- const ossConfig = {
6
- region: "oss-cn-zhangjiakou",
7
- //云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用STS方式来进行API访问
8
- accessKeyId: "LTAI4G3QtdEdwkEbihBngAsK",
9
- accessKeySecret: "OwgdVfc5PeCkIgqIdug660xmiSPchn",
10
- // stsToken: '<Your securityToken(STS)>',
11
- bucket: "guoranopen-zjk",
12
- }
13
-
14
- function findListener(askPluginListeners, type) {
15
- for (let i = 0, len = askPluginListeners.length; i < len; i++) {
16
- if (askPluginListeners[i].event === type) {
17
- return askPluginListeners[i];
18
- }
19
- }
20
- }
21
-
22
- export default class FileCommand extends Command {
23
- refresh() {
24
- this.isEnabled = true;
25
- }
26
- execute(file) {
27
- if (file){
28
- this.forEachFiles(file.file)
29
- return
30
- }
31
- var inputObj = document.createElement('input')
32
- inputObj.setAttribute('id', '_ef');
33
- inputObj.setAttribute('type', 'file');
34
- inputObj.setAttribute('accept','*')
35
- inputObj.setAttribute('multiple', true)
36
- inputObj.setAttribute("style", 'visibility:hidden');
37
- document.body.appendChild(inputObj);
38
- inputObj.click();
39
- inputObj.onchange = () => {
40
- // 循环上传文件
41
- let files = inputObj.files;
42
- for (let index = 0; index < files.length; index++) {
43
- const filed = files[index];
44
- let uid = uuidv4()
45
- let command = this.editor.commands.get("insertAskComponent");
46
- const listeners = this.editor.config.get('askPluginListener');
47
- let beforeButtonInsert = findListener(listeners, "UPLOAD");
48
- if(filed.type.includes('image')) {
49
- if(this.editor.uploadImg) {
50
- this.editor.uploadImg.push(uid)
51
- } else {
52
- this.editor.uploadImg = []
53
- this.editor.uploadImg.push(uid)
54
- }
55
- this.ImgUploadCallback({ command, filed, uid, index, beforeButtonInsert})
56
- } else {
57
- this.FileUploadCallback({ command, filed, uid ,beforeButtonInsert})
58
- }
59
- }
60
- }
61
- }
62
- ImgUploadCallback({command, filed, uid, index}){
63
- command.execute({
64
- tag: "span-editable",
65
- options: {
66
- name: filed.name + '正在上传...',
67
- data: uid,
68
- editable:false,
69
- type:'upload'
70
- },
71
- })
72
- this.upload(filed).then(res =>{
73
- this.delChildrenNode('image')
74
- command.execute({
75
- tag: "img",
76
- options: {
77
- width:'100%',
78
- alt: filed.name + index,
79
- src: res.default
80
- },
81
- });
82
- this.editor.execute('insertParagraph', {
83
- position: this.editor.model.document.selection.focus
84
- })
85
- })
86
- }
87
- FileUploadCallback({filed, uid, beforeButtonInsert}) {
88
- beforeButtonInsert.process({
89
- type: "UPLOAD",
90
- param:{
91
- uid:uid,
92
- type:'pending',
93
- name:filed.name
94
- }
95
- });
96
- this.upload(filed).then(res =>{
97
- beforeButtonInsert.process({
98
- type: "UPLOAD",
99
- param:{
100
- uid: uid,
101
- name:filed.name,
102
- type:'success',
103
- url: res.default
104
- }
105
- })
106
- })
107
- }
108
- delChildrenNode(type) {
109
- let root = this.editor.model.document.getRoot()
110
- let children = root.getChildren()
111
- for(let child of children){
112
- console.log(child._children._nodes,'child._children._nodes');
113
- for (let index = 0; index < child._children._nodes.length; index++) {
114
- if(child._children._nodes[index].name == 'askComponentPlaceholderContainer'){
115
- if(child._children._nodes[index]._children._nodes[0]) {
116
- let attrs = child._children._nodes[index]._children._nodes[0]._attrs
117
- if(attrs) {
118
- let attrsList = [...attrs.keys()]
119
- for (let j = 0; j < attrsList.length; j++) {
120
- if(attrsList[j] == 'data') {
121
- if(type == 'file') {
122
- this.editor.uploadImg = this.editor.uploadImg.filter(id =>{return id != attrs.get(attrsList[j]).id })
123
- } else {
124
- this.editor.uploadImg = this.editor.uploadImg.filter(id =>{return id != attrs.get(attrsList[j]) })
125
- }
126
- }
127
- }
128
- }
129
- this.editor.model.change(writer => {
130
- writer.remove(child._children._nodes[index]._children._nodes[0]);
131
- });
132
- }
133
- }
134
- }
135
- }
136
- }
137
- forEachFiles(files){
138
- for (let index = 0; index < files.length; index++) {
139
- const filed = files[index];
140
- this.upload(filed).then(res =>{
141
- // 需要回调通知父组件 上传成功
142
- let command = this.editor.commands.get("insertAskComponent");
143
- command.execute({
144
- tag: "span-editable",
145
- options: {
146
- name: filed.name,
147
- data: res.default,
148
- editable:false,
149
- type:'MyFile'
150
- },
151
- })
152
- })
153
- }
154
- }
155
-
156
- upload(file) {
157
- return new Promise((resolve) => {
158
- /* this._initRequest();
159
- this._initListeners( resolve, reject, file );
160
- this._sendRequest( file );*/
161
- this.uploadFile(file, resolve)
162
- })
163
- }
164
- uploadFile(file, resolve) {
165
- let imgInfo = {
166
- url: '',
167
- }
168
- let res = multipartUpload(
169
- ossConfig,
170
- file,
171
- null,
172
- imgInfo
173
- );
174
- res.then(resp => {
175
- imgInfo.url = ossFileUrl(ossConfig, resp.name)
176
- resolve({
177
- name: resp.name,
178
- default: imgInfo.url
179
- })
180
- })
181
- }
182
- }
@@ -1,12 +0,0 @@
1
- import Plugin from "@ckeditor/ckeditor5-core/src/plugin";
2
- import FileCommand from "./common";
3
- export default class MyFileUpload extends Plugin {
4
- static get pluginName() {
5
- return "fileUpload";
6
- }
7
- init() {
8
- const editor = this.editor;
9
- // 注册一个 BoldCommand 命令
10
- editor.commands.add('fileUpload', new FileCommand(editor));
11
- }
12
- }
@@ -1,12 +0,0 @@
1
- import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
2
- import ToolbarUI from './toolbar_ui'
3
- import FieldUpload from './editing'
4
-
5
- export default class MyFileUpload extends Plugin {
6
- static get requires() {
7
- return [FieldUpload, ToolbarUI];
8
- }
9
- static get pluginName() {
10
- return 'MyFileUpload';
11
- }
12
- }
@@ -1,35 +0,0 @@
1
- import Plugin from "@ckeditor/ckeditor5-core/src/plugin";
2
- import ButtonView from "@ckeditor/ckeditor5-ui/src/button/buttonview";
3
- // import aoteman from "@ckeditor/ckeditor5-basic-styles/theme/icons/bold.svg";
4
- // import aoteman from '../../assets/image/2.jpg'
5
-
6
- // console.log(aoteman.replace('/',''));
7
- export default class BoldToolbarUI extends Plugin {
8
- init() {
9
- this._createToolbarButton();
10
- }
11
-
12
- _createToolbarButton() {
13
- const editor = this.editor;
14
- const command = editor.commands.get('fileUpload');
15
- editor.ui.componentFactory.add('MyFileUpload', (locale) => {
16
- const view = new ButtonView(locale);
17
- view.set({
18
- label: '上传图片或附件',
19
- tooltip: true,
20
- withText: true, // 在按钮上展示 label
21
- // icon:`<svg t="1674962541538" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30473" width="14" height="14"><path d="M81.92 432.64L0 732.672V156.672C0 126.976 24.064 102.4 54.272 102.4h256c14.336 0 27.648 5.632 38.4 15.872l110.08 110.08c2.048 2.048 4.608 3.072 7.68 3.072h385.024c29.696 0 54.272 24.064 54.272 54.272v75.776H176.128c-44.544 0-82.944 28.672-94.208 71.168z m931.328-7.168c-9.728-13.824-26.112-20.992-43.008-20.992H175.616c-24.064 0-45.568 16.384-51.712 39.936L12.288 852.992c-7.68 28.672 8.704 58.368 37.888 66.048 4.608 1.024 9.216 2.048 14.336 2.048h794.112c24.064 0 45.568-16.384 51.712-39.936l111.616-409.088c4.608-16.384 1.024-33.28-8.704-46.592z" p-id="30474"></path></svg>`,
22
- // icon:'<svg t="1674984294045" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" style="width: 20px !important;height: 18px !important;" p-id="30878" ><path d="M94.72 444.928L14.848 737.792V175.616C14.848 146.432 38.4 122.88 67.584 122.88H317.44c13.824 0 27.136 5.632 37.376 15.36l107.52 107.52c2.048 2.048 4.608 3.072 7.68 3.072h375.808c29.184 0 52.736 23.552 52.736 52.736v73.728h-711.68c-43.52 0-80.896 28.16-92.16 69.632zM1003.52 437.76c-9.728-13.312-25.6-20.48-41.984-20.48H186.368c-23.552 0-44.544 15.872-50.688 38.912L26.624 855.04c-7.68 28.16 8.704 56.832 36.864 64.512 4.608 1.024 9.216 2.048 13.824 2.048h775.168c23.552 0 44.544-15.872 50.688-38.912l109.056-399.36c4.608-15.872 1.024-32.768-8.704-45.568z" p-id="30879"></path></svg>',
23
- icon:`<svg t="1703581982515" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="74840" width="200" height="200"><path d="M566.839921 866.857572V983.050833c0 22.522042-7.677969 33.271198-29.688146 37.877979-18.427125 4.094917-37.366115 3.583052-55.281375-2.047458-17.403396-5.63051-24.057636-15.867802-24.057636-33.271198v-410.003534c0-7.166104-1.535594-9.213563-9.213562-9.213562-80.36274 0.511865-330.152658 0-410.515399 0-19.450854 0-29.688146-7.166104-34.294927-26.105094-5.118646-19.450854-5.118646-39.925438 0.511865-58.864427 5.118646-16.891531 15.355938-23.545771 32.759333-23.545771h412.562857c7.166104 0 8.189833-1.535594 8.189833-8.189834V41.219994c0-25.081365 7.166104-34.806792 32.247469-38.901708 18.93899-3.583052 38.389844-3.583052 56.305105 4.094917 13.820344 5.63051 20.474583 15.867802 20.474583 30.711875v412.562856c0 6.65424 1.535594 8.189833 8.189833 8.189834h406.932346c23.545771 0 33.783063 7.677969 38.901709 30.711875 4.094917 18.427125 4.094917 37.366115-2.047458 55.281375-5.118646 16.379667-15.355938 23.033906-32.247469 23.033907h-410.515398c-7.166104 0-10.237292 1.023729-9.725428 9.725427 0.511865 40.437302 0.511865 249.789918 0.511865 290.22722z" p-id="74841"></path></svg>`
24
- });
25
-
26
- // console.log(Template);
27
- // 将按钮的状态关联到命令对应值上
28
- view.bind("isOn", "isEnabled").to(command, "value", "isEnabled");
29
- // 点击按钮时触发相应命令
30
- this.listenTo(view, "execute", () => editor.execute('fileUpload'));
31
- return view;
32
-
33
- })
34
- }
35
- }