diff --git a/OrangeFormsOpen-VUE3/index.html b/OrangeFormsOpen-VUE3/index.html index ad5c1710..85706d65 100644 --- a/OrangeFormsOpen-VUE3/index.html +++ b/OrangeFormsOpen-VUE3/index.html @@ -4,6 +4,8 @@ + + 橙单代码生成平台 diff --git a/OrangeFormsOpen-VUE3/package.json b/OrangeFormsOpen-VUE3/package.json index ec5de7ec..662ae03e 100644 --- a/OrangeFormsOpen-VUE3/package.json +++ b/OrangeFormsOpen-VUE3/package.json @@ -15,6 +15,7 @@ "ace-builds": "^1.32.2", "axios": "^1.5.1", "bpmn-js-token-simulation": "^0.10.0", + "diagram-js": "^6.8.2", "clipboard": "^2.0.11", "core-js": "^3.8.3", "crypto-js": "^4.2.0", @@ -27,6 +28,7 @@ "json-bigint": "^1.0.0", "pinia": "^2.1.6", "pinia-plugin-persist": "^1.0.0", + "print-js": "^1.6.0", "vant": "^4.7.3", "vue": "^3.3.8", "vue-draggable-plus": "0.3.1", @@ -51,8 +53,8 @@ "@vue/cli-plugin-vuex": "~5.0.0", "@vue/cli-service": "~5.0.0", "autoprefixer": "^10.4.16", - "bpmn-js": "^7.4.0", - "bpmn-js-properties-panel": "^0.37.2", + "bpmn-js": "7.5.0", + "bpmn-js-properties-panel": "0.37.6", "eslint": "^8.30.0", "eslint-config-prettier": "^8.5.0", "eslint-import-resolver-typescript": "^3.6.1", diff --git a/OrangeFormsOpen-VUE3/public/lib/print/print.css b/OrangeFormsOpen-VUE3/public/lib/print/print.css new file mode 100644 index 00000000..fbb156de --- /dev/null +++ b/OrangeFormsOpen-VUE3/public/lib/print/print.css @@ -0,0 +1,97 @@ +/* +|-------------------------------------------------------------------------- +| Modules +|-------------------------------------------------------------------------- +*/ +/* +|-------------------------------------------------------------------------- +| Aliases +|-------------------------------------------------------------------------- +*/ +/* +|-------------------------------------------------------------------------- +| Partials +|-------------------------------------------------------------------------- +*/ +.printModal { + font-family: sans-serif; + display: flex; + text-align: center; + font-weight: 300; + font-size: 30px; + left: 0; + top: 0; + position: absolute; + color: #045fb4; + width: 100%; + height: 100%; + background-color: rgba(255, 255, 255, 0.9); } + +/* +|-------------------------------------------------------------------------- +| Close Button +|-------------------------------------------------------------------------- +*/ +.printClose { + position: absolute; + right: 10px; + top: 10px; } + +.printClose:before { + content: "\00D7"; + font-family: "Helvetica Neue", sans-serif; + font-weight: 100; + line-height: 1px; + padding-top: 0.5em; + display: block; + font-size: 2em; + text-indent: 1px; + overflow: hidden; + height: 1.25em; + width: 1.25em; + text-align: center; + cursor: pointer; } + +.printSpinner { + margin-top: 3px; + margin-left: -40px; + position: absolute; + display: inline-block; + width: 25px; + height: 25px; + border: 2px solid #045fb4; + border-radius: 50%; + animation: spin 0.75s infinite linear; } + +.printSpinner::before, .printSpinner::after { + left: -2px; + top: -2px; + display: none; + position: absolute; + content: ''; + width: inherit; + height: inherit; + border: inherit; + border-radius: inherit; } + +.printSpinner, .printSpinner::before, .printSpinner::after { + display: inline-block; + border-color: transparent; + border-top-color: #045fb4; + animation-duration: 1.2s; } + +.printSpinner::before { + transform: rotate(120deg); } + +.printSpinner::after { + transform: rotate(240deg); } + +/* Keyframes for the animation */ +@keyframes spin { + from { + transform: rotate(0deg); } + to { + transform: rotate(360deg); } +} + +/*# sourceMappingURL=print.map*/ diff --git a/OrangeFormsOpen-VUE3/public/lib/print/print.js b/OrangeFormsOpen-VUE3/public/lib/print/print.js new file mode 100644 index 00000000..8a8b8305 --- /dev/null +++ b/OrangeFormsOpen-VUE3/public/lib/print/print.js @@ -0,0 +1,992 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["printJS"] = factory(); + else + root["printJS"] = factory(); +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ let installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ let module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ let ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value !== 'string') for(let key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ let getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./src/index.js": +/*! **********************!*\ + !*** ./src/index.js ***! + \**********************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _sass_index_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sass/index.scss */ "./src/sass/index.scss"); +/* harmony import */ let _sass_index_scss__WEBPACK_IMPORTED_MODULE_0___default = /* #__PURE__ */__webpack_require__.n(_sass_index_scss__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ let _js_init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./js/init */ "./src/js/init.js"); + + +let printJS = _js_init__WEBPACK_IMPORTED_MODULE_1__["default"].init; + +if (typeof window !== 'undefined') { + window.printJS = printJS; +} + +/* harmony default export */ __webpack_exports__["default"] = (printJS); + +/***/ }), + +/***/ "./src/js/browser.js": +/*! ***************************!*\ + !*** ./src/js/browser.js ***! + \***************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var Browser = { + // Firefox 1.0+ + isFirefox: function isFirefox() { + return typeof InstallTrigger !== 'undefined'; + }, + // Internet Explorer 6-11 + isIE: function isIE() { + return navigator.userAgent.indexOf('MSIE') !== -1 || !!document.documentMode; + }, + // Edge 20+ + isEdge: function isEdge() { + return !Browser.isIE() && !!window.StyleMedia; + }, + // Chrome 1+ + isChrome: function isChrome() { + let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window; + return !!context.chrome; + }, + // At least Safari 3+: "[object HTMLElementConstructor]" + isSafari: function isSafari() { + return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || navigator.userAgent.toLowerCase().indexOf('safari') !== -1; + }, + // IOS Chrome + isIOSChrome: function isIOSChrome() { + return navigator.userAgent.toLowerCase().indexOf('crios') !== -1; + } +}; +/* harmony default export */ __webpack_exports__["default"] = (Browser); + +/***/ }), + +/***/ "./src/js/functions.js": +/*! *****************************!*\ + !*** ./src/js/functions.js ***! + \*****************************/ +/*! exports provided: addWrapper, capitalizePrint, collectStyles, addHeader, cleanUp, isRawHTML */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addWrapper", function() { return addWrapper; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "capitalizePrint", function() { return capitalizePrint; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "collectStyles", function() { return collectStyles; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addHeader", function() { return addHeader; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanUp", function() { return cleanUp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRawHTML", function() { return isRawHTML; }); +/* harmony import */ let _modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modal */ "./src/js/modal.js"); +/* harmony import */ let _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ "./src/js/browser.js"); +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + + + +function addWrapper(htmlData, params) { + let bodyStyle = 'font-family:' + params.font + ' !important; font-size: ' + params.font_size + ' !important; width:100%;'; + return '
' + htmlData + '
'; +} +function capitalizePrint(obj) { + return obj.charAt(0).toUpperCase() + obj.slice(1); +} +function collectStyles(element, params) { + let win = document.defaultView || window; // String variable to hold styling for each element + + let elementStyle = ''; // Loop over computed styles + + let styles = win.getComputedStyle(element, ''); + + for (let key = 0; key < styles.length; key++) { + // Check if style should be processed + if (params.targetStyles.indexOf('*') !== -1 || params.targetStyle.indexOf(styles[key]) !== -1 || targetStylesMatch(params.targetStyles, styles[key])) { + if (styles.getPropertyValue(styles[key])) elementStyle += styles[key] + ':' + styles.getPropertyValue(styles[key]) + ';'; + } + } // Print friendly defaults (deprecated) + + + // elementStyle += 'max-width: ' + params.maxWidth + 'px !important; font-size: ' + params.font_size + ' !important;'; + elementStyle += 'max-width: ' + params.maxWidth + 'px !important;'; + return elementStyle; +} + +function targetStylesMatch(styles, value) { + for (let i = 0; i < styles.length; i++) { + if (_typeof(value) === 'object' && value.indexOf(styles[i]) !== -1) return true; + } + + return false; +} + +function addHeader(printElement, params) { + // Create the header container div + let headerContainer = document.createElement('div'); // Check if the header is text or raw html + + if (isRawHTML(params.header)) { + headerContainer.innerHTML = params.header; + } else { + // Create header element + let headerElement = document.createElement('h1'); // Create header text node + + let headerNode = document.createTextNode(params.header); // Build and style + + headerElement.appendChild(headerNode); + headerElement.setAttribute('style', params.headerStyle); + headerContainer.appendChild(headerElement); + } + + printElement.insertBefore(headerContainer, printElement.childNodes[0]); +} +function cleanUp(params) { + // If we are showing a feedback message to user, remove it + if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_0__["default"].close(); // Check for a finished loading hook function + + if (params.onLoadingEnd) params.onLoadingEnd(); // If preloading pdf files, clean blob url + + if (params.showModal || params.onLoadingStart) window.URL.revokeObjectURL(params.printable); // Run onPrintDialogClose callback + + let event = 'mouseover'; + + if (_browser__WEBPACK_IMPORTED_MODULE_1__["default"].isChrome() || _browser__WEBPACK_IMPORTED_MODULE_1__["default"].isFirefox()) { + // Ps.: Firefox will require an extra click in the document to fire the focus event. + event = 'focus'; + } + + let handler = function handler() { + // Make sure the event only happens once. + window.removeEventListener(event, handler); + params.onPrintDialogClose(); // Remove iframe from the DOM + + let iframe = document.getElementById(params.frameId); + + if (iframe) { + iframe.remove(); + } + }; + + window.addEventListener(event, handler); +} +function isRawHTML(raw) { + let regexHtml = new RegExp('<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>(.*?)'); + return regexHtml.test(raw); +} + +/***/ }), + +/***/ "./src/js/html.js": +/*! ************************!*\ + !*** ./src/js/html.js ***! + \************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ "./src/js/functions.js"); +/* harmony import */ let _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ "./src/js/print.js"); +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + print: function print(params, printFrame) { + // Get the DOM printable element + let printElement = isHtmlElement(params.printable) ? params.printable : document.getElementById(params.printable); // Check if the element exists + + if (!printElement) { + window.console.error('Invalid HTML element id: ' + params.printable); + return; + } // Clone the target element including its children (if available) + + + params.printableElement = cloneElement(printElement, params); // Add header + + if (params.header) { + Object(_functions__WEBPACK_IMPORTED_MODULE_0__["addHeader"])(params.printableElement, params); + } // Print html element contents + + + _print__WEBPACK_IMPORTED_MODULE_1__["default"].send(params, printFrame); + } +}); + +function cloneElement(element, params) { + // Clone the main node (if not already inside the recursion process) + let clone = element.cloneNode(); // Loop over and process the children elements / nodes (including text nodes) + + let childNodesArray = Array.prototype.slice.call(element.childNodes); + + for (let i = 0; i < childNodesArray.length; i++) { + // Check if we are skipping the current element + if (params.ignoreElements.indexOf(childNodesArray[i].id) !== -1) { + continue; + } // Clone the child element + + + let clonedChild = cloneElement(childNodesArray[i], params); // Attach the cloned child to the cloned parent node + + clone.appendChild(clonedChild); + } // Get all styling for print element (for nodes of type element only) + + + if (params.scanStyles && element.nodeType === 1) { + clone.setAttribute('style', Object(_functions__WEBPACK_IMPORTED_MODULE_0__["collectStyles"])(element, params)); + } // Check if the element needs any state processing (copy user input data) + + + switch (element.tagName) { + case 'SELECT': + // Copy the current selection value to its clone + clone.value = element.value; + break; + + case 'CANVAS': + // Copy the canvas content to its clone + clone.getContext('2d').drawImage(element, 0, 0); + break; + } + + return clone; +} + +function isHtmlElement(printable) { + // Check if element is instance of HTMLElement or has nodeType === 1 (for elements in iframe) + return _typeof(printable) === 'object' && printable && (printable instanceof HTMLElement || printable.nodeType === 1); +} + +/***/ }), + +/***/ "./src/js/image.js": +/*! *************************!*\ + !*** ./src/js/image.js ***! + \*************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ "./src/js/functions.js"); +/* harmony import */ let _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ "./src/js/print.js"); +/* harmony import */ let _browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./browser */ "./src/js/browser.js"); + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + print: function print(params, printFrame) { + // Check if we are printing one image or multiple images + if (params.printable.constructor !== Array) { + // Create array with one image + params.printable = [params.printable]; + } // Create printable element (container) + + + params.printableElement = document.createElement('div'); // Create all image elements and append them to the printable container + + params.printable.forEach(function (src) { + // Create the image element + let img = document.createElement('img'); + img.setAttribute('style', params.imageStyle); // Set image src with the file url + + img.src = src; // The following block is for Firefox, which for some reason requires the image's src to be fully qualified in + // order to print it + + if (_browser__WEBPACK_IMPORTED_MODULE_2__["default"].isFirefox()) { + let fullyQualifiedSrc = img.src; + img.src = fullyQualifiedSrc; + } // Create the image wrapper + + + let imageWrapper = document.createElement('div'); // Append image to the wrapper element + + imageWrapper.appendChild(img); // Append wrapper to the printable element + + params.printableElement.appendChild(imageWrapper); + }); // Check if we are adding a print header + + if (params.header) Object(_functions__WEBPACK_IMPORTED_MODULE_0__["addHeader"])(params.printableElement, params); // Print image + + _print__WEBPACK_IMPORTED_MODULE_1__["default"].send(params, printFrame); + } +}); + +/***/ }), + +/***/ "./src/js/init.js": +/*! ************************!*\ + !*** ./src/js/init.js ***! + \************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser */ "./src/js/browser.js"); +/* harmony import */ let _modal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modal */ "./src/js/modal.js"); +/* harmony import */ let _pdf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pdf */ "./src/js/pdf.js"); +/* harmony import */ let _html__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./html */ "./src/js/html.js"); +/* harmony import */ let _raw_html__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./raw-html */ "./src/js/raw-html.js"); +/* harmony import */ let _image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./image */ "./src/js/image.js"); +/* harmony import */ let _json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./json */ "./src/js/json.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + + + + + + + + +let printTypes = ['pdf', 'html', 'image', 'json', 'raw-html']; +/* harmony default export */ __webpack_exports__["default"] = ({ + init: function init() { + let params = { + printable: null, + fallbackPrintable: null, + type: 'pdf', + header: null, + headerStyle: 'font-weight: 300;', + maxWidth: 800, + properties: null, + gridHeaderStyle: 'font-weight: bold; padding: 5px; border: 1px solid #dddddd;', + gridStyle: 'border: 1px solid lightgray; margin-bottom: -1px;', + showModal: false, + onError: function onError(error) { + throw error; + }, + onLoadingStart: null, + onLoadingEnd: null, + onPrintDialogClose: function onPrintDialogClose() {}, + onIncompatibleBrowser: function onIncompatibleBrowser() {}, + modalMessage: 'Retrieving Document...', + frameId: 'printJS', + printableElement: null, + documentTitle: 'Document', + targetStyle: ['clear', 'display', 'width', 'min-width', 'height', 'min-height', 'max-height'], + targetStyles: ['border', 'box', 'break', 'text-decoration'], + ignoreElements: [], + repeatTableHeader: true, + css: null, + style: null, + scanStyles: true, + base64: false, + // Deprecated + onPdfOpen: null, + font: 'TimesNewRoman', + font_size: '12pt', + honorMarginPadding: true, + honorColor: false, + imageStyle: 'max-width: 100%;' + }; // Check if a printable document or object was supplied + + let args = arguments[0]; + + if (args === undefined) { + throw new Error('printJS expects at least 1 attribute.'); + } // Process parameters + + + switch (_typeof(args)) { + case 'string': + params.printable = encodeURI(args); + params.fallbackPrintable = params.printable; + params.type = arguments[1] || params.type; + break; + + case 'object': + params.printable = args.printable; + params.fallbackPrintable = typeof args.fallbackPrintable !== 'undefined' ? args.fallbackPrintable : params.printable; + params.fallbackPrintable = params.base64 ? "data:application/pdf;base64,".concat(params.fallbackPrintable) : params.fallbackPrintable; + + for (let k in params) { + if (k === 'printable' || k === 'fallbackPrintable') continue; + params[k] = typeof args[k] !== 'undefined' ? args[k] : params[k]; + } + + break; + + default: + throw new Error('Unexpected argument type! Expected "string" or "object", got ' + _typeof(args)); + } // Validate printable + + + if (!params.printable) throw new Error('Missing printable information.'); // Validate type + + if (!params.type || typeof params.type !== 'string' || printTypes.indexOf(params.type.toLowerCase()) === -1) { + throw new Error('Invalid print type. Available types are: pdf, html, image and json.'); + } // Check if we are showing a feedback message to the user (useful for large files) + + + if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_1__["default"].show(params); // Check for a print start hook function + + if (params.onLoadingStart) params.onLoadingStart(); // To prevent duplication and issues, remove any used printFrame from the DOM + + let usedFrame = document.getElementById(params.frameId); + if (usedFrame) usedFrame.parentNode.removeChild(usedFrame); // Create a new iframe for the print job + + let printFrame = document.createElement('iframe'); + + if (_browser__WEBPACK_IMPORTED_MODULE_0__["default"].isFirefox()) { + // Set the iframe to be is visible on the page (guaranteed by fixed position) but hidden using opacity 0, because + // this works in Firefox. The height needs to be sufficient for some part of the document other than the PDF + // viewer's toolbar to be visible in the page + printFrame.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0'); + } else { + // Hide the iframe in other browsers + printFrame.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0'); + } // Set iframe element id + + + printFrame.setAttribute('id', params.frameId); // For non pdf printing, pass an html document string to srcdoc (force onload callback) + + if (params.type !== 'pdf') { + printFrame.srcdoc = '' + params.documentTitle + ''; // Attach css files + + if (params.css) { + // Add support for single file + if (!Array.isArray(params.css)) params.css = [params.css]; // Create link tags for each css file + + params.css.forEach(function (file) { + printFrame.srcdoc += ''; + }); + } + + printFrame.srcdoc += ''; + } // Check printable type + + + switch (params.type) { + case 'pdf': + // Check browser support for pdf and if not supported we will just open the pdf file instead + if (_browser__WEBPACK_IMPORTED_MODULE_0__["default"].isIE()) { + try { + console.info('Print.js doesn\'t support PDF printing in Internet Explorer.'); + let win = window.open(params.fallbackPrintable, '_blank'); + win.focus(); + params.onIncompatibleBrowser(); + } catch (error) { + params.onError(error); + } finally { + // Make sure there is no loading modal opened + if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_1__["default"].close(); + if (params.onLoadingEnd) params.onLoadingEnd(); + } + } else { + _pdf__WEBPACK_IMPORTED_MODULE_2__["default"].print(params, printFrame); + } + + break; + + case 'image': + _image__WEBPACK_IMPORTED_MODULE_5__["default"].print(params, printFrame); + break; + + case 'html': + _html__WEBPACK_IMPORTED_MODULE_3__["default"].print(params, printFrame); + break; + + case 'raw-html': + _raw_html__WEBPACK_IMPORTED_MODULE_4__["default"].print(params, printFrame); + break; + + case 'json': + _json__WEBPACK_IMPORTED_MODULE_6__["default"].print(params, printFrame); + break; + } + } +}); + +/***/ }), + +/***/ "./src/js/json.js": +/*! ************************!*\ + !*** ./src/js/json.js ***! + \************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ "./src/js/functions.js"); +/* harmony import */ let _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ "./src/js/print.js"); +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + print: function print(params, printFrame) { + // Check if we received proper data + if (_typeof(params.printable) !== 'object') { + throw new Error('Invalid javascript data object (JSON).'); + } // Validate repeatTableHeader + + + if (typeof params.repeatTableHeader !== 'boolean') { + throw new Error('Invalid value for repeatTableHeader attribute (JSON).'); + } // Validate properties + + + if (!params.properties || !Array.isArray(params.properties)) { + throw new Error('Invalid properties array for your JSON data.'); + } // We will format the property objects to keep the JSON api compatible with older releases + + + params.properties = params.properties.map(function (property) { + return { + field: _typeof(property) === 'object' ? property.field : property, + displayName: _typeof(property) === 'object' ? property.displayName : property, + columnSize: _typeof(property) === 'object' && property.columnSize ? property.columnSize + ';' : 100 / params.properties.length + '%;' + }; + }); // Create a print container element + + params.printableElement = document.createElement('div'); // Check if we are adding a print header + + if (params.header) { + Object(_functions__WEBPACK_IMPORTED_MODULE_0__["addHeader"])(params.printableElement, params); + } // Build the printable html data + + + params.printableElement.innerHTML += jsonToHTML(params); // Print the json data + + _print__WEBPACK_IMPORTED_MODULE_1__["default"].send(params, printFrame); + } +}); + +function jsonToHTML(params) { + // Get the row and column data + let data = params.printable; + let properties = params.properties; // Create a html table + + let htmlData = ''; // Check if the header should be repeated + + if (params.repeatTableHeader) { + htmlData += ''; + } // Add the table header row + + + htmlData += ''; // Add the table header columns + + for (let a = 0; a < properties.length; a++) { + htmlData += ''; + } // Add the closing tag for the table header row + + + htmlData += ''; // If the table header is marked as repeated, add the closing tag + + if (params.repeatTableHeader) { + htmlData += ''; + } // Create the table body + + + htmlData += ''; // Add the table data rows + + for (let i = 0; i < data.length; i++) { + // Add the row starting tag + htmlData += ''; // Print selected properties only + + for (let n = 0; n < properties.length; n++) { + let stringData = data[i]; // Support nested objects + + let property = properties[n].field.split('.'); + + if (property.length > 1) { + for (let p = 0; p < property.length; p++) { + stringData = stringData[property[p]]; + } + } else { + stringData = stringData[properties[n].field]; + } // Add the row contents and styles + + + htmlData += ''; + } // Add the row closing tag + + + htmlData += ''; + } // Add the table and body closing tags + + + htmlData += '
' + Object(_functions__WEBPACK_IMPORTED_MODULE_0__["capitalizePrint"])(properties[a].displayName) + '
' + stringData + '
'; + return htmlData; +} + +/***/ }), + +/***/ "./src/js/modal.js": +/*! *************************!*\ + !*** ./src/js/modal.js ***! + \*************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var Modal = { + show: function show(params) { + // Build modal + let modalStyle = 'font-family:sans-serif; ' + 'display:table; ' + 'text-align:center; ' + 'font-weight:300; ' + 'font-size:30px; ' + 'left:0; top:0;' + 'position:fixed; ' + 'z-index: 9990;' + 'color: #0460B5; ' + 'width: 100%; ' + 'height: 100%; ' + 'background-color:rgba(255,255,255,.9);' + 'transition: opacity .3s ease;'; // Create wrapper + + let printModal = document.createElement('div'); + printModal.setAttribute('style', modalStyle); + printModal.setAttribute('id', 'printJS-Modal'); // Create content div + + let contentDiv = document.createElement('div'); + contentDiv.setAttribute('style', 'display:table-cell; vertical-align:middle; padding-bottom:100px;'); // Add close button (requires print.css) + + let closeButton = document.createElement('div'); + closeButton.setAttribute('class', 'printClose'); + closeButton.setAttribute('id', 'printClose'); + contentDiv.appendChild(closeButton); // Add spinner (requires print.css) + + let spinner = document.createElement('span'); + spinner.setAttribute('class', 'printSpinner'); + contentDiv.appendChild(spinner); // Add message + + let messageNode = document.createTextNode(params.modalMessage); + contentDiv.appendChild(messageNode); // Add contentDiv to printModal + + printModal.appendChild(contentDiv); // Append print modal element to document body + + document.getElementsByTagName('body')[0].appendChild(printModal); // Add event listener to close button + + document.getElementById('printClose').addEventListener('click', function () { + Modal.close(); + }); + }, + close: function close() { + let printModal = document.getElementById('printJS-Modal'); + + if (printModal) { + printModal.parentNode.removeChild(printModal); + } + } +}; +/* harmony default export */ __webpack_exports__["default"] = (Modal); + +/***/ }), + +/***/ "./src/js/pdf.js": +/*! ***********************!*\ + !*** ./src/js/pdf.js ***! + \***********************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _print__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./print */ "./src/js/print.js"); +/* harmony import */ let _functions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functions */ "./src/js/functions.js"); + + +/* harmony default export */ __webpack_exports__["default"] = ({ + print: function print(params, printFrame) { + // Check if we have base64 data + if (params.base64) { + let bytesArray = Uint8Array.from(atob(params.printable), function (c) { + return c.charCodeAt(0); + }); + createBlobAndPrint(params, printFrame, bytesArray); + return; + } // Format pdf url + + + params.printable = /^(blob|http|\/\/)/i.test(params.printable) ? params.printable : window.location.origin + (params.printable.charAt(0) !== '/' ? '/' + params.printable : params.printable); // Get the file through a http request (Preload) + + let req = new window.XMLHttpRequest(); + req.responseType = 'arraybuffer'; + req.addEventListener('error', function () { + Object(_functions__WEBPACK_IMPORTED_MODULE_1__["cleanUp"])(params); + params.onError(req.statusText, req); // Since we don't have a pdf document available, we will stop the print job + }); + req.addEventListener('load', function () { + // Check for errors + if ([200, 201].indexOf(req.status) === -1) { + Object(_functions__WEBPACK_IMPORTED_MODULE_1__["cleanUp"])(params); + params.onError(req.statusText, req); // Since we don't have a pdf document available, we will stop the print job + + return; + } // Print requested document + + + createBlobAndPrint(params, printFrame, req.response); + }); + req.open('GET', params.printable, true); + req.send(); + } +}); + +function createBlobAndPrint(params, printFrame, data) { + // Pass response or base64 data to a blob and create a local object url + let localPdf = new window.Blob([data], { + type: 'application/pdf' + }); + localPdf = window.URL.createObjectURL(localPdf); // Set iframe src with pdf document url + + printFrame.setAttribute('src', localPdf); + _print__WEBPACK_IMPORTED_MODULE_0__["default"].send(params, printFrame); +} + +/***/ }), + +/***/ "./src/js/print.js": +/*! *************************!*\ + !*** ./src/js/print.js ***! + \*************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser */ "./src/js/browser.js"); +/* harmony import */ let _functions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functions */ "./src/js/functions.js"); + + +let Print = { + send: function send(params, printFrame) { + // Append iframe element to document body + document.getElementsByTagName('body')[0].appendChild(printFrame); // Get iframe element + + let iframeElement = document.getElementById(params.frameId); // Wait for iframe to load all content + + iframeElement.onload = function () { + if (params.type === 'pdf') { + // Add a delay for Firefox. In my tests, 1000ms was sufficient but 100ms was not + if (_browser__WEBPACK_IMPORTED_MODULE_0__["default"].isFirefox()) { + setTimeout(function () { + return performPrint(iframeElement, params); + }, 1000); + } else { + performPrint(iframeElement, params); + } + + return; + } // Get iframe element document + + + let printDocument = iframeElement.contentWindow || iframeElement.contentDocument; + if (printDocument.document) printDocument = printDocument.document; // Append printable element to the iframe body + + printDocument.body.appendChild(params.printableElement); // Add custom style + + if (params.type !== 'pdf' && params.style) { + // Create style element + let style = document.createElement('style'); + style.innerHTML = params.style; // Append style element to iframe's head + + printDocument.head.appendChild(style); + } // If printing images, wait for them to load inside the iframe + + + let images = printDocument.getElementsByTagName('img'); + + if (images.length > 0) { + loadIframeImages(Array.from(images)).then(function () { + return performPrint(iframeElement, params); + }); + } else { + performPrint(iframeElement, params); + } + }; + } +}; + +function performPrint(iframeElement, params) { + try { + iframeElement.focus(); // If Edge or IE, try catch with execCommand + + if (_browser__WEBPACK_IMPORTED_MODULE_0__["default"].isEdge() || _browser__WEBPACK_IMPORTED_MODULE_0__["default"].isIE()) { + try { + iframeElement.contentWindow.document.execCommand('print', false, null); + } catch (e) { + iframeElement.contentWindow.print(); + } + } else { + // Other browsers + iframeElement.contentWindow.print(); + } + } catch (error) { + params.onError(error); + } finally { + if (_browser__WEBPACK_IMPORTED_MODULE_0__["default"].isFirefox()) { + // Move the iframe element off-screen and make it invisible + iframeElement.style.visibility = 'hidden'; + iframeElement.style.left = '-1px'; + } + + Object(_functions__WEBPACK_IMPORTED_MODULE_1__["cleanUp"])(params); + } +} + +function loadIframeImages(images) { + let promises = images.map(function (image) { + if (image.src && image.src !== window.location.href) { + return loadIframeImage(image); + } + }); + return Promise.all(promises); +} + +function loadIframeImage(image) { + return new Promise(function (resolve) { + let pollImage = function pollImage() { + !image || typeof image.naturalWidth === 'undefined' || image.naturalWidth === 0 || !image.complete ? setTimeout(pollImage, 500) : resolve(); + }; + + pollImage(); + }); +} + +/* harmony default export */ __webpack_exports__["default"] = (Print); + +/***/ }), + +/***/ "./src/js/raw-html.js": +/*! ****************************!*\ + !*** ./src/js/raw-html.js ***! + \****************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ let _print__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./print */ "./src/js/print.js"); + +/* harmony default export */ __webpack_exports__["default"] = ({ + print: function print(params, printFrame) { + // Create printable element (container) + params.printableElement = document.createElement('div'); + params.printableElement.setAttribute('style', 'width:100%'); // Set our raw html as the printable element inner html content + + params.printableElement.innerHTML = params.printable; // Print html contents + + _print__WEBPACK_IMPORTED_MODULE_0__["default"].send(params, printFrame); + } +}); + +/***/ }), + +/***/ "./src/sass/index.scss": +/*! *****************************!*\ + !*** ./src/sass/index.scss ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ 0: +/*! ****************************!*\ + !*** multi ./src/index.js ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./src/index.js */"./src/index.js"); + + +/***/ }) + +/******/ })["default"]; +}); +// # sourceMappingURL=print.map diff --git a/OrangeFormsOpen-VUE3/public/lib/print/print.map b/OrangeFormsOpen-VUE3/public/lib/print/print.map new file mode 100644 index 00000000..00365f10 --- /dev/null +++ b/OrangeFormsOpen-VUE3/public/lib/print/print.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://printJS/webpack/universalModuleDefinition","webpack://printJS/webpack/bootstrap","webpack://printJS/./src/index.js","webpack://printJS/./src/js/browser.js","webpack://printJS/./src/js/functions.js","webpack://printJS/./src/js/html.js","webpack://printJS/./src/js/image.js","webpack://printJS/./src/js/init.js","webpack://printJS/./src/js/json.js","webpack://printJS/./src/js/modal.js","webpack://printJS/./src/js/pdf.js","webpack://printJS/./src/js/print.js","webpack://printJS/./src/js/raw-html.js","webpack://printJS/./src/sass/index.scss"],"names":["printJS","print","init","window","Browser","isFirefox","InstallTrigger","isIE","navigator","userAgent","indexOf","document","documentMode","isEdge","StyleMedia","isChrome","context","chrome","isSafari","Object","prototype","toString","call","HTMLElement","toLowerCase","isIOSChrome","addWrapper","htmlData","params","bodyStyle","font","font_size","capitalizePrint","obj","charAt","toUpperCase","slice","collectStyles","element","win","defaultView","elementStyle","styles","getComputedStyle","key","length","targetStyles","targetStyle","targetStylesMatch","getPropertyValue","maxWidth","value","i","addHeader","printElement","headerContainer","createElement","isRawHTML","header","innerHTML","headerElement","headerNode","createTextNode","appendChild","setAttribute","headerStyle","insertBefore","childNodes","cleanUp","showModal","Modal","close","onLoadingEnd","onLoadingStart","URL","revokeObjectURL","printable","event","handler","removeEventListener","onPrintDialogClose","iframe","getElementById","frameId","remove","addEventListener","raw","regexHtml","RegExp","test","printFrame","isHtmlElement","console","error","printableElement","cloneElement","Print","send","clone","cloneNode","childNodesArray","Array","ignoreElements","id","clonedChild","scanStyles","nodeType","tagName","getContext","drawImage","constructor","forEach","src","img","imageStyle","fullyQualifiedSrc","imageWrapper","printTypes","fallbackPrintable","type","properties","gridHeaderStyle","gridStyle","onError","onIncompatibleBrowser","modalMessage","documentTitle","repeatTableHeader","css","style","base64","onPdfOpen","honorMarginPadding","honorColor","args","arguments","undefined","Error","encodeURI","k","show","usedFrame","parentNode","removeChild","srcdoc","isArray","file","info","open","focus","Pdf","Image","Html","RawHtml","Json","map","property","field","displayName","columnSize","jsonToHTML","data","a","n","stringData","split","p","modalStyle","printModal","contentDiv","closeButton","spinner","messageNode","getElementsByTagName","bytesArray","Uint8Array","from","atob","c","charCodeAt","createBlobAndPrint","location","origin","req","XMLHttpRequest","responseType","statusText","status","response","localPdf","Blob","createObjectURL","iframeElement","onload","setTimeout","performPrint","printDocument","contentWindow","contentDocument","body","head","images","loadIframeImages","then","execCommand","e","visibility","left","promises","image","href","loadIframeImage","Promise","all","resolve","pollImage","naturalWidth","complete"],"mappings":"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","file":"print.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"printJS\"] = factory();\n\telse\n\t\troot[\"printJS\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './sass/index.scss'\nimport print from './js/init'\n\nconst printJS = print.init\n\nif (typeof window !== 'undefined') {\n window.printJS = printJS\n}\n\nexport default printJS\n","const Browser = {\n // Firefox 1.0+\n isFirefox: () => {\n return typeof InstallTrigger !== 'undefined'\n },\n // Internet Explorer 6-11\n isIE: () => {\n return navigator.userAgent.indexOf('MSIE') !== -1 || !!document.documentMode\n },\n // Edge 20+\n isEdge: () => {\n return !Browser.isIE() && !!window.StyleMedia\n },\n // Chrome 1+\n isChrome: (context = window) => {\n return !!context.chrome\n },\n // At least Safari 3+: \"[object HTMLElementConstructor]\"\n isSafari: () => {\n return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 ||\n navigator.userAgent.toLowerCase().indexOf('safari') !== -1\n },\n // IOS Chrome\n isIOSChrome: () => {\n return navigator.userAgent.toLowerCase().indexOf('crios') !== -1\n }\n}\n\nexport default Browser\n","import Modal from './modal'\nimport Browser from './browser'\n\nexport function addWrapper (htmlData, params) {\n const bodyStyle = 'font-family:' + params.font + ' !important; font-size: ' + params.font_size + ' !important; width:100%;'\n return '
' + htmlData + '
'\n}\n\nexport function capitalizePrint (obj) {\n return obj.charAt(0).toUpperCase() + obj.slice(1)\n}\n\nexport function collectStyles (element, params) {\n const win = document.defaultView || window\n\n // String variable to hold styling for each element\n let elementStyle = ''\n\n // Loop over computed styles\n const styles = win.getComputedStyle(element, '')\n\n for (let key = 0; key < styles.length; key++) {\n // Check if style should be processed\n if (params.targetStyles.indexOf('*') !== -1 || params.targetStyle.indexOf(styles[key]) !== -1 || targetStylesMatch(params.targetStyles, styles[key])) {\n if (styles.getPropertyValue(styles[key])) elementStyle += styles[key] + ':' + styles.getPropertyValue(styles[key]) + ';'\n }\n }\n\n // Print friendly defaults (deprecated)\n elementStyle += 'max-width: ' + params.maxWidth + 'px !important; font-size: ' + params.font_size + ' !important;'\n\n return elementStyle\n}\n\nfunction targetStylesMatch (styles, value) {\n for (let i = 0; i < styles.length; i++) {\n if (typeof value === 'object' && value.indexOf(styles[i]) !== -1) return true\n }\n return false\n}\n\nexport function addHeader (printElement, params) {\n // Create the header container div\n const headerContainer = document.createElement('div')\n\n // Check if the header is text or raw html\n if (isRawHTML(params.header)) {\n headerContainer.innerHTML = params.header\n } else {\n // Create header element\n const headerElement = document.createElement('h1')\n\n // Create header text node\n const headerNode = document.createTextNode(params.header)\n\n // Build and style\n headerElement.appendChild(headerNode)\n headerElement.setAttribute('style', params.headerStyle)\n headerContainer.appendChild(headerElement)\n }\n\n printElement.insertBefore(headerContainer, printElement.childNodes[0])\n}\n\nexport function cleanUp (params) {\n // If we are showing a feedback message to user, remove it\n if (params.showModal) Modal.close()\n\n // Check for a finished loading hook function\n if (params.onLoadingEnd) params.onLoadingEnd()\n\n // If preloading pdf files, clean blob url\n if (params.showModal || params.onLoadingStart) window.URL.revokeObjectURL(params.printable)\n\n // Run onPrintDialogClose callback\n let event = 'mouseover'\n\n if (Browser.isChrome() || Browser.isFirefox()) {\n // Ps.: Firefox will require an extra click in the document to fire the focus event.\n event = 'focus'\n }\n\n const handler = () => {\n // Make sure the event only happens once.\n window.removeEventListener(event, handler)\n\n params.onPrintDialogClose()\n\n // Remove iframe from the DOM\n const iframe = document.getElementById(params.frameId)\n\n if (iframe) {\n iframe.remove()\n }\n }\n\n window.addEventListener(event, handler)\n}\n\nexport function isRawHTML (raw) {\n const regexHtml = new RegExp('<([A-Za-z][A-Za-z0-9]*)\\\\b[^>]*>(.*?)')\n return regexHtml.test(raw)\n}\n","import { collectStyles, addHeader } from './functions'\nimport Print from './print'\n\nexport default {\n print: (params, printFrame) => {\n // Get the DOM printable element\n const printElement = isHtmlElement(params.printable) ? params.printable : document.getElementById(params.printable)\n\n // Check if the element exists\n if (!printElement) {\n window.console.error('Invalid HTML element id: ' + params.printable)\n return\n }\n\n // Clone the target element including its children (if available)\n params.printableElement = cloneElement(printElement, params)\n\n // Add header\n if (params.header) {\n addHeader(params.printableElement, params)\n }\n\n // Print html element contents\n Print.send(params, printFrame)\n }\n}\n\nfunction cloneElement (element, params) {\n // Clone the main node (if not already inside the recursion process)\n const clone = element.cloneNode()\n\n // Loop over and process the children elements / nodes (including text nodes)\n const childNodesArray = Array.prototype.slice.call(element.childNodes)\n for (let i = 0; i < childNodesArray.length; i++) {\n // Check if we are skipping the current element\n if (params.ignoreElements.indexOf(childNodesArray[i].id) !== -1) {\n continue\n }\n\n // Clone the child element\n const clonedChild = cloneElement(childNodesArray[i], params)\n\n // Attach the cloned child to the cloned parent node\n clone.appendChild(clonedChild)\n }\n\n // Get all styling for print element (for nodes of type element only)\n if (params.scanStyles && element.nodeType === 1) {\n clone.setAttribute('style', collectStyles(element, params))\n }\n\n // Check if the element needs any state processing (copy user input data)\n switch (element.tagName) {\n case 'SELECT':\n // Copy the current selection value to its clone\n clone.value = element.value\n break\n case 'CANVAS':\n // Copy the canvas content to its clone\n clone.getContext('2d').drawImage(element, 0, 0)\n break\n }\n\n return clone\n}\n\nfunction isHtmlElement (printable) {\n // Check if element is instance of HTMLElement or has nodeType === 1 (for elements in iframe)\n return typeof printable === 'object' && printable && (printable instanceof HTMLElement || printable.nodeType === 1)\n}\n","import { addHeader } from './functions'\nimport Print from './print'\nimport Browser from './browser'\n\nexport default {\n print: (params, printFrame) => {\n // Check if we are printing one image or multiple images\n if (params.printable.constructor !== Array) {\n // Create array with one image\n params.printable = [params.printable]\n }\n\n // Create printable element (container)\n params.printableElement = document.createElement('div')\n\n // Create all image elements and append them to the printable container\n params.printable.forEach(src => {\n // Create the image element\n const img = document.createElement('img')\n img.setAttribute('style', params.imageStyle)\n\n // Set image src with the file url\n img.src = src\n\n // The following block is for Firefox, which for some reason requires the image's src to be fully qualified in\n // order to print it\n if (Browser.isFirefox()) {\n const fullyQualifiedSrc = img.src\n img.src = fullyQualifiedSrc\n }\n\n // Create the image wrapper\n const imageWrapper = document.createElement('div')\n\n // Append image to the wrapper element\n imageWrapper.appendChild(img)\n\n // Append wrapper to the printable element\n params.printableElement.appendChild(imageWrapper)\n })\n\n // Check if we are adding a print header\n if (params.header) addHeader(params.printableElement, params)\n\n // Print image\n Print.send(params, printFrame)\n }\n}\n","'use strict'\n\nimport Browser from './browser'\nimport Modal from './modal'\nimport Pdf from './pdf'\nimport Html from './html'\nimport RawHtml from './raw-html'\nimport Image from './image'\nimport Json from './json'\n\nconst printTypes = ['pdf', 'html', 'image', 'json', 'raw-html']\n\nexport default {\n init () {\n const params = {\n printable: null,\n fallbackPrintable: null,\n type: 'pdf',\n header: null,\n headerStyle: 'font-weight: 300;',\n maxWidth: 800,\n properties: null,\n gridHeaderStyle: 'font-weight: bold; padding: 5px; border: 1px solid #dddddd;',\n gridStyle: 'border: 1px solid lightgray; margin-bottom: -1px;',\n showModal: false,\n onError: (error) => { throw error },\n onLoadingStart: null,\n onLoadingEnd: null,\n onPrintDialogClose: () => {},\n onIncompatibleBrowser: () => {},\n modalMessage: 'Retrieving Document...',\n frameId: 'printJS',\n printableElement: null,\n documentTitle: 'Document',\n targetStyle: ['clear', 'display', 'width', 'min-width', 'height', 'min-height', 'max-height'],\n targetStyles: ['border', 'box', 'break', 'text-decoration'],\n ignoreElements: [],\n repeatTableHeader: true,\n css: null,\n style: null,\n scanStyles: true,\n base64: false,\n\n // Deprecated\n onPdfOpen: null,\n font: 'TimesNewRoman',\n font_size: '12pt',\n honorMarginPadding: true,\n honorColor: false,\n imageStyle: 'max-width: 100%;'\n }\n\n // Check if a printable document or object was supplied\n const args = arguments[0]\n if (args === undefined) {\n throw new Error('printJS expects at least 1 attribute.')\n }\n\n // Process parameters\n switch (typeof args) {\n case 'string':\n params.printable = encodeURI(args)\n params.fallbackPrintable = params.printable\n params.type = arguments[1] || params.type\n break\n case 'object':\n params.printable = args.printable\n params.fallbackPrintable = typeof args.fallbackPrintable !== 'undefined' ? args.fallbackPrintable : params.printable\n params.fallbackPrintable = params.base64 ? `data:application/pdf;base64,${params.fallbackPrintable}` : params.fallbackPrintable\n for (var k in params) {\n if (k === 'printable' || k === 'fallbackPrintable') continue\n\n params[k] = typeof args[k] !== 'undefined' ? args[k] : params[k]\n }\n break\n default:\n throw new Error('Unexpected argument type! Expected \"string\" or \"object\", got ' + typeof args)\n }\n\n // Validate printable\n if (!params.printable) throw new Error('Missing printable information.')\n\n // Validate type\n if (!params.type || typeof params.type !== 'string' || printTypes.indexOf(params.type.toLowerCase()) === -1) {\n throw new Error('Invalid print type. Available types are: pdf, html, image and json.')\n }\n\n // Check if we are showing a feedback message to the user (useful for large files)\n if (params.showModal) Modal.show(params)\n\n // Check for a print start hook function\n if (params.onLoadingStart) params.onLoadingStart()\n\n // To prevent duplication and issues, remove any used printFrame from the DOM\n const usedFrame = document.getElementById(params.frameId)\n\n if (usedFrame) usedFrame.parentNode.removeChild(usedFrame)\n\n // Create a new iframe for the print job\n const printFrame = document.createElement('iframe')\n\n if (Browser.isFirefox()) {\n // Set the iframe to be is visible on the page (guaranteed by fixed position) but hidden using opacity 0, because\n // this works in Firefox. The height needs to be sufficient for some part of the document other than the PDF\n // viewer's toolbar to be visible in the page\n printFrame.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0')\n } else {\n // Hide the iframe in other browsers\n printFrame.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0')\n }\n\n // Set iframe element id\n printFrame.setAttribute('id', params.frameId)\n\n // For non pdf printing, pass an html document string to srcdoc (force onload callback)\n if (params.type !== 'pdf') {\n printFrame.srcdoc = '' + params.documentTitle + ''\n\n // Attach css files\n if (params.css) {\n // Add support for single file\n if (!Array.isArray(params.css)) params.css = [params.css]\n\n // Create link tags for each css file\n params.css.forEach(file => {\n printFrame.srcdoc += ''\n })\n }\n\n printFrame.srcdoc += ''\n }\n\n // Check printable type\n switch (params.type) {\n case 'pdf':\n // Check browser support for pdf and if not supported we will just open the pdf file instead\n if (Browser.isIE()) {\n try {\n console.info('Print.js doesn\\'t support PDF printing in Internet Explorer.')\n const win = window.open(params.fallbackPrintable, '_blank')\n win.focus()\n params.onIncompatibleBrowser()\n } catch (error) {\n params.onError(error)\n } finally {\n // Make sure there is no loading modal opened\n if (params.showModal) Modal.close()\n if (params.onLoadingEnd) params.onLoadingEnd()\n }\n } else {\n Pdf.print(params, printFrame)\n }\n break\n case 'image':\n Image.print(params, printFrame)\n break\n case 'html':\n Html.print(params, printFrame)\n break\n case 'raw-html':\n RawHtml.print(params, printFrame)\n break\n case 'json':\n Json.print(params, printFrame)\n break\n }\n }\n}\n","import { capitalizePrint, addHeader } from './functions'\nimport Print from './print'\n\nexport default {\n print: (params, printFrame) => {\n // Check if we received proper data\n if (typeof params.printable !== 'object') {\n throw new Error('Invalid javascript data object (JSON).')\n }\n\n // Validate repeatTableHeader\n if (typeof params.repeatTableHeader !== 'boolean') {\n throw new Error('Invalid value for repeatTableHeader attribute (JSON).')\n }\n\n // Validate properties\n if (!params.properties || !Array.isArray(params.properties)) {\n throw new Error('Invalid properties array for your JSON data.')\n }\n\n // We will format the property objects to keep the JSON api compatible with older releases\n params.properties = params.properties.map(property => {\n return {\n field: typeof property === 'object' ? property.field : property,\n displayName: typeof property === 'object' ? property.displayName : property,\n columnSize: typeof property === 'object' && property.columnSize ? property.columnSize + ';' : 100 / params.properties.length + '%;'\n }\n })\n\n // Create a print container element\n params.printableElement = document.createElement('div')\n\n // Check if we are adding a print header\n if (params.header) {\n addHeader(params.printableElement, params)\n }\n\n // Build the printable html data\n params.printableElement.innerHTML += jsonToHTML(params)\n\n // Print the json data\n Print.send(params, printFrame)\n }\n}\n\nfunction jsonToHTML (params) {\n // Get the row and column data\n const data = params.printable\n const properties = params.properties\n\n // Create a html table\n let htmlData = ''\n\n // Check if the header should be repeated\n if (params.repeatTableHeader) {\n htmlData += ''\n }\n\n // Add the table header row\n htmlData += ''\n\n // Add the table header columns\n for (let a = 0; a < properties.length; a++) {\n htmlData += ''\n }\n\n // Add the closing tag for the table header row\n htmlData += ''\n\n // If the table header is marked as repeated, add the closing tag\n if (params.repeatTableHeader) {\n htmlData += ''\n }\n\n // Create the table body\n htmlData += ''\n\n // Add the table data rows\n for (let i = 0; i < data.length; i++) {\n // Add the row starting tag\n htmlData += ''\n\n // Print selected properties only\n for (let n = 0; n < properties.length; n++) {\n let stringData = data[i]\n\n // Support nested objects\n const property = properties[n].field.split('.')\n if (property.length > 1) {\n for (let p = 0; p < property.length; p++) {\n stringData = stringData[property[p]]\n }\n } else {\n stringData = stringData[properties[n].field]\n }\n\n // Add the row contents and styles\n htmlData += ''\n }\n\n // Add the row closing tag\n htmlData += ''\n }\n\n // Add the table and body closing tags\n htmlData += '
' + capitalizePrint(properties[a].displayName) + '
' + stringData + '
'\n\n return htmlData\n}\n","const Modal = {\n show (params) {\n // Build modal\n const modalStyle = 'font-family:sans-serif; ' +\n 'display:table; ' +\n 'text-align:center; ' +\n 'font-weight:300; ' +\n 'font-size:30px; ' +\n 'left:0; top:0;' +\n 'position:fixed; ' +\n 'z-index: 9990;' +\n 'color: #0460B5; ' +\n 'width: 100%; ' +\n 'height: 100%; ' +\n 'background-color:rgba(255,255,255,.9);' +\n 'transition: opacity .3s ease;'\n\n // Create wrapper\n const printModal = document.createElement('div')\n printModal.setAttribute('style', modalStyle)\n printModal.setAttribute('id', 'printJS-Modal')\n\n // Create content div\n const contentDiv = document.createElement('div')\n contentDiv.setAttribute('style', 'display:table-cell; vertical-align:middle; padding-bottom:100px;')\n\n // Add close button (requires print.css)\n const closeButton = document.createElement('div')\n closeButton.setAttribute('class', 'printClose')\n closeButton.setAttribute('id', 'printClose')\n contentDiv.appendChild(closeButton)\n\n // Add spinner (requires print.css)\n const spinner = document.createElement('span')\n spinner.setAttribute('class', 'printSpinner')\n contentDiv.appendChild(spinner)\n\n // Add message\n const messageNode = document.createTextNode(params.modalMessage)\n contentDiv.appendChild(messageNode)\n\n // Add contentDiv to printModal\n printModal.appendChild(contentDiv)\n\n // Append print modal element to document body\n document.getElementsByTagName('body')[0].appendChild(printModal)\n\n // Add event listener to close button\n document.getElementById('printClose').addEventListener('click', function () {\n Modal.close()\n })\n },\n close () {\n const printModal = document.getElementById('printJS-Modal')\n\n if (printModal) {\n printModal.parentNode.removeChild(printModal)\n }\n }\n}\n\nexport default Modal\n","import Print from './print'\nimport { cleanUp } from './functions'\n\nexport default {\n print: (params, printFrame) => {\n // Check if we have base64 data\n if (params.base64) {\n const bytesArray = Uint8Array.from(atob(params.printable), c => c.charCodeAt(0))\n createBlobAndPrint(params, printFrame, bytesArray)\n return\n }\n\n // Format pdf url\n params.printable = /^(blob|http|\\/\\/)/i.test(params.printable)\n ? params.printable\n : window.location.origin + (params.printable.charAt(0) !== '/' ? '/' + params.printable : params.printable)\n\n // Get the file through a http request (Preload)\n const req = new window.XMLHttpRequest()\n req.responseType = 'arraybuffer'\n\n req.addEventListener('error', () => {\n cleanUp(params)\n params.onError(req.statusText, req)\n\n // Since we don't have a pdf document available, we will stop the print job\n })\n\n req.addEventListener('load', () => {\n // Check for errors\n if ([200, 201].indexOf(req.status) === -1) {\n cleanUp(params)\n params.onError(req.statusText, req)\n\n // Since we don't have a pdf document available, we will stop the print job\n return\n }\n\n // Print requested document\n createBlobAndPrint(params, printFrame, req.response)\n })\n\n req.open('GET', params.printable, true)\n req.send()\n }\n}\n\nfunction createBlobAndPrint (params, printFrame, data) {\n // Pass response or base64 data to a blob and create a local object url\n let localPdf = new window.Blob([data], { type: 'application/pdf' })\n localPdf = window.URL.createObjectURL(localPdf)\n\n // Set iframe src with pdf document url\n printFrame.setAttribute('src', localPdf)\n\n Print.send(params, printFrame)\n}\n","import Browser from './browser'\nimport { cleanUp } from './functions'\n\nconst Print = {\n send: (params, printFrame) => {\n // Append iframe element to document body\n document.getElementsByTagName('body')[0].appendChild(printFrame)\n\n // Get iframe element\n const iframeElement = document.getElementById(params.frameId)\n\n // Wait for iframe to load all content\n iframeElement.onload = () => {\n if (params.type === 'pdf') {\n // Add a delay for Firefox. In my tests, 1000ms was sufficient but 100ms was not\n if (Browser.isFirefox()) {\n setTimeout(() => performPrint(iframeElement, params), 1000)\n } else {\n performPrint(iframeElement, params)\n }\n return\n }\n\n // Get iframe element document\n let printDocument = (iframeElement.contentWindow || iframeElement.contentDocument)\n if (printDocument.document) printDocument = printDocument.document\n\n // Append printable element to the iframe body\n printDocument.body.appendChild(params.printableElement)\n\n // Add custom style\n if (params.type !== 'pdf' && params.style) {\n // Create style element\n const style = document.createElement('style')\n style.innerHTML = params.style\n\n // Append style element to iframe's head\n printDocument.head.appendChild(style)\n }\n\n // If printing images, wait for them to load inside the iframe\n const images = printDocument.getElementsByTagName('img')\n\n if (images.length > 0) {\n loadIframeImages(Array.from(images)).then(() => performPrint(iframeElement, params))\n } else {\n performPrint(iframeElement, params)\n }\n }\n }\n}\n\nfunction performPrint (iframeElement, params) {\n try {\n iframeElement.focus()\n\n // If Edge or IE, try catch with execCommand\n if (Browser.isEdge() || Browser.isIE()) {\n try {\n iframeElement.contentWindow.document.execCommand('print', false, null)\n } catch (e) {\n iframeElement.contentWindow.print()\n }\n } else {\n // Other browsers\n iframeElement.contentWindow.print()\n }\n } catch (error) {\n params.onError(error)\n } finally {\n if (Browser.isFirefox()) {\n // Move the iframe element off-screen and make it invisible\n iframeElement.style.visibility = 'hidden'\n iframeElement.style.left = '-1px'\n }\n\n cleanUp(params)\n }\n}\n\nfunction loadIframeImages (images) {\n const promises = images.map(image => {\n if (image.src && image.src !== window.location.href) {\n return loadIframeImage(image)\n }\n })\n\n return Promise.all(promises)\n}\n\nfunction loadIframeImage (image) {\n return new Promise(resolve => {\n const pollImage = () => {\n !image || typeof image.naturalWidth === 'undefined' || image.naturalWidth === 0 || !image.complete\n ? setTimeout(pollImage, 500)\n : resolve()\n }\n pollImage()\n })\n}\n\nexport default Print\n","import Print from './print'\n\nexport default {\n print: (params, printFrame) => {\n // Create printable element (container)\n params.printableElement = document.createElement('div')\n params.printableElement.setAttribute('style', 'width:100%')\n\n // Set our raw html as the printable element inner html content\n params.printableElement.innerHTML = params.printable\n\n // Print html contents\n Print.send(params, printFrame)\n }\n}\n","// extracted by mini-css-extract-plugin"],"sourceRoot":""} \ No newline at end of file diff --git a/OrangeFormsOpen-VUE3/src/assets/style/base.scss b/OrangeFormsOpen-VUE3/src/assets/style/base.scss index 7dc9eaf6..eae7fcbd 100644 --- a/OrangeFormsOpen-VUE3/src/assets/style/base.scss +++ b/OrangeFormsOpen-VUE3/src/assets/style/base.scss @@ -39,6 +39,7 @@ $table-row-height: 50px; $--color-white: #FFF !default; $--border-color-base: #DCDFE6; $--color-primary: #F70 !default; + $--color-sidebar-title-text: #FFF; $--color-menu-background: #2D3039; $--color-text-secondary: #909399 !default; @@ -57,71 +58,71 @@ $--color-primary-light-9: color-mix(in srgb, $--color-white 90%, $--color-primar /** * 弹窗样式,封装的layer的弹窗 **/ -.layui-layer-page .layui-layer-title{ +body .layui-layer-page .layui-layer-title{ border:1px solid #01000000; border-radius: 4px 4px 0 0; background-color: #f8f8f8; } -.layui-layer-page .slot-fragment { +body .layui-layer-page .slot-fragment { height: 100%; } -.layui-layer-page .layui-layer-setwin {color: #fff} +body .layui-layer-page .layui-layer-setwin {color: #fff} -.layui-layer-page { +body .layui-layer-page { border:1px solid #01000000; border-radius: 4px; } -.layui-layer-page .layui-layer-content { +body .layui-layer-page .layui-layer-content { padding: $box-padding-size; } -.layui-layer-page.one_to_one_query .layui-layer-content { +body .layui-layer-page.one_to_one_query .layui-layer-content { padding: 0; } -.layui-layer-page.layui-layer-iframe .layui-layer-content { +body .layui-layer-page.layui-layer-iframe .layui-layer-content { padding: 0!important; } /** * 左树右表弹窗样式 */ -.layer-advance-dialog { +body .layer-advance-dialog { background-color: #F8F8F8; border:1px solid #01000000; border-radius: 4px; } -.layer-advance-dialog .layui-layer-title{ +body .layer-advance-dialog .layui-layer-title{ border:1px solid #01000000; border-radius: 4px 4px 0 0; } -.layer-advance-dialog .layui-layer-content { +body .layer-advance-dialog .layui-layer-content { padding: 5px 15px; } /** * 全屏弹窗样式 */ -.fullscreen-dialog { +body .fullscreen-dialog { background-color: #F8F8F8; border: none; border-radius: 0; } -.fullscreen-dialog .layui-layer-title { +body .fullscreen-dialog .layui-layer-title { display: none; } -.fullscreen-dialog .layui-layer-setwin { +body .fullscreen-dialog .layui-layer-setwin { display: none; } -.fullscreen-dialog .layui-layer-content { +body .fullscreen-dialog .layui-layer-content { height: 100vh!important; padding: 0; } @@ -762,6 +763,10 @@ $--color-primary-light-9: color-mix(in srgb, $--color-white 90%, $--color-primar } } +.relation-select-popper { + display: none; +} + .vxe-table--render-default.border--full .vxe-body--column { background-size: 1px 100%,100% 0!important; border-bottom: 1px solid #e8eaec; diff --git a/OrangeFormsOpen-VUE3/src/common/http/request.ts b/OrangeFormsOpen-VUE3/src/common/http/request.ts index d14cf3c7..8d933e03 100644 --- a/OrangeFormsOpen-VUE3/src/common/http/request.ts +++ b/OrangeFormsOpen-VUE3/src/common/http/request.ts @@ -245,7 +245,7 @@ export const download = async ( url: string, params: ANY_OBJECT, filename: string, - method?: RequestMethods, + method: RequestMethods = 'post', options?: RequestOption, ) => { return new Promise((resolve, reject) => { diff --git a/OrangeFormsOpen-VUE3/src/components/layout/index.vue b/OrangeFormsOpen-VUE3/src/components/layout/index.vue index 226e51cc..3640199c 100644 --- a/OrangeFormsOpen-VUE3/src/components/layout/index.vue +++ b/OrangeFormsOpen-VUE3/src/components/layout/index.vue @@ -347,7 +347,7 @@ const handleCommand = (command: string) => { Dialog.show('修改头像', FormModifyHeadImage, { area: '500px' }, {}); break; default: - ElMessage.warning(`click on item ${command}`); + ElMessage.warning(`click on item `); break; } }; diff --git a/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue b/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue index 7ba70b5f..15a007ee 100644 --- a/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue +++ b/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue @@ -12,7 +12,10 @@ :change="onValueChange" @widgetClick="onWidgetClick" > -