推荐模版 我的收藏 我的购买 我的上传
用户登录

+86

首次登录将为您自动注册成为会员

ban

nian

huo

la

更多折扣,牛转乾坤


`){ InsertUeditor(`


这么多年货有你想要的吗
准备好迎接新年了吗
年货大集拉开序幕
赶紧挑选你中意的好货吧!


碧螺春

参考价格:¥188

果汁

参考价格:¥20

过年各种饮料也不可少。有大人们爱碰上一杯的小酒,有孩子们爱喝的碳酸饮料、果汁。


茶酒饮料


五香瓜子

参考价格:¥18.8

过年想吃水果,但天气太冷不想洗不想削皮怎么办?多种种类的水果干,口感良好,少糖更健康,在严寒的北方也能品尝到热带水果。


瓜子点心




水果干

参考价格:¥18.8

过年想吃水果,但天气太冷不想洗不想削皮怎么办?多种种类的水果干,口感良好,少糖更健康,在严寒的北方也能品尝到热带水果。


蜜饯干果




过年代表着辞旧迎新
代表着家人团聚
更代表着有许许多多好吃的
更多年货好货
赶紧看过来吧


ban

nian

huo

la

更多折扣,牛转乾坤


`); }else{ InsertUeditor(mystorage.get('cookie_content')); } }); // 添加文件上传功能 function is_upload_word(type) { // 创建隐藏的文件输入框 var fileInput = $(''); // 根据不同类型设置接受的文件格式 switch(type) { case 1: // WORD文档 fileInput.attr('accept', '.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document'); break; case 2: // EXCEL文档 fileInput.attr('accept', '.xls,.xlsx,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); break; case 3: // PDF文档 fileInput.attr('accept', '.pdf,application/pdf'); break; case 4: // MP3音频 fileInput.attr('accept', '.mp3,audio/mpeg'); break; } // 监听文件选择事件 fileInput.on('change', function(e) { if (this.files && this.files[0]) { // 这里可以添加实际的上传逻辑 //console.log('选择了文件:', this.files[0]); //alert('选择了文件: ' + this.files[0].name + '\n现在应该执行上传操作'); // 实际使用中,这里应该调用上传API // uploadFile(this.files[0], type); const file = this.files[0]; if (file && file.type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') { const reader = new FileReader(); reader.onload = function(e) { const arrayBuffer = e.target.result; mammoth.convertToHtml({arrayBuffer: arrayBuffer}) .then(function(result){ const cleanText = result.value; InsertUeditor(cleanText); }) .catch(function(err){ layer.alert("读取Word文档失败:"+err,{title:'提示',icon:2,shade:.5}); }); }; reader.readAsArrayBuffer(file); } else if (file && file.name.endsWith('.doc')) { // 添加对 .doc 文件的支持 const reader = new FileReader(); reader.onload = function(e) { const arrayBuffer = e.target.result; mammoth.convertToHtml({arrayBuffer: arrayBuffer}) .then(function(result){ const cleanText = result.value; InsertUeditor(cleanText); }) .catch(function(err){ layer.alert("请将文件格式转为docx后再来上传",{title:'提示',icon:2,shade:.5}); }); }; reader.readAsArrayBuffer(file); }else if (file && (file.name.endsWith('.xlsx') || file.name.endsWith('.xls'))) { const reader = new FileReader(); reader.onload = function(e) { const arrayBuffer = e.target.result; try { // ✅ 这一行是关键:SheetJS 自动识别 .xls 和 .xlsx const workbook = XLSX.read(arrayBuffer, { type: 'array' }); if (!workbook.SheetNames || workbook.SheetNames.length === 0) { layer.alert("文件中没有工作表", { title: '提示', icon: 2 }); return; } const firstSheet = workbook.Sheets[workbook.SheetNames[0]]; const data = XLSX.utils.sheet_to_json(firstSheet, { header: 1, defval: '' }); console.log("解析出的数据:", data); // ✅ 看看 .xls 文件是否有数据 if (!data || data.length === 0) { layer.alert("文件为空或无法解析数据", { title: '提示', icon: 2 }); return; } let html = ''; data.forEach((row, i) => { html += ''; row.forEach(cell => { const text = cell == null ? '' : String(cell); html += ``; }); html += ''; }); html += '
${text}
'; InsertUeditor(html); } catch (err) { console.error("解析 Excel 失败:", err); layer.alert("解析失败:" + err.message, { title: '错误', icon: 2 }); } }; reader.readAsArrayBuffer(file); }else if (file && file.type === 'application/pdf') { pdfjsLib.GlobalWorkerOptions.workerSrc = '/static/pdf/pdf.worker.min.js'; const reader = new FileReader(); reader.onload = function(e) { const arrayBuffer = e.target.result; // 使用 pdf.js 加载 PDF 文档 // 指定 CMap 路径以支持中文等复杂字符集 pdfjsLib.getDocument({ data: new Uint8Array(arrayBuffer), cMapUrl: '/static/pdf/bcmaps/', // 确保该路径下有正确的 CMap 文件 cMapPacked: true // CMap 文件是压缩格式 }).promise.then(function(pdf) { let allText = ''; // 存储所有页面的文本内容 // 遍历每一页,提取文本 const promises = []; for (let pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++) { promises.push( pdf.getPage(pageNumber).then(function(page) { return page.getTextContent().then(function(textContent) { // 提取每页的文字 return textContent.items.map(item => item.str).join(' '); }); }) ); } // 等待所有页面文本提取完成 Promise.all(promises) .then(function(pagesText) { allText = pagesText.join(' '); // 合并所有页面文本 InsertUeditor(allText); }) .catch(function(err) { layer.alert("读取PDF文档失败: " + err.message, { title: '提示', icon: 2, shade: 0.5 }); }); }).catch(function(err) { layer.alert("加载PDF文档失败: " + err.message, { title: '提示', icon: 2, shade: 0.5 }); }); }; // 开始读取文件(确保 file 已定义) reader.readAsArrayBuffer(file); } else if (file && file.type === 'audio/mpeg') { alert(111); } } // 在处理完文件选择后移除输入框 $(this).remove(); }); // 触发文件选择 $('body').append(fileInput); fileInput.click(); } //生成图片、PDF和视频功能 function is_download(type) { if (!$.cookie('login_status') || $.cookie('login_status') == 0) { layer.msg('请登录后再操作', { icon: 2, shade: 0.8, time: 2000 }); window.setTimeout(function () { window.location.href = '/index/index/jump_login.html'; }, 2500); return false; } var iframe = document.getElementById('ueditor_0'); var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; // 先滚动 body iframeDocument.body.scrollTop = 0; iframeDocument.documentElement.scrollTop = 0; var $body = $("#ueditor_0").contents().find('body'); $body.css({ 'background-color': '#fff', 'width': 'auto', // 根据需要调整宽度 'height': 'auto' // 根据需要调整高度 }); var _canvas = $("#ueditor_0").contents().find('body'); //生成图片 if(type == 1){ var opts = { logging: false, useCORS: true, backgroundColor: '#FFFFFF' }; // 1. 找到所有视频元素并临时隐藏 var videos = _canvas.querySelectorAll('video'); var hiddenVideos = []; videos.forEach(function(video) { hiddenVideos.push({ element: video, display: video.style.display }); video.style.display = 'none'; // 隐藏视频 }); // 2. 截图 html2canvas(_canvas, opts).then(function(canvas) { var htmltoimgurl = canvas.toDataURL("image/jpg") .replace("image/jpg", "image/octet-stream"); fileDownload(htmltoimgurl); // 3. 截图完成后恢复视频显示 restoreVideos(); }); // 恢复视频显示 function restoreVideos() { hiddenVideos.forEach(function(item) { item.element.style.display = item.display; // 恢复原始 display 值 }); } // 防止意外失败时也能恢复(可选) window.addEventListener('beforeunload', restoreVideos); } //生成pdf if (type == 2) { try { var content = UE.getEditor('editor').getContent(); var loadindex = layer.load(0, {shade: 0.5,time:0}); $.ajax({ type: 'post', url:'/api/pdf/down.html', data: {content:content}, dataType: 'json', success: function(response){ layer.close(loadindex); if (response.code == 0) { const link = document.createElement('a'); link.href = response.url; link.download = ''; // 使用服务器文件名 document.body.appendChild(link); link.click(); document.body.removeChild(link); } else { layer.msg(response.msg, { shade: 0.5, time: 1500 }); } }, error:function() { layer.close(loadindex); layer.msg('操作失败',{shade: 0.5,icon:5,time:1500}); } }); } catch (err) { console.error("❌ 初始化失败:", err); alert("初始化失败:" + err.message); } } //生成视频 if(type == 3){ var opts = { logging: false, //日志开关,便于查看html2canvas的内部执行流程 useCORS: true, // 【重要】开启跨域配置 backgroundColor: '#FFFFFF' // 设置背景颜色为白色 }; var htmltoimgurl; html2canvas(_canvas,opts).then(function (canvas) { // ✅ 关键:使用 toBlob 而不是 toDataURL canvas.toBlob(function(blob) { // 创建 FormData var formData = new FormData(); formData.append('image', blob, 'screenshot.jpg'); // 文件名可自定义 var loadindex = layer.load(0, {shade: 0.5,time:0}); // 发送请求 $.ajax({ url: '/api/video/down.html', type: 'POST', data: formData, processData: false, // ✅ 必须:不处理数据 contentType: false, // ✅ 必须:让浏览器自动设置 content-type dataType: 'json', success: function(res) { layer.close(loadindex); if (res.success) { const link = document.createElement('a'); link.href = res.video; link.download = ''; // 使用服务器文件名 document.body.appendChild(link); link.click(); document.body.removeChild(link); } else { alert('上传失败: ' + res.msg); } }, error: function(xhr, status, err) { alert('上传失败: ' + err); console.error(xhr.responseText); } }); }, 'image/jpeg', 0.95); // jpeg 格式,95% 质量 }); // var $body = $("#ueditor_0").contents().find('body'); // $body.css({ // 'background-color': '#fff', // 'overflow': 'hidden', // 'width': 'auto', // 'height': 'auto' // }); // // var _canvas = $body[0]; // 注意:传入 DOM 元素,不是 jQuery 对象 // var opts = { // logging: false, // useCORS: true, // backgroundColor: '#FFFFFF', // scale: 2 // }; // // html2canvas(_canvas, opts).then(function (canvas) { // // ✅ 关键:使用 toBlob 而不是 toDataURL // canvas.toBlob(function(blob) { // // 创建 FormData // var formData = new FormData(); // formData.append('image', blob, 'screenshot.jpg'); // 文件名可自定义 // var loadindex = layer.load(0, {shade: 0.5,time:0}); // // 发送请求 // $.ajax({ // url: '/api/video/down.html', // type: 'POST', // data: formData, // processData: false, // ✅ 必须:不处理数据 // contentType: false, // ✅ 必须:让浏览器自动设置 content-type // dataType: 'json', // success: function(res) { // layer.close(loadindex); // if (res.success) { // const link = document.createElement('a'); // link.href = res.video; // link.download = ''; // 使用服务器文件名 // // document.body.appendChild(link); // link.click(); // document.body.removeChild(link); // } else { // alert('上传失败: ' + res.msg); // } // }, // error: function(xhr, status, err) { // alert('上传失败: ' + err); // console.error(xhr.responseText); // } // }); // }, 'image/jpeg', 0.95); // jpeg 格式,95% 质量 // }); } }