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)
   })
 }