@ -1,11 +1,13 @@ |
|||||||
# 页面标题 |
# 页面标题 |
||||||
VUE_APP_TITLE = 若依管理系统 |
VUE_APP_TITLE = 铭汉能耗监测控制系统 |
||||||
|
|
||||||
# 开发环境配置 |
# 开发环境配置 |
||||||
ENV = 'development' |
ENV = 'development' |
||||||
|
|
||||||
# 若依管理系统/开发环境 |
# 开发环境 |
||||||
VUE_APP_BASE_API = '/dev-api' |
# VUE_APP_BASE_API = '/dev-api' |
||||||
|
# 后台 |
||||||
|
VUE_APP_BASE_API = 'http://192.168.1.222:8080' |
||||||
|
|
||||||
# 路由懒加载 |
# 路由懒加载 |
||||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true |
VUE_CLI_BABEL_TRANSPILE_MODULES = true |
||||||
|
@ -1,8 +1,8 @@ |
|||||||
# 页面标题 |
# 页面标题 |
||||||
VUE_APP_TITLE = 若依管理系统 |
VUE_APP_TITLE = 铭汉能耗监测控制系统 |
||||||
|
|
||||||
# 生产环境配置 |
# 生产环境配置 |
||||||
ENV = 'production' |
ENV = 'production' |
||||||
|
|
||||||
# 若依管理系统/生产环境 |
# 生产环境 |
||||||
VUE_APP_BASE_API = '/prod-api' |
VUE_APP_BASE_API = '/prod-api' |
||||||
|
@ -0,0 +1,140 @@ |
|||||||
|
/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */ |
||||||
|
(function (view) { |
||||||
|
view.URL = view.URL || view.webkitURL; |
||||||
|
if (view.Blob && view.URL) { |
||||||
|
try { |
||||||
|
new Blob; |
||||||
|
return |
||||||
|
} catch (e) { |
||||||
|
} |
||||||
|
} |
||||||
|
var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || (function (view) { |
||||||
|
var get_class = function (object) { |
||||||
|
return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1] |
||||||
|
}, FakeBlobBuilder = function BlobBuilder() { |
||||||
|
this.data = [] |
||||||
|
}, FakeBlob = function Blob(data, type, encoding) { |
||||||
|
this.data = data; |
||||||
|
this.size = data.length; |
||||||
|
this.type = type; |
||||||
|
this.encoding = encoding |
||||||
|
}, FBB_proto = FakeBlobBuilder.prototype, FB_proto = FakeBlob.prototype, FileReaderSync = view.FileReaderSync, |
||||||
|
FileException = function (type) { |
||||||
|
this.code = this[this.name = type] |
||||||
|
}, |
||||||
|
file_ex_codes = ("NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR " + "NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR").split(" "), |
||||||
|
file_ex_code = file_ex_codes.length, real_URL = view.URL || view.webkitURL || view, |
||||||
|
real_create_object_URL = real_URL.createObjectURL, real_revoke_object_URL = real_URL.revokeObjectURL, |
||||||
|
URL = real_URL, btoa = view.btoa, atob = view.atob, ArrayBuffer = view.ArrayBuffer, Uint8Array = view.Uint8Array; |
||||||
|
FakeBlob.fake = FB_proto.fake = true; |
||||||
|
while (file_ex_code--) { |
||||||
|
FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1 |
||||||
|
} |
||||||
|
if (!real_URL.createObjectURL) { |
||||||
|
URL = view.URL = {} |
||||||
|
} |
||||||
|
URL.createObjectURL = function (blob) { |
||||||
|
var type = blob.type, data_URI_header; |
||||||
|
if (type === null) { |
||||||
|
type = "application/octet-stream" |
||||||
|
} |
||||||
|
if (blob instanceof FakeBlob) { |
||||||
|
data_URI_header = "data:" + type; |
||||||
|
if (blob.encoding === "base64") { |
||||||
|
return data_URI_header + ";base64," + blob.data |
||||||
|
} else { |
||||||
|
if (blob.encoding === "URI") { |
||||||
|
return data_URI_header + "," + decodeURIComponent(blob.data) |
||||||
|
} |
||||||
|
} |
||||||
|
if (btoa) { |
||||||
|
return data_URI_header + ";base64," + btoa(blob.data) |
||||||
|
} else { |
||||||
|
return data_URI_header + "," + encodeURIComponent(blob.data) |
||||||
|
} |
||||||
|
} else { |
||||||
|
if (real_create_object_URL) { |
||||||
|
return real_create_object_URL.call(real_URL, blob) |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
URL.revokeObjectURL = function (object_URL) { |
||||||
|
if (object_URL.substring(0, 5) !== "data:" && real_revoke_object_URL) { |
||||||
|
real_revoke_object_URL.call(real_URL, object_URL) |
||||||
|
} |
||||||
|
}; |
||||||
|
FBB_proto.append = function (data) { |
||||||
|
var bb = this.data; |
||||||
|
if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) { |
||||||
|
var str = "", buf = new Uint8Array(data), i = 0, buf_len = buf.length; |
||||||
|
for (; i < buf_len; i++) { |
||||||
|
str += String.fromCharCode(buf[i]) |
||||||
|
} |
||||||
|
bb.push(str) |
||||||
|
} else { |
||||||
|
if (get_class(data) === "Blob" || get_class(data) === "File") { |
||||||
|
if (FileReaderSync) { |
||||||
|
var fr = new FileReaderSync; |
||||||
|
bb.push(fr.readAsBinaryString(data)) |
||||||
|
} else { |
||||||
|
throw new FileException("NOT_READABLE_ERR") |
||||||
|
} |
||||||
|
} else { |
||||||
|
if (data instanceof FakeBlob) { |
||||||
|
if (data.encoding === "base64" && atob) { |
||||||
|
bb.push(atob(data.data)) |
||||||
|
} else { |
||||||
|
if (data.encoding === "URI") { |
||||||
|
bb.push(decodeURIComponent(data.data)) |
||||||
|
} else { |
||||||
|
if (data.encoding === "raw") { |
||||||
|
bb.push(data.data) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
if (typeof data !== "string") { |
||||||
|
data += "" |
||||||
|
} |
||||||
|
bb.push(unescape(encodeURIComponent(data))) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
FBB_proto.getBlob = function (type) { |
||||||
|
if (!arguments.length) { |
||||||
|
type = null |
||||||
|
} |
||||||
|
return new FakeBlob(this.data.join(""), type, "raw") |
||||||
|
}; |
||||||
|
FBB_proto.toString = function () { |
||||||
|
return "[object BlobBuilder]" |
||||||
|
}; |
||||||
|
FB_proto.slice = function (start, end, type) { |
||||||
|
var args = arguments.length; |
||||||
|
if (args < 3) { |
||||||
|
type = null |
||||||
|
} |
||||||
|
return new FakeBlob(this.data.slice(start, args > 1 ? end : this.data.length), type, this.encoding) |
||||||
|
}; |
||||||
|
FB_proto.toString = function () { |
||||||
|
return "[object Blob]" |
||||||
|
}; |
||||||
|
FB_proto.close = function () { |
||||||
|
this.size = this.data.length = 0 |
||||||
|
}; |
||||||
|
return FakeBlobBuilder |
||||||
|
}(view)); |
||||||
|
view.Blob = function Blob(blobParts, options) { |
||||||
|
var type = options ? (options.type || "") : ""; |
||||||
|
var builder = new BlobBuilder(); |
||||||
|
if (blobParts) { |
||||||
|
for (var i = 0, len = blobParts.length; i < len; i++) { |
||||||
|
builder.append(blobParts[i]) |
||||||
|
} |
||||||
|
} |
||||||
|
return builder.getBlob(type) |
||||||
|
} |
||||||
|
}(typeof self !== "undefined" && self || typeof window !== "undefined" && window || this.content || this)); |
||||||
|
|
||||||
|
|
@ -0,0 +1,236 @@ |
|||||||
|
// 引入file插件
|
||||||
|
import FileSaver from "file-saver"; |
||||||
|
// 引入xlsx插件
|
||||||
|
import * as 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; |
||||||
|
|
||||||
|
//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); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
//Handle Row Span
|
||||||
|
if (rowspan || colspan) { |
||||||
|
rowspan = rowspan || 1; |
||||||
|
colspan = colspan || 1; |
||||||
|
ranges.push({ |
||||||
|
s: { |
||||||
|
r: R, |
||||||
|
c: outRow.length |
||||||
|
}, |
||||||
|
e: { |
||||||
|
r: R + rowspan - 1, |
||||||
|
c: outRow.length + colspan - 1 |
||||||
|
} |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
//Handle Value
|
||||||
|
outRow.push(cellValue !== "" ? cellValue : null); |
||||||
|
|
||||||
|
//Handle Colspan
|
||||||
|
if (colspan) |
||||||
|
for (var k = 0; k < colspan - 1; ++k) outRow.push(null); |
||||||
|
} |
||||||
|
out.push(outRow); |
||||||
|
} |
||||||
|
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); |
||||||
|
} |
||||||
|
|
||||||
|
function sheet_from_array_of_arrays(data, opts) { |
||||||
|
var ws = {}; |
||||||
|
var range = { |
||||||
|
s: { |
||||||
|
c: 10000000, |
||||||
|
r: 10000000 |
||||||
|
}, |
||||||
|
e: { |
||||||
|
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 = { |
||||||
|
v: data[R][C] |
||||||
|
}; |
||||||
|
if (cell.v == null) continue; |
||||||
|
var 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 (R == 0) { |
||||||
|
cell.s = { |
||||||
|
fill: { |
||||||
|
fgColor: { |
||||||
|
rgb: 'FFFF0000' |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
ws[cell_ref] = cell; |
||||||
|
} |
||||||
|
} |
||||||
|
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 = {}; |
||||||
|
} |
||||||
|
|
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
export function export_table_to_excel(id) { |
||||||
|
var theTable = document.getElementById(id); |
||||||
|
var oo = generateArray(theTable); |
||||||
|
var ranges = oo[1]; |
||||||
|
|
||||||
|
/* original data */ |
||||||
|
var data = oo[0]; |
||||||
|
var ws_name = "SheetJS"; |
||||||
|
|
||||||
|
var wb = new Workbook(), |
||||||
|
ws = sheet_from_array_of_arrays(data); |
||||||
|
|
||||||
|
/* 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; |
||||||
|
|
||||||
|
var wbout = XLSX.write(wb, { |
||||||
|
bookType: 'xlsx', |
||||||
|
bookSST: false, |
||||||
|
type: 'binary' |
||||||
|
}); |
||||||
|
|
||||||
|
saveAs(new Blob([s2ab(wbout)], { |
||||||
|
type: "application/octet-stream" |
||||||
|
}), "test.xlsx") |
||||||
|
} |
||||||
|
|
||||||
|
export function export_json_to_excel({ |
||||||
|
multiHeader = [], |
||||||
|
header, |
||||||
|
data, |
||||||
|
filename, |
||||||
|
merges = [], |
||||||
|
autoWidth = true, |
||||||
|
bookType = 'xlsx' |
||||||
|
} = {}) { |
||||||
|
/* original data */ |
||||||
|
filename = filename || 'excel-list' |
||||||
|
data = [...data] |
||||||
|
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); |
||||||
|
|
||||||
|
if (merges.length > 0) { |
||||||
|
if (!ws['!merges']) ws['!merges'] = []; |
||||||
|
merges.forEach(item => { |
||||||
|
ws['!merges'].push(XLSX.utils.decode_range(item)) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
if (autoWidth) { |
||||||
|
/*设置worksheet每列的最大宽度*/ |
||||||
|
const colWidth = data.map(row => row.map(val => { |
||||||
|
/*先判断是否为null/undefined*/ |
||||||
|
if (val == null) { |
||||||
|
return { |
||||||
|
'wch': 10 |
||||||
|
}; |
||||||
|
} |
||||||
|
/*再判断是否为中文*/ |
||||||
|
else if (val.toString().charCodeAt(0) > 255) { |
||||||
|
return { |
||||||
|
'wch': val.toString().length * 2 |
||||||
|
}; |
||||||
|
} else { |
||||||
|
return { |
||||||
|
'wch': val.toString().length |
||||||
|
}; |
||||||
|
} |
||||||
|
})) |
||||||
|
/*以第一行为初始值*/ |
||||||
|
let 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']; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
ws['!cols'] = result; |
||||||
|
} |
||||||
|
|
||||||
|
/* add worksheet to workbook */ |
||||||
|
wb.SheetNames.push(ws_name); |
||||||
|
wb.Sheets[ws_name] = ws; |
||||||
|
|
||||||
|
var wbout = XLSX.write(wb, { |
||||||
|
bookType: bookType, |
||||||
|
bookSST: false, |
||||||
|
type: 'binary' |
||||||
|
}); |
||||||
|
saveAs(new Blob([s2ab(wbout)], { |
||||||
|
type: "application/octet-stream" |
||||||
|
}), `${filename}.${bookType}`); |
||||||
|
} |
@ -0,0 +1,58 @@ |
|||||||
|
// import XLSX from 'xlsx'
|
||||||
|
// 引入file插件
|
||||||
|
import FileSaver from "file-saver"; |
||||||
|
// 引入xlsx插件
|
||||||
|
import * as XLSX from "xlsx"; |
||||||
|
|
||||||
|
export function readExcel(file){ |
||||||
|
const types = file.name.split('.')[1]; |
||||||
|
const fileType = [ |
||||||
|
'xlsx', 'xlc', 'xlm', 'xls', 'xlt', 'xlw', 'csv' |
||||||
|
].some(item => item == types); |
||||||
|
if (!fileType) { |
||||||
|
this.$message({ |
||||||
|
type: 'waring', |
||||||
|
message: '格式错误!请重新选择' |
||||||
|
}) |
||||||
|
return |
||||||
|
} |
||||||
|
const reader = new FileReader(); |
||||||
|
let result = []; |
||||||
|
reader.onload = function(e) { |
||||||
|
const data = e.target.result; |
||||||
|
const wb = XLSX.read(data, { |
||||||
|
type: 'binary' |
||||||
|
}); |
||||||
|
wb.SheetNames.forEach((sheetName) => { |
||||||
|
result.push({ |
||||||
|
sheetName: sheetName, |
||||||
|
sheet: XLSX.utils.sheet_to_json(wb.Sheets[sheetName]) |
||||||
|
}) |
||||||
|
}); |
||||||
|
}; |
||||||
|
reader.readAsBinaryString(file.raw) |
||||||
|
console.log(result) |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
export function file2Xce(file){ |
||||||
|
return new Promise(function (resolve, reject) { |
||||||
|
const reader = new FileReader() |
||||||
|
reader.onload = function (e) { |
||||||
|
const data = e.target.result |
||||||
|
this.wb = XLSX.read(data, { |
||||||
|
type: 'binary' |
||||||
|
}) |
||||||
|
const result = [] |
||||||
|
this.wb.SheetNames.forEach((sheetName) => { |
||||||
|
result.push({ |
||||||
|
sheetName: sheetName, |
||||||
|
sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName]) |
||||||
|
}) |
||||||
|
}) |
||||||
|
resolve(result) |
||||||
|
} |
||||||
|
reader.readAsBinaryString(file.raw) |
||||||
|
// reader.readAsBinaryString(file) // 传统input方法
|
||||||
|
}) |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
@font-face { |
||||||
|
font-family: "YouSheBiaoTiHei"; |
||||||
|
src: url("./YouSheBiaoTiHei.ttf") format("woff") |
||||||
|
} |
||||||
|
@font-face { |
||||||
|
font-family: "DIN-Bold"; |
||||||
|
src: url("./DIN-Bold.otf") format("woff") |
||||||
|
} |
||||||
|
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 600 B After Width: | Height: | Size: 616 B |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 819 B |
After Width: | Height: | Size: 2.2 MiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 1.9 MiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 773 B |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 820 B |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 777 B |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 323 B |
After Width: | Height: | Size: 252 B |
After Width: | Height: | Size: 249 B |
After Width: | Height: | Size: 3.2 KiB |
@ -1,21 +0,0 @@ |
|||||||
<template> |
|
||||||
<div> |
|
||||||
<svg-icon icon-class="question" @click="goto" /> |
|
||||||
</div> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script> |
|
||||||
export default { |
|
||||||
name: 'RuoYiDoc', |
|
||||||
data() { |
|
||||||
return { |
|
||||||
url: 'http://doc.ruoyi.vip/ruoyi-vue' |
|
||||||
} |
|
||||||
}, |
|
||||||
methods: { |
|
||||||
goto() { |
|
||||||
window.open(this.url) |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
</script> |
|
@ -1,21 +0,0 @@ |
|||||||
<template> |
|
||||||
<div> |
|
||||||
<svg-icon icon-class="github" @click="goto" /> |
|
||||||
</div> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script> |
|
||||||
export default { |
|
||||||
name: 'RuoYiGit', |
|
||||||
data() { |
|
||||||
return { |
|
||||||
url: 'https://gitee.com/y_project/RuoYi-Vue' |
|
||||||
} |
|
||||||
}, |
|
||||||
methods: { |
|
||||||
goto() { |
|
||||||
window.open(this.url) |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
</script> |
|
@ -1,56 +0,0 @@ |
|||||||
<template> |
|
||||||
<el-dropdown trigger="click" @command="handleSetSize"> |
|
||||||
<div> |
|
||||||
<svg-icon class-name="size-icon" icon-class="size" /> |
|
||||||
</div> |
|
||||||
<el-dropdown-menu slot="dropdown"> |
|
||||||
<el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value"> |
|
||||||
{{ item.label }} |
|
||||||
</el-dropdown-item> |
|
||||||
</el-dropdown-menu> |
|
||||||
</el-dropdown> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script> |
|
||||||
export default { |
|
||||||
data() { |
|
||||||
return { |
|
||||||
sizeOptions: [ |
|
||||||
{ label: 'Default', value: 'default' }, |
|
||||||
{ label: 'Medium', value: 'medium' }, |
|
||||||
{ label: 'Small', value: 'small' }, |
|
||||||
{ label: 'Mini', value: 'mini' } |
|
||||||
] |
|
||||||
} |
|
||||||
}, |
|
||||||
computed: { |
|
||||||
size() { |
|
||||||
return this.$store.getters.size |
|
||||||
} |
|
||||||
}, |
|
||||||
methods: { |
|
||||||
handleSetSize(size) { |
|
||||||
this.$ELEMENT.size = size |
|
||||||
this.$store.dispatch('app/setSize', size) |
|
||||||
this.refreshView() |
|
||||||
this.$message({ |
|
||||||
message: 'Switch Size Success', |
|
||||||
type: 'success' |
|
||||||
}) |
|
||||||
}, |
|
||||||
refreshView() { |
|
||||||
// In order to make the cached page re-rendered |
|
||||||
this.$store.dispatch('tagsView/delAllCachedViews', this.$route) |
|
||||||
|
|
||||||
const { fullPath } = this.$route |
|
||||||
|
|
||||||
this.$nextTick(() => { |
|
||||||
this.$router.replace({ |
|
||||||
path: '/redirect' + fullPath |
|
||||||
}) |
|
||||||
}) |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
</script> |
|