From e56c0f5d350c678480684a63259fbb9d5537b0f7 Mon Sep 17 00:00:00 2001 From: EdwinBetanc0urt <EdwinBetanc0urt@outlook.com> Date: Thu, 27 Aug 2020 10:41:41 -0400 Subject: [PATCH] ref: Remove eslint-disbale. --- src/components/ImageCropper/index.vue | 9 +- src/components/JsonEditor/index.vue | 8 +- src/components/MDinput/index.vue | 32 ++-- src/components/PanThumb/index.vue | 3 +- src/components/UploadExcel/index.vue | 22 ++- src/directive/clipboard/clipboard.js | 20 ++- src/store/modules/settings.js | 4 +- src/vendor/Export2Excel.js | 247 ++++++++++++++------------ src/vendor/Export2Zip.js | 8 +- 9 files changed, 208 insertions(+), 145 deletions(-) diff --git a/src/components/ImageCropper/index.vue b/src/components/ImageCropper/index.vue index 65a4262b..73139dc8 100644 --- a/src/components/ImageCropper/index.vue +++ b/src/components/ImageCropper/index.vue @@ -247,9 +247,8 @@ export default { lang, // 浏览器是否支持该控件 isSupported, - // 浏览器是否支持触屏事件 - // eslint-disable-next-line no-prototype-builtins - isSupportTouch: document.hasOwnProperty('ontouchstart'), + // Does the browser support touch screen events? + isSupportTouch: Object.prototype.hasOwnProperty.call(document, 'ontouchstart'), // 步骤 step: 1, // 1选择文件 2剪裁 3上传 // 上传状态及进度 @@ -574,7 +573,9 @@ export default { const dY = nY - mY let rX = x + dX let rY = y + dY - if (!on) return + if (!on) { + return + } if (rX > 0) { rX = 0 } diff --git a/src/components/JsonEditor/index.vue b/src/components/JsonEditor/index.vue index c05b090c..dfebed91 100644 --- a/src/components/JsonEditor/index.vue +++ b/src/components/JsonEditor/index.vue @@ -16,8 +16,12 @@ import 'codemirror/addon/lint/json-lint' export default { name: 'JsonEditor', - /* eslint-disable vue/require-prop-types */ - props: ['value'], + props: { + value: { + type: [Array, Boolean, Number, Object, String, Symbol], + default: undefined + } + }, data() { return { jsonEditor: false diff --git a/src/components/MDinput/index.vue b/src/components/MDinput/index.vue index c59ea34a..4772c1f7 100644 --- a/src/components/MDinput/index.vue +++ b/src/components/MDinput/index.vue @@ -111,26 +111,38 @@ <script> // source:https://github.com/wemake-services/vue-material-input/blob/master/src/components/MaterialInput.vue +const propString = { + type: String, + default: undefined +} export default { name: 'MdInput', props: { - /* eslint-disable */ - icon: String, - name: String, + icon: propString, + name: propString, type: { type: String, default: 'text' }, - value: [String, Number], - placeholder: String, + value: { + type: [String, Number], + default: undefined + }, + placeholder: propString, readonly: Boolean, disabled: Boolean, - min: String, - max: String, - step: String, - minlength: Number, - maxlength: Number, + min: propString, + max: propString, + step: propString, + minlength: { + type: Number, + default: -Infinity + }, + maxlength: { + type: Number, + default: +Infinity + }, required: { type: Boolean, default: true diff --git a/src/components/PanThumb/index.vue b/src/components/PanThumb/index.vue index 1bcf4170..4903587f 100644 --- a/src/components/PanThumb/index.vue +++ b/src/components/PanThumb/index.vue @@ -5,8 +5,7 @@ <slot /> </div> </div> - <!-- eslint-disable-next-line --> - <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div> + <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb" /> </div> </template> diff --git a/src/components/UploadExcel/index.vue b/src/components/UploadExcel/index.vue index 9e8ba8b6..1d0f21ff 100644 --- a/src/components/UploadExcel/index.vue +++ b/src/components/UploadExcel/index.vue @@ -15,8 +15,14 @@ import XLSX from 'xlsx' export default { props: { - beforeUpload: Function, // eslint-disable-line - onSuccess: Function// eslint-disable-line + beforeUpload: { + type: Function, + default: () => {} + }, + onSuccess: { + type: Function, + default: () => {} + } }, data() { return { @@ -36,7 +42,9 @@ export default { handleDrop(e) { e.stopPropagation() e.preventDefault() - if (this.loading) return + if (this.loading) { + return + } const files = e.dataTransfer.files if (files.length !== 1) { this.$message.error('Only support uploading one file!') @@ -63,7 +71,9 @@ export default { handleClick(e) { const files = e.target.files const rawFile = files[0] // only use files[0] - if (!rawFile) return + if (!rawFile) { + return + } this.upload(rawFile) }, upload(rawFile) { @@ -106,7 +116,9 @@ export default { const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })] /* find the cell in the first row */ let hdr = 'UNKNOWN ' + C // <-- replace with your desired default - if (cell && cell.t) hdr = XLSX.utils.format_cell(cell) + if (cell && cell.t) { + hdr = XLSX.utils.format_cell(cell) + } headers.push(hdr) } return headers diff --git a/src/directive/clipboard/clipboard.js b/src/directive/clipboard/clipboard.js index 514aad20..3d2b394f 100644 --- a/src/directive/clipboard/clipboard.js +++ b/src/directive/clipboard/clipboard.js @@ -12,16 +12,20 @@ export default { el._v_clipboard_error = binding.value } else { const clipboard = new Clipboard(el, { - text() { return binding.value }, - action() { return binding.arg === 'cut' ? 'cut' : 'copy' } + text() { + return binding.value + }, + action() { + return binding.arg === 'cut' ? 'cut' : 'copy' + } }) clipboard.on('success', e => { const callback = el._v_clipboard_success - callback && callback(e) // eslint-disable-line + callback && callback(e) }) clipboard.on('error', e => { const callback = el._v_clipboard_error - callback && callback(e) // eslint-disable-line + callback && callback(e) }) el._v_clipboard = clipboard } @@ -32,8 +36,12 @@ export default { } else if (binding.arg === 'error') { el._v_clipboard_error = binding.value } else { - el._v_clipboard.text = function() { return binding.value } - el._v_clipboard.action = function() { return binding.arg === 'cut' ? 'cut' : 'copy' } + el._v_clipboard.text = function() { + return binding.value + } + el._v_clipboard.action = function() { + return binding.arg === 'cut' ? 'cut' : 'copy' + } } }, unbind(el, binding) { diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js index 110533f7..6284155c 100644 --- a/src/store/modules/settings.js +++ b/src/store/modules/settings.js @@ -13,8 +13,7 @@ const state = { const mutations = { CHANGE_SETTING: (state, { key, value }) => { - // eslint-disable-next-line no-prototype-builtins - if (state.hasOwnProperty(key)) { + if (Object.prototype.hasOwnProperty.call(state, key)) { state[key] = value } } @@ -32,4 +31,3 @@ export default { mutations, actions } - diff --git a/src/vendor/Export2Excel.js b/src/vendor/Export2Excel.js index d8a2af3d..fb9b1865 100644 --- a/src/vendor/Export2Excel.js +++ b/src/vendor/Export2Excel.js @@ -1,33 +1,36 @@ -/* eslint-disable */ import { saveAs } from 'file-saver' import XLSX from 'xlsx' function generateArray(table) { - var out = []; - var rows = table.querySelectorAll('tr'); - var ranges = []; - for (var R = 0; R < rows.length; ++R) { - var outRow = []; - var row = rows[R]; - var columns = row.querySelectorAll('td'); - for (var C = 0; C < columns.length; ++C) { - var cell = columns[C]; - var colspan = cell.getAttribute('colspan'); - var rowspan = cell.getAttribute('rowspan'); - var cellValue = cell.innerText; - if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue; + const out = [] + const rows = table.querySelectorAll('tr') + const ranges = [] + for (let R = 0; R < rows.length; ++R) { + const outRow = [] + const row = rows[R] + const columns = row.querySelectorAll('td') + for (let C = 0; C < columns.length; ++C) { + const cell = columns[C] + let colspan = cell.getAttribute('colspan') + let rowspan = cell.getAttribute('rowspan') + let cellValue = cell.innerText + if (cellValue !== '' && cellValue === +cellValue) { + cellValue = +cellValue + } - //Skip ranges - ranges.forEach(function (range) { + // Skip ranges + ranges.forEach(function(range) { if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) { - for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null); + for (let i = 0; i <= range.e.c - range.s.c; ++i) { + outRow.push(null) + } } - }); + }) - //Handle Row Span + // Handle Row Span if (rowspan || colspan) { - rowspan = rowspan || 1; - colspan = colspan || 1; + rowspan = rowspan || 1 + colspan = colspan || 1 ranges.push({ s: { r: R, @@ -37,30 +40,35 @@ function generateArray(table) { r: R + rowspan - 1, c: outRow.length + colspan - 1 } - }); - }; + }) + } - //Handle Value - outRow.push(cellValue !== "" ? cellValue : null); + // Handle Value + outRow.push(cellValue !== '' ? cellValue : null) - //Handle Colspan - if (colspan) - for (var k = 0; k < colspan - 1; ++k) outRow.push(null); + // Handle Colspan + if (colspan) { + for (let k = 0; k < colspan - 1; ++k) { + outRow.push(null) + } + } } - out.push(outRow); + out.push(outRow) } - return [out, ranges]; -}; + return [out, ranges] +} function datenum(v, date1904) { - if (date1904) v += 1462; - var epoch = Date.parse(v); - return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); + if (date1904) { + v += 1462 + } + const epoch = Date.parse(v) + return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000) } function sheet_from_array_of_arrays(data, opts) { - var ws = {}; - var range = { + const ws = {} + const range = { s: { c: 10000000, r: 10000000 @@ -69,79 +77,99 @@ function sheet_from_array_of_arrays(data, opts) { c: 0, r: 0 } - }; - for (var R = 0; R != data.length; ++R) { - for (var C = 0; C != data[R].length; ++C) { - if (range.s.r > R) range.s.r = R; - if (range.s.c > C) range.s.c = C; - if (range.e.r < R) range.e.r = R; - if (range.e.c < C) range.e.c = C; - var cell = { + } + for (let R = 0; R !== data.length; ++R) { + for (let C = 0; C !== data[R].length; ++C) { + if (range.s.r > R) { + range.s.r = R + } + if (range.s.c > C) { + range.s.c = C + } + if (range.e.r < R) { + range.e.r = R + } + if (range.e.c < C) { + range.e.c = C + } + const cell = { v: data[R][C] - }; - if (cell.v == null) continue; - var cell_ref = XLSX.utils.encode_cell({ + } + if (cell.v === null) { + continue + } + const cell_ref = XLSX.utils.encode_cell({ c: C, r: R - }); + }) - if (typeof cell.v === 'number') cell.t = 'n'; - else if (typeof cell.v === 'boolean') cell.t = 'b'; - else if (cell.v instanceof Date) { - cell.t = 'n'; - cell.z = XLSX.SSF._table[14]; - cell.v = datenum(cell.v); - } else cell.t = 's'; + if (typeof cell.v === 'number') { + cell.t = 'n' + } else if (typeof cell.v === 'boolean') { + cell.t = 'b' + } else if (cell.v instanceof Date) { + cell.t = 'n' + cell.z = XLSX.SSF._table[14] + cell.v = datenum(cell.v) + } else { + cell.t = 's' + } - ws[cell_ref] = cell; + ws[cell_ref] = cell } } - if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range); - return ws; + if (range.s.c < 10000000) { + ws['!ref'] = XLSX.utils.encode_range(range) + } + return ws } function Workbook() { - if (!(this instanceof Workbook)) return new Workbook(); - this.SheetNames = []; - this.Sheets = {}; + if (!(this instanceof Workbook)) { + return new Workbook() + } + this.SheetNames = [] + this.Sheets = {} } function s2ab(s) { - var buf = new ArrayBuffer(s.length); - var view = new Uint8Array(buf); - for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; - return buf; + const buf = new ArrayBuffer(s.length) + const view = new Uint8Array(buf) + for (let i = 0; i !== s.length; ++i) { + view[i] = s.charCodeAt(i) & 0xFF + } + return buf } export function export_table_to_excel(id) { - var theTable = document.getElementById(id); - var oo = generateArray(theTable); - var ranges = oo[1]; + const theTable = document.getElementById(id) + const oo = generateArray(theTable) + const ranges = oo[1] - /* original data */ - var data = oo[0]; - var ws_name = "SheetJS"; + // original data + const data = oo[0] + const ws_name = 'SheetJS' - var wb = new Workbook(), - ws = sheet_from_array_of_arrays(data); + const wb = new Workbook() + const ws = sheet_from_array_of_arrays(data) - /* add ranges to worksheet */ - // ws['!cols'] = ['apple', 'banan']; - ws['!merges'] = ranges; + // add ranges to worksheet + // ws['!cols'] = ['apple', 'banan'] + ws['!merges'] = ranges - /* add worksheet to workbook */ - wb.SheetNames.push(ws_name); - wb.Sheets[ws_name] = ws; + // add worksheet to workbook + wb.SheetNames.push(ws_name) + wb.Sheets[ws_name] = ws - var wbout = XLSX.write(wb, { + const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' - }); + }) saveAs(new Blob([s2ab(wbout)], { - type: "application/octet-stream" - }), "test.xlsx") + type: 'application/octet-stream' + }), 'test.xlsx') } export function export_json_to_excel({ @@ -153,68 +181,69 @@ export function export_json_to_excel({ autoWidth = true, bookType = 'xlsx' } = {}) { - /* original data */ + // original data filename = filename || 'excel-list' data = [...data] - data.unshift(header); + data.unshift(header) for (let i = multiHeader.length - 1; i > -1; i--) { data.unshift(multiHeader[i]) } - var ws_name = "SheetJS"; - var wb = new Workbook(), - ws = sheet_from_array_of_arrays(data); + const ws_name = 'SheetJS' + const wb = new Workbook() + const ws = sheet_from_array_of_arrays(data) if (merges.length > 0) { - if (!ws['!merges']) ws['!merges'] = []; + if (!ws['!merges']) { + ws['!merges'] = [] + } merges.forEach(item => { ws['!merges'].push(XLSX.utils.decode_range(item)) }) } if (autoWidth) { - /*设置worksheet每列的最大宽度*/ + // set the maximum width of each column of the worksheet const colWidth = data.map(row => row.map(val => { - /*先判断是否为null/undefined*/ - if (val == null) { + // determine first if it is null/undefined + if (val === null || val === undefined) { return { 'wch': 10 - }; - } - /*再判断是否为中文*/ - else if (val.toString().charCodeAt(0) > 255) { + } + } else if (val.toString().charCodeAt(0) > 255) { + // and then determine if it's Chinese return { 'wch': val.toString().length * 2 - }; + } } else { return { 'wch': val.toString().length - }; + } } })) - /*以第一行为初始值*/ - let result = colWidth[0]; + // initial value in the first action + const result = colWidth[0] for (let i = 1; i < colWidth.length; i++) { for (let j = 0; j < colWidth[i].length; j++) { if (result[j]['wch'] < colWidth[i][j]['wch']) { - result[j]['wch'] = colWidth[i][j]['wch']; + result[j]['wch'] = colWidth[i][j]['wch'] } } } - ws['!cols'] = result; + ws['!cols'] = result } - /* add worksheet to workbook */ - wb.SheetNames.push(ws_name); - wb.Sheets[ws_name] = ws; + // add worksheet to workbook + wb.SheetNames.push(ws_name) + wb.Sheets[ws_name] = ws - var wbout = XLSX.write(wb, { + const wbout = XLSX.write(wb, { bookType: bookType, bookSST: false, type: 'binary' - }); + }) saveAs(new Blob([s2ab(wbout)], { - type: "application/octet-stream" - }), `${filename}.${bookType}`); + type: 'application/octet-stream' + }), `${filename}.${bookType}`) } diff --git a/src/vendor/Export2Zip.js b/src/vendor/Export2Zip.js index db70707d..d96ab3f6 100644 --- a/src/vendor/Export2Zip.js +++ b/src/vendor/Export2Zip.js @@ -1,4 +1,3 @@ -/* eslint-disable */ import { saveAs } from 'file-saver' import JSZip from 'jszip' @@ -15,10 +14,11 @@ export function export_txt_to_zip(th, jsonData, txtName, zipName) { }) zip.file(`${txt_name}.txt`, txtData) zip.generateAsync({ - type: "blob" + type: 'blob' }).then((blob) => { saveAs(blob, `${zip_name}.zip`) - }, (err) => { - alert('导出失败') + }, (error) => { + alert('Export Failure') + console.warn(error) }) }