vxe-table-demonic
Version:
一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...
1 lines • 6.01 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.createFrame=createFrame,exports.createHtmlPage=createHtmlPage,exports.getExportBlobByContent=getExportBlobByContent,exports.handlePrint=handlePrint,exports.saveLocalFile=exports.readLocalFile=void 0;var fileForm,fileInput,printFrame,_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_log=require("../../tools/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var defaultHtmlStyle='body{margin:0;padding: 0 1px;color:#333333;font-size:14px;font-family:"Microsoft YaHei",微软雅黑,"MicrosoftJhengHei",华文细黑,STHeiti,MingLiu}body *{-webkit-box-sizing:border-box;box-sizing:border-box}.vxe-table{border-collapse:collapse;text-align:left;border-spacing:0}.vxe-table:not(.is--print){table-layout:fixed}.vxe-table,.vxe-table th,.vxe-table td,.vxe-table td{border-color:#D0D0D0;border-style:solid;border-width:0}.vxe-table.is--print{width:100%}.border--default,.border--full,.border--outer{border-top-width:1px}.border--default,.border--full,.border--outer{border-left-width:1px}.border--outer,.border--default th,.border--default td,.border--full th,.border--full td,.border--outer th,.border--inner th,.border--inner td{border-bottom-width:1px}.border--default,.border--outer,.border--full th,.border--full td{border-right-width:1px}.border--default th,.border--full th,.border--outer th{background-color:#f8f8f9}.vxe-table td>div,.vxe-table th>div{padding:.5em .4em}.col--center{text-align:center}.col--right{text-align:right}.vxe-table:not(.is--print) .col--ellipsis>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.vxe-table--tree-node{text-align:left}.vxe-table--tree-node-wrapper{position:relative}.vxe-table--tree-icon-wrapper{position:absolute;top:50%;width:1em;height:1em;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-table--tree-unfold-icon,.vxe-table--tree-fold-icon{position:absolute;width:0;height:0;border-style:solid;border-width:.5em;border-right-color:transparent;border-bottom-color:transparent}.vxe-table--tree-unfold-icon{left:.3em;top:0;border-left-color:#939599;border-top-color:transparent}.vxe-table--tree-fold-icon{left:0;top:.3em;border-left-color:transparent;border-top-color:#939599}.vxe-table--tree-cell{display:block;padding-left:1.5em}.vxe-table input[type="checkbox"]{margin:0}.vxe-table input[type="checkbox"],.vxe-table input[type="radio"],.vxe-table input[type="checkbox"]+span,.vxe-table input[type="radio"]+span{vertical-align:middle;padding-left:0.4em}';function createFrame(){var e=document.createElement("iframe");return e.className="vxe-table--print-frame",e}function getExportBlobByContent(e,t){return new Blob([e],{type:"text/".concat(t.type,";charset=utf-8;")})}function createHtmlPage(e,t){var r=e.style;return["<!DOCTYPE html><html>","<head>",'<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">',"<title>".concat(e.sheetName,"</title>"),"<style>".concat(defaultHtmlStyle,"</style>"),r?"<style>".concat(r,"</style>"):"","</head>","<body>".concat(t,"</body>"),"</html>"].join("")}var readLocalFile=function(e){var c=Object.assign({},e);return fileForm||(fileForm=document.createElement("form"),fileInput=document.createElement("input"),fileForm.className="vxe-table--file-form",fileInput.name="file",fileInput.type="file",fileForm.appendChild(fileInput),document.body.appendChild(fileForm)),new Promise(function(a,l){var i=c.types||[],d=!i.length||i.some(function(e){return"*"===e});fileInput.multiple=!!c.multiple,fileInput.accept=d?"":".".concat(i.join(", .")),fileInput.onchange=function(e){var t=e.target.files,e=t[0],r="";if(!d)for(var o=0;o<t.length;o++){var n=(0,_utils.parseFile)(t[o]).type;if(!_xeUtils.default.includes(i,n)){r=n;break}}r?(!1!==c.message&&("development"!==process.env.NODE_ENV||_vXETable.VXETable.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_vXETable.VXETable.modal.message({content:_conf.default.i18n("vxe.error.notType",[r]),status:"error"})),l({status:!1,files:t,file:e})):a({status:!0,files:t,file:e})},fileForm.reset(),fileInput.click()})};function removePrintFrame(){if(printFrame){if(printFrame.parentNode){try{printFrame.contentDocument.write("")}catch(e){}printFrame.parentNode.removeChild(printFrame)}printFrame=null}}function appendPrintFrame(){printFrame.parentNode||document.body.appendChild(printFrame)}function afterPrintEvent(){requestAnimationFrame(removePrintFrame)}function handlePrint(e,t,r){void 0===r&&(r="");var o=t.beforePrintMethod,o=getExportBlobByContent(r=createHtmlPage(t,r=o?o({content:r,options:t,$table:e})||"":r),t);_dom.browse.msie?(removePrintFrame(),printFrame=createFrame(),appendPrintFrame(),printFrame.contentDocument.write(r),printFrame.contentDocument.execCommand("print")):(printFrame||((printFrame=createFrame()).onload=function(e){e.target.src&&(e.target.contentWindow.onafterprint=afterPrintEvent,e.target.contentWindow.print())}),appendPrintFrame(),printFrame.src=URL.createObjectURL(o))}exports.readLocalFile=readLocalFile;var saveLocalFile=function(e){var t,r,o=e.filename,n=e.type,a=e.content,o="".concat(o,".").concat(n);return window.Blob?(n=a instanceof Blob?a:getExportBlobByContent(_xeUtils.default.toValueString(a),e),navigator.msSaveBlob?navigator.msSaveBlob(n,o):(t=URL.createObjectURL(n),(r=document.createElement("a")).target="_blank",r.download=o,r.href=t,document.body.appendChild(r),r.click(),requestAnimationFrame(function(){r.parentNode&&r.parentNode.removeChild(r),URL.revokeObjectURL(t)})),Promise.resolve()):Promise.reject(new Error((0,_log.getLog)("vxe.error.notExp")))};exports.saveLocalFile=saveLocalFile;