黑科技来袭!智慧溜井管理平台,重构金属矿山生产新范式
2026/6/15 11:44:53
作为江苏某集团企业的项目负责人,我们近期在企业网站后台管理系统的文章发布模块中面临以下核心需求:
经过市场调研,筛选出以下几款符合基础要求的产品:
KindEditor商业版
UEditor百度商业版
TinyMCE PowerPaste插件
超时代软件OfficeImport套件
WebOffice控件
WordPaster控件
| 评估维度 | KindEditor | UEditor | TinyMCE PP | 超时代软件 | WebOffice |
|---|---|---|---|---|---|
| Word粘贴 | ✔ | ✔ | ✔ | ✔ | ✔ |
| 文档导入 | ✘ | ✔ | ✘ | ✔ | ✔ |
| 微信公众号支持 | ✘ | ✘ | ✘ | ✔ | ✘ |
| 信创全兼容 | ✘ | ✘ | ✘ | ✔ | ✘ |
| IE8支持 | ✔ | ✘ | ✔ | ✔ | ✔ |
| 多框架兼容 | ✔ | ✔ | ✔ | ✔ | ✘ |
| 央企合作案例 | 无 | 无 | 无 | 5+ | 无 |
| 买断价格 | 30万 | 25万 | 15万+ | 88万 | 20万 |
虽然价格在预算上限,但综合考虑以下因素:
[客户端] ←HTTP→ [Nginx] ←HTTP→ [SpringBoot应用] ↳ [MySQL] ↳ [华为云OBS]// main.jsimportVuefrom'vue'importtinymcefrom'tinymce/tinymce'import'tinymce/themes/silver'import'tinymce/plugins/powerpaste'// 超时代增强版PowerPasteimportOfficeImportfrom'@supertimes/office-import'// 超时代插件Vue.prototype.$tinymce=tinymce Vue.use(OfficeImport,{// 华为云OBS配置obs:{endpoint:'your-obs-endpoint',bucket:'your-bucket',ak:'your-access-key',sk:'your-secret-key'},// 图片上传代理uploadHandler:(file)=>{returnnewPromise((resolve)=>{// 调用后端上传接口axios.post('/api/upload',file).then(res=>{resolve(res.data.url)})})}})// 编辑器组件exportdefault{data(){return{content:'',editorInit:{plugins:'powerpaste officeimport',// 启用插件toolbar:'pasteword | importoffice',// 添加工具栏按钮powerpaste_word_import:'merge',// 保留Word样式powerpaste_html_import:'merge',powerpaste_allow_local_images:true}}}}@RestController@RequestMapping("/api/upload")publicclassUploadController{@AutowiredprivateHuaweiObsServiceobsService;@PostMappingpublicResultupload(@RequestParam("file")MultipartFilefile){try{// 验证文件类型StringcontentType=file.getContentType();if(!contentType.startsWith("image/")){returnResult.error("仅支持图片上传");}// 生成唯一文件名StringoriginalFilename=file.getOriginalFilename();StringfileExt=originalFilename.substring(originalFilename.lastIndexOf("."));StringnewFilename=UUID.randomUUID().toString()+fileExt;// 上传到华为云OBSStringurl=obsService.upload(file.getInputStream(),newFilename,contentType);returnResult.ok(url);}catch(Exceptione){returnResult.error("上传失败");}}}@ServicepublicclassHuaweiObsService{privateObsClientobsClient;publicHuaweiObsService(@Value("${huawei.obs.endpoint}")Stringendpoint,@Value("${huawei.obs.ak}")Stringak,@Value("${huawei.obs.sk}")Stringsk){this.obsClient=newObsClient(ak,sk,endpoint);}publicStringupload(InputStreaminput,Stringfilename,StringcontentType){StringbucketName="your-bucket";// 创建上传请求PutObjectRequestrequest=newPutObjectRequest();request.setBucketName(bucketName);request.setObjectKey(filename);request.setInput(input);request.setContentType(contentType);// 执行上传obsClient.putObject(request);// 返回访问URLreturnString.format("https://%s.%s/%s",bucketName,obsClient.getEndpoint(),filename);}}超时代软件提供的解决方案采用以下技术实现跨平台兼容:
授权模式:推荐选择88万买断方案,包含:
实施流程:
签订合同 → 支付首款(50%) → 环境对接 → 部署测试 → 验收支付尾款(50%)风险控制:
constcheerio=require('cheerio');constaxios=require('axios');constfs=require('fs');constpath=require('path');asyncfunctiondownloadWechatImages(url,saveDir){// 获取公众号文章HTMLconstres=awaitaxios.get(url);const$=cheerio.load(res.data);// 查找所有图片constimages=[];$('img').each((i,elem)=>{constsrc=$(elem).attr('data-src')||$(elem).attr('src');if(src&&!src.startsWith('data:')){images.push(src);}});// 下载并替换图片constreplacements={};for(constimgUrlofimages){try{constimgRes=awaitaxios.get(imgUrl,{responseType:'arraybuffer'});constfilename=path.basename(newURL(imgUrl).pathname);constlocalPath=path.join(saveDir,filename);fs.writeFileSync(localPath,imgRes.data);replacements[imgUrl]=`/uploads/${filename}`;}catch(e){console.error(`下载图片失败:${imgUrl}`,e);}}// 替换HTML中的图片链接lethtml=res.data;for(const[orig,repl]ofObject.entries(replacements)){html=html.replace(newRegExp(escapeRegExp(orig),'g'),repl);}returnhtml;}functionescapeRegExp(string){returnstring.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');}@ServicepublicclassWordParseService{publicStringparseWordDocument(byte[]fileData)throwsException{// 使用POI解析Word文档try(InputStreamis=newByteArrayInputStream(fileData);XWPFDocumentdoc=newXWPFDocument(is)){// 处理文档中的图片Listpictures=doc.getAllPictures();MapimageMap=processPictures(pictures);// 转换文档为HTMLWordToHtmlConverterconverter=newWordToHtmlConverter();converter.processDocument(doc);// 获取转换后的HTMLStringhtml=converter.getHtml();// 替换图片引用for(Map.Entryentry:imageMap.entrySet()){html=html.replace(entry.getKey(),entry.getValue());}returnhtml;}}privateMapprocessPictures(Listpictures){MapimageMap=newHashMap<>();for(XWPFPictureDatapicture:pictures){try{byte[]data=picture.getData();StringmimeType=picture.getMimeType();Stringext=getFileExtension(mimeType);// 上传到OBSStringfilename="img_"+UUID.randomUUID()+ext;Stringurl=obsService.upload(newByteArrayInputStream(data),filename,mimeType);// 映射关系: 原始引用 → 新的URLimageMap.put(picture.getFileName(),url);}catch(Exceptione){log.error("图片处理失败",e);}}returnimageMap;}privateStringgetFileExtension(StringmimeType){switch(mimeType){case"image/png":return".png";case"image/jpeg":return".jpg";case"image/gif":return".gif";default:return".dat";}}}基于全面的技术评估和商务分析,建议采用超时代软件OfficeImport套件解决方案,理由如下:
建议立即启动采购流程,并在测试环境中进行技术验证,预计整体实施周期约3-4周可完成全集团部署。
npm install jquery// 引入tinymce-vueimportEditorfrom'@tinymce/tinymce-vue'import{WordPaster}from'../../static/WordPaster/js/w'import{zyOffice}from'../../static/zyOffice/js/o'import{zyCapture}from'../../static/zyCapture/z'//添加导入excel工具栏按钮(function(){'use strict';varglobal=tinymce.util.Tools.resolve('tinymce.PluginManager');functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor).importExcel()}varregister$1=function(editor){editor.ui.registry.addButton('excelimport',{text:'',tooltip:'导入Excel文档',onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem('excelimport',{text:'',tooltip:'导入Excel文档',onAction:function(){selectLocalImages(editor)}});};varButtons={register:register$1};functionPlugin(){global.add('excelimport',function(editor){Buttons.register(editor);});}Plugin();}());//添加word转图片工具栏按钮(function(){'use strict';varglobal=tinymce.util.Tools.resolve('tinymce.PluginManager');functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().importWordToImg()}varregister$1=function(editor){editor.ui.registry.addButton('importwordtoimg',{text:'',tooltip:'Word转图片',onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem('importwordtoimg',{text:'',tooltip:'Word转图片',onAction:function(){selectLocalImages(editor)}});};varButtons={register:register$1};functionPlugin(){global.add('importwordtoimg',function(editor){Buttons.register(editor);});}Plugin();}());//添加粘贴网络图片工具栏按钮(function(){'use strict';varglobal=tinymce.util.Tools.resolve('tinymce.PluginManager');functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().UploadNetImg()}varregister$1=function(editor){editor.ui.registry.addButton('netpaster',{text:'',tooltip:'网络图片一键上传',onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem('netpaster',{text:'',tooltip:'网络图片一键上传',onAction:function(){selectLocalImages(editor)}});};varButtons={register:register$1};functionPlugin(){global.add('netpaster',function(editor){Buttons.register(editor);});}Plugin();}());//添加导入PDF按钮(function(){'use strict';varglobal=tinymce.util.Tools.resolve('tinymce.PluginManager');functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().ImportPDF()}varregister$1=function(editor){editor.ui.registry.addButton('pdfimport',{text:'',tooltip:'导入pdf文档',onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem('pdfimport',{text:'',tooltip:'导入pdf文档',onAction:function(){selectLocalImages(editor)}});};varButtons={register:register$1};functionPlugin(){global.add('pdfimport',function(editor){Buttons.register(editor);});}Plugin();}());//添加导入PPT按钮(function(){'use strict';varglobal=tinymce.util.Tools.resolve('tinymce.PluginManager');functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor);WordPaster.getInstance().importPPT()}varregister$1=function(editor){editor.ui.registry.addButton('pptimport',{text:'',tooltip:'导入PowerPoint文档',onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem('pptimport',{text:'',tooltip:'导入PowerPoint文档',onAction:function(){selectLocalImages(editor)}});};varButtons={register:register$1};functionPlugin(){global.add('pptimport',function(editor){Buttons.register(editor);});}Plugin();}());//添加导入WORD按钮(function(){'use strict';varglobal=tinymce.util.Tools.resolve('tinymce.PluginManager');functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor).importWord()}varregister$1=function(editor){editor.ui.registry.addButton('wordimport',{text:'',tooltip:'导入Word文档',onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem('wordimport',{text:'',tooltip:'导入Word文档',onAction:function(){selectLocalImages(editor)}});};varButtons={register:register$1};functionPlugin(){global.add('wordimport',function(editor){Buttons.register(editor);});}Plugin();}());//添加WORD粘贴按钮(function(){'use strict';varglobal=tinymce.util.Tools.resolve('tinymce.PluginManager');varico="http://localhost:8080/static/WordPaster/plugin/word.png"functionselectLocalImages(editor){WordPaster.getInstance().SetEditor(editor).PasteManual()}varregister$1=function(editor){editor.ui.registry.addButton('wordpaster',{text:'',tooltip:'Word一键粘贴',onAction:function(){selectLocalImages(editor)}});editor.ui.registry.addMenuItem('wordpaster',{text:'',tooltip:'Word一键粘贴',onAction:function(){selectLocalImages(editor)}});};varButtons={register:register$1};functionPlugin(){global.add('wordpaster',function(editor){Buttons.register(editor);});}Plugin();}());在线代码:
// 插件plugins:{type:[String,Array],// default: 'advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools importcss insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars'default:'autoresize code autolink autosave image imagetools paste preview table powertables'},点击查看在线代码
// 初始化WordPaster.getInstance({// 上传接口:http://www.ncmem.com/doc/view.aspx?id=d88b60a2b0204af1ba62fa66288203edPostUrl:'http://localhost:8891/upload.aspx',// 为图片地址增加域名:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936ImageUrl:'http://localhost:8891{url}',// 设置文件字段名称:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:'file',// 提取图片地址:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1ImageMatch:''})在编辑器中增加功能按钮
一键粘贴Word内容,自动上传Word中的图片,保留文字样式。
一键导入Word文件,并将Word文件转换成图片上传到服务器中。
一键导入PDF文件,并将PDF转换成图片上传到服务器中。
一键导入PPT文件,并将PPT转换成图片上传到服务器中。
一键自动上传网络图片。
点击下载完整示例