ref: Remove eslint-disbale.
This commit is contained in:
		| @@ -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 | ||||
|       } | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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> | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										247
									
								
								src/vendor/Export2Excel.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										247
									
								
								src/vendor/Export2Excel.js
									
									
									
									
										vendored
									
									
								
							| @@ -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}`) | ||||
| } | ||||
|   | ||||
							
								
								
									
										8
									
								
								src/vendor/Export2Zip.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								src/vendor/Export2Zip.js
									
									
									
									
										vendored
									
									
								
							| @@ -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) | ||||
|   }) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user