@@ -0,0 +1,456 @@ | |||
/* Blob.js | |||
* A Blob, File, FileReader & URL implementation. | |||
* 2018-08-09 | |||
* | |||
* By Eli Grey, http://eligrey.com | |||
* By Jimmy Wärting, https://github.com/jimmywarting | |||
* License: MIT | |||
* See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md | |||
*/ | |||
;(function(){ | |||
var global = typeof window === 'object' | |||
? window : typeof self === 'object' | |||
? self : this | |||
var BlobBuilder = global.BlobBuilder | |||
|| global.WebKitBlobBuilder | |||
|| global.MSBlobBuilder | |||
|| global.MozBlobBuilder; | |||
global.URL = global.URL || global.webkitURL || function(href, a) { | |||
a = document.createElement('a') | |||
a.href = href | |||
return a | |||
} | |||
var origBlob = global.Blob | |||
var createObjectURL = URL.createObjectURL | |||
var revokeObjectURL = URL.revokeObjectURL | |||
var strTag = global.Symbol && global.Symbol.toStringTag | |||
var blobSupported = false | |||
var blobSupportsArrayBufferView = false | |||
var arrayBufferSupported = !!global.ArrayBuffer | |||
var blobBuilderSupported = BlobBuilder | |||
&& BlobBuilder.prototype.append | |||
&& BlobBuilder.prototype.getBlob; | |||
try { | |||
// Check if Blob constructor is supported | |||
blobSupported = new Blob(['ä']).size === 2 | |||
// Check if Blob constructor supports ArrayBufferViews | |||
// Fails in Safari 6, so we need to map to ArrayBuffers there. | |||
blobSupportsArrayBufferView = new Blob([new Uint8Array([1,2])]).size === 2 | |||
} catch(e) {} | |||
/** | |||
* Helper function that maps ArrayBufferViews to ArrayBuffers | |||
* Used by BlobBuilder constructor and old browsers that didn't | |||
* support it in the Blob constructor. | |||
*/ | |||
function mapArrayBufferViews(ary) { | |||
return ary.map(function(chunk) { | |||
if (chunk.buffer instanceof ArrayBuffer) { | |||
var buf = chunk.buffer; | |||
// if this is a subarray, make a copy so we only | |||
// include the subarray region from the underlying buffer | |||
if (chunk.byteLength !== buf.byteLength) { | |||
var copy = new Uint8Array(chunk.byteLength); | |||
copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength)); | |||
buf = copy.buffer; | |||
} | |||
return buf; | |||
} | |||
return chunk; | |||
}); | |||
} | |||
function BlobBuilderConstructor(ary, options) { | |||
options = options || {}; | |||
var bb = new BlobBuilder(); | |||
mapArrayBufferViews(ary).forEach(function(part) { | |||
bb.append(part); | |||
}); | |||
return options.type ? bb.getBlob(options.type) : bb.getBlob(); | |||
}; | |||
function BlobConstructor(ary, options) { | |||
return new origBlob(mapArrayBufferViews(ary), options || {}); | |||
}; | |||
if (global.Blob) { | |||
BlobBuilderConstructor.prototype = Blob.prototype; | |||
BlobConstructor.prototype = Blob.prototype; | |||
} | |||
function FakeBlobBuilder() { | |||
function toUTF8Array(str) { | |||
var utf8 = []; | |||
for (var i=0; i < str.length; i++) { | |||
var charcode = str.charCodeAt(i); | |||
if (charcode < 0x80) utf8.push(charcode); | |||
else if (charcode < 0x800) { | |||
utf8.push(0xc0 | (charcode >> 6), | |||
0x80 | (charcode & 0x3f)); | |||
} | |||
else if (charcode < 0xd800 || charcode >= 0xe000) { | |||
utf8.push(0xe0 | (charcode >> 12), | |||
0x80 | ((charcode>>6) & 0x3f), | |||
0x80 | (charcode & 0x3f)); | |||
} | |||
// surrogate pair | |||
else { | |||
i++; | |||
// UTF-16 encodes 0x10000-0x10FFFF by | |||
// subtracting 0x10000 and splitting the | |||
// 20 bits of 0x0-0xFFFFF into two halves | |||
charcode = 0x10000 + (((charcode & 0x3ff)<<10) | |||
| (str.charCodeAt(i) & 0x3ff)); | |||
utf8.push(0xf0 | (charcode >>18), | |||
0x80 | ((charcode>>12) & 0x3f), | |||
0x80 | ((charcode>>6) & 0x3f), | |||
0x80 | (charcode & 0x3f)); | |||
} | |||
} | |||
return utf8; | |||
} | |||
function fromUtf8Array(array) { | |||
var out, i, len, c; | |||
var char2, char3; | |||
out = ""; | |||
len = array.length; | |||
i = 0; | |||
while (i < len) { | |||
c = array[i++]; | |||
switch (c >> 4) | |||
{ | |||
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: | |||
// 0xxxxxxx | |||
out += String.fromCharCode(c); | |||
break; | |||
case 12: case 13: | |||
// 110x xxxx 10xx xxxx | |||
char2 = array[i++]; | |||
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); | |||
break; | |||
case 14: | |||
// 1110 xxxx 10xx xxxx 10xx xxxx | |||
char2 = array[i++]; | |||
char3 = array[i++]; | |||
out += String.fromCharCode(((c & 0x0F) << 12) | | |||
((char2 & 0x3F) << 6) | | |||
((char3 & 0x3F) << 0)); | |||
break; | |||
} | |||
} | |||
return out; | |||
} | |||
function isDataView(obj) { | |||
return obj && DataView.prototype.isPrototypeOf(obj) | |||
} | |||
function bufferClone(buf) { | |||
var view = new Array(buf.byteLength) | |||
var array = new Uint8Array(buf) | |||
var i = view.length | |||
while(i--) { | |||
view[i] = array[i] | |||
} | |||
return view | |||
} | |||
function encodeByteArray(input) { | |||
var byteToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' | |||
var output = []; | |||
for (var i = 0; i < input.length; i += 3) { | |||
var byte1 = input[i]; | |||
var haveByte2 = i + 1 < input.length; | |||
var byte2 = haveByte2 ? input[i + 1] : 0; | |||
var haveByte3 = i + 2 < input.length; | |||
var byte3 = haveByte3 ? input[i + 2] : 0; | |||
var outByte1 = byte1 >> 2; | |||
var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4); | |||
var outByte3 = ((byte2 & 0x0F) << 2) | (byte3 >> 6); | |||
var outByte4 = byte3 & 0x3F; | |||
if (!haveByte3) { | |||
outByte4 = 64; | |||
if (!haveByte2) { | |||
outByte3 = 64; | |||
} | |||
} | |||
output.push( | |||
byteToCharMap[outByte1], byteToCharMap[outByte2], | |||
byteToCharMap[outByte3], byteToCharMap[outByte4]) | |||
} | |||
return output.join('') | |||
} | |||
var create = Object.create || function (a) { | |||
function c() {} | |||
c.prototype = a; | |||
return new c | |||
} | |||
if (arrayBufferSupported) { | |||
var viewClasses = [ | |||
'[object Int8Array]', | |||
'[object Uint8Array]', | |||
'[object Uint8ClampedArray]', | |||
'[object Int16Array]', | |||
'[object Uint16Array]', | |||
'[object Int32Array]', | |||
'[object Uint32Array]', | |||
'[object Float32Array]', | |||
'[object Float64Array]' | |||
] | |||
var isArrayBufferView = ArrayBuffer.isView || function(obj) { | |||
return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 | |||
} | |||
} | |||
/********************************************************/ | |||
/* Blob constructor */ | |||
/********************************************************/ | |||
function Blob(chunks, opts) { | |||
chunks = chunks || [] | |||
for (var i = 0, len = chunks.length; i < len; i++) { | |||
var chunk = chunks[i] | |||
if (chunk instanceof Blob) { | |||
chunks[i] = chunk._buffer | |||
} else if (typeof chunk === 'string') { | |||
chunks[i] = toUTF8Array(chunk) | |||
} else if (arrayBufferSupported && (ArrayBuffer.prototype.isPrototypeOf(chunk) || isArrayBufferView(chunk))) { | |||
chunks[i] = bufferClone(chunk) | |||
} else if (arrayBufferSupported && isDataView(chunk)) { | |||
chunks[i] = bufferClone(chunk.buffer) | |||
} else { | |||
chunks[i] = toUTF8Array(String(chunk)) | |||
} | |||
} | |||
this._buffer = [].concat.apply([], chunks) | |||
this.size = this._buffer.length | |||
this.type = opts ? opts.type || '' : '' | |||
} | |||
Blob.prototype.slice = function(start, end, type) { | |||
var slice = this._buffer.slice(start || 0, end || this._buffer.length) | |||
return new Blob([slice], {type: type}) | |||
} | |||
Blob.prototype.toString = function() { | |||
return '[object Blob]' | |||
} | |||
/********************************************************/ | |||
/* File constructor */ | |||
/********************************************************/ | |||
function File(chunks, name, opts) { | |||
opts = opts || {} | |||
var a = Blob.call(this, chunks, opts) || this | |||
a.name = name | |||
a.lastModifiedDate = opts.lastModified ? new Date(opts.lastModified) : new Date | |||
a.lastModified = +a.lastModifiedDate | |||
return a | |||
} | |||
File.prototype = create(Blob.prototype); | |||
File.prototype.constructor = File; | |||
if (Object.setPrototypeOf) | |||
Object.setPrototypeOf(File, Blob); | |||
else { | |||
try {File.__proto__ = Blob} catch (e) {} | |||
} | |||
File.prototype.toString = function() { | |||
return '[object File]' | |||
} | |||
/********************************************************/ | |||
/* FileReader constructor */ | |||
/********************************************************/ | |||
function FileReader() { | |||
if (!(this instanceof FileReader)) | |||
throw new TypeError("Failed to construct 'FileReader': Please use the 'new' operator, this DOM object constructor cannot be called as a function.") | |||
var delegate = document.createDocumentFragment() | |||
this.addEventListener = delegate.addEventListener | |||
this.dispatchEvent = function(evt) { | |||
var local = this['on' + evt.type] | |||
if (typeof local === 'function') local(evt) | |||
delegate.dispatchEvent(evt) | |||
} | |||
this.removeEventListener = delegate.removeEventListener | |||
} | |||
function _read(fr, blob, kind) { | |||
if (!(blob instanceof Blob)) | |||
throw new TypeError("Failed to execute '" + kind + "' on 'FileReader': parameter 1 is not of type 'Blob'.") | |||
fr.result = '' | |||
setTimeout(function(){ | |||
this.readyState = FileReader.LOADING | |||
fr.dispatchEvent(new Event('load')) | |||
fr.dispatchEvent(new Event('loadend')) | |||
}) | |||
} | |||
FileReader.EMPTY = 0 | |||
FileReader.LOADING = 1 | |||
FileReader.DONE = 2 | |||
FileReader.prototype.error = null | |||
FileReader.prototype.onabort = null | |||
FileReader.prototype.onerror = null | |||
FileReader.prototype.onload = null | |||
FileReader.prototype.onloadend = null | |||
FileReader.prototype.onloadstart = null | |||
FileReader.prototype.onprogress = null | |||
FileReader.prototype.readAsDataURL = function(blob) { | |||
_read(this, blob, 'readAsDataURL') | |||
this.result = 'data:' + blob.type + ';base64,' + encodeByteArray(blob._buffer) | |||
} | |||
FileReader.prototype.readAsText = function(blob) { | |||
_read(this, blob, 'readAsText') | |||
this.result = fromUtf8Array(blob._buffer) | |||
} | |||
FileReader.prototype.readAsArrayBuffer = function(blob) { | |||
_read(this, blob, 'readAsText') | |||
this.result = blob._buffer.slice() | |||
} | |||
FileReader.prototype.abort = function() {} | |||
/********************************************************/ | |||
/* URL */ | |||
/********************************************************/ | |||
URL.createObjectURL = function(blob) { | |||
return blob instanceof Blob | |||
? 'data:' + blob.type + ';base64,' + encodeByteArray(blob._buffer) | |||
: createObjectURL.call(URL, blob) | |||
} | |||
URL.revokeObjectURL = function(url) { | |||
revokeObjectURL && revokeObjectURL.call(URL, url) | |||
} | |||
/********************************************************/ | |||
/* XHR */ | |||
/********************************************************/ | |||
var _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send | |||
if (_send) { | |||
XMLHttpRequest.prototype.send = function(data) { | |||
if (data instanceof Blob) { | |||
this.setRequestHeader('Content-Type', data.type) | |||
_send.call(this, fromUtf8Array(data._buffer)) | |||
} else { | |||
_send.call(this, data) | |||
} | |||
} | |||
} | |||
global.FileReader = FileReader | |||
global.File = File | |||
global.Blob = Blob | |||
} | |||
if (strTag) { | |||
File.prototype[strTag] = 'File' | |||
Blob.prototype[strTag] = 'Blob' | |||
FileReader.prototype[strTag] = 'FileReader' | |||
} | |||
function fixFileAndXHR() { | |||
var isIE = !!global.ActiveXObject || ( | |||
'-ms-scroll-limit' in document.documentElement.style && | |||
'-ms-ime-align' in document.documentElement.style | |||
) | |||
// Monkey patched | |||
// IE don't set Content-Type header on XHR whose body is a typed Blob | |||
// https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6047383 | |||
var _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send | |||
if (isIE && _send) { | |||
XMLHttpRequest.prototype.send = function(data) { | |||
if (data instanceof Blob) { | |||
this.setRequestHeader('Content-Type', data.type) | |||
_send.call(this, data) | |||
} else { | |||
_send.call(this, data) | |||
} | |||
} | |||
} | |||
try { | |||
new File([], '') | |||
} catch(e) { | |||
try { | |||
var klass = new Function('class File extends Blob {' + | |||
'constructor(chunks, name, opts) {' + | |||
'opts = opts || {};' + | |||
'super(chunks, opts || {});' + | |||
'this.name = name;' + | |||
'this.lastModifiedDate = opts.lastModified ? new Date(opts.lastModified) : new Date;' + | |||
'this.lastModified = +this.lastModifiedDate;' + | |||
'}};' + | |||
'return new File([], ""), File' | |||
)() | |||
global.File = klass | |||
} catch(e) { | |||
var klass = function(b, d, c) { | |||
var blob = new Blob(b, c) | |||
var t = c && void 0 !== c.lastModified ? new Date(c.lastModified) : new Date | |||
blob.name = d | |||
blob.lastModifiedDate = t | |||
blob.lastModified = +t | |||
blob.toString = function() { | |||
return '[object File]' | |||
} | |||
if (strTag) | |||
blob[strTag] = 'File' | |||
return blob | |||
} | |||
global.File = klass | |||
} | |||
} | |||
} | |||
if (blobSupported) { | |||
fixFileAndXHR() | |||
global.Blob = blobSupportsArrayBufferView ? global.Blob : BlobConstructor | |||
} else if (blobBuilderSupported) { | |||
fixFileAndXHR() | |||
global.Blob = BlobBuilderConstructor; | |||
} else { | |||
FakeBlobBuilder() | |||
} | |||
})(); |
@@ -0,0 +1,141 @@ | |||
/* eslint-disable */ | |||
require('script-loader!file-saver'); | |||
require('script-loader!@/excel/Blob'); | |||
require('script-loader!xlsx/dist/xlsx.core.min'); | |||
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'; | |||
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); | |||
console.log('a') | |||
var oo = generateArray(theTable); | |||
var ranges = oo[1]; | |||
/* original data */ | |||
var data = oo[0]; | |||
var ws_name = "SheetJS"; | |||
console.log(data); | |||
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") | |||
} | |||
function formatJson(jsonData) { | |||
console.log(jsonData) | |||
} | |||
export function export_json_to_excel(th, jsonData, defaultTitle) { | |||
/* original data */ | |||
var data = jsonData; | |||
data.unshift(th); | |||
var ws_name = "SheetJS"; | |||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data); | |||
/* 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'}); | |||
var title = defaultTitle || '列表' | |||
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), title + ".xlsx") | |||
} |
@@ -14,7 +14,7 @@ | |||
<el-table :data="tableData" border style="width: 100%" class="table_box" scrollbar-always-on="true" stripe > | |||
<el-table-column prop="date" label="卡号" width="100px"/> | |||
<el-table-column prop="name" label="需要补交的金额" /> | |||
<el-table-column prop="address" label="卡账生成时间" /> | |||
<el-table-column prop="regtime" label="卡账生成时间" /> | |||
<el-table-column prop="number" label="卡片所属渠道" /> | |||
<el-table-column label="操作" class="table_btn" width="150px" align="center"> | |||
<el-tooltip content="详细" placement="top"> | |||
@@ -27,8 +27,8 @@ | |||
<el-pagination :page-size="20" :pager-count="11" layout="prev, pager, next" :total="1000" /> | |||
</div> | |||
<el-dialog v-model="dialogFormVisible" :title="title"> | |||
<el-form :model="form" v-if="delivery"> | |||
<el-dialog v-model="dialogFormVisible" title="补交详细"> | |||
<el-form :model="form"> | |||
<el-form-item label="手机号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.phone" autocomplete="off" disabled /> | |||
</el-form-item> | |||
@@ -36,15 +36,6 @@ | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<el-form :model="form" v-else> | |||
<el-form-item label="对公账户资金账户编号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.number" autocomplete="off" disabled /> | |||
</el-form-item> | |||
<el-form-item label="验证码" :label-width="formLabelWidth"> | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<template #footer> | |||
<span class="dialog-footer"> | |||
<el-button @click="dialogFormVisible = false">确定</el-button> | |||
@@ -164,30 +155,10 @@ | |||
] | |||
const tableData = [{ | |||
date: '01', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '02', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '03', | |||
name: 'Liu461185', | |||
date: '52011750220200003674', | |||
name: '100.00', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
number: "黔通", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", |
@@ -4,13 +4,13 @@ | |||
<el-form :inline="true" :model="formInline" class="demo-form-inline"> | |||
<el-form-item label="导入时间"> | |||
<div class="block"> | |||
<el-date-picker v-model="value1" type="datetime" placeholder="" /> | |||
<el-date-picker v-model="value1" type="datetime" placeholder="请选择申请开始时间" /> | |||
</div> | |||
<el-icon> | |||
<semi-select /> | |||
</el-icon> | |||
<div class="block"> | |||
<el-date-picker v-model="value2" type="datetime" placeholder="" /> | |||
<el-date-picker v-model="value2" type="datetime" placeholder="请选择申请结束时间" /> | |||
</div> | |||
</el-form-item> | |||
<el-form-item label="对方账号"> | |||
@@ -32,17 +32,17 @@ | |||
</el-form> | |||
</div> | |||
<el-table :data="tableData" border style="width: 100%" class="table_box" scrollbar-always-on="true" stripe > | |||
<el-table-column prop="date" label="交易流水号" width="100px"/> | |||
<el-table-column prop="name" label="交易时间" /> | |||
<el-table-column prop="address" label="支出金额" /> | |||
<el-table-column prop="number" label="收入金额" /> | |||
<el-table-column prop="time" label="对方账号" /> | |||
<el-table-column prop="type" label="对方户名" /> | |||
<el-table-column prop="regname" label="对方行名" /> | |||
<el-table-column prop="regtime" label="对公账户账号" /> | |||
<el-table-column prop="type" label="用途" /> | |||
<el-table-column prop="regname" label="附言" /> | |||
<el-table-column prop="regtime" label="摘要" /> | |||
<el-table-column prop="date" label="交易流水号" width="200px"/> | |||
<el-table-column prop="name" label="交易时间" width="200px"/> | |||
<el-table-column prop="address" label="支出金额" width="200px"/> | |||
<el-table-column prop="number" label="收入金额" width="200px"/> | |||
<el-table-column prop="time" label="对方账号" width="200px"/> | |||
<el-table-column prop="type" label="对方户名" width="200px"/> | |||
<el-table-column prop="regname" label="对方行名" width="200px"/> | |||
<el-table-column prop="nonumber" label="对公账户账号" width="200px"/> | |||
<el-table-column prop="use" label="用途" width="200px"/> | |||
<el-table-column prop="nonumbers" label="附言" width="200px"/> | |||
<el-table-column prop="usetype" label="摘要" width="200px"/> | |||
<el-table-column label="操作" class="table_btn" width="150px" align="center"> | |||
<el-tooltip content="详细" placement="top"> | |||
<el-button type="warning" disabled>已同意</el-button> | |||
@@ -55,7 +55,7 @@ | |||
</div> | |||
<el-dialog v-model="dialogFormVisible" :title="title"> | |||
<el-form :model="form" v-if="delivery"> | |||
<el-form :model="form"> | |||
<el-form-item label="手机号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.phone" autocomplete="off" disabled /> | |||
</el-form-item> | |||
@@ -63,22 +63,10 @@ | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<el-form :model="form" v-else> | |||
<el-form-item label="对公账户资金账户编号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.number" autocomplete="off" disabled /> | |||
</el-form-item> | |||
<el-form-item label="验证码" :label-width="formLabelWidth"> | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<template #footer> | |||
<span class="dialog-footer"> | |||
<!-- <span class="dialog-footer"> | |||
<el-button @click="dialogFormVisible = false">确定</el-button> | |||
<el-button type="primary" @click="dialogFormVisible = false">关闭</el-button> | |||
</span> | |||
</template> | |||
</span> --> | |||
</el-dialog> | |||
</div> | |||
</template> | |||
@@ -190,35 +178,20 @@ | |||
}, | |||
] | |||
const tableData = [{ | |||
date: '01', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '02', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
const tableData = [ | |||
{ | |||
date: '03', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
date: '34625032', | |||
name: '2022-05-07', | |||
address: '0.0', | |||
number: "5000.0", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
type: "23921001040002085", | |||
regname: "贵州省黔西南州水文水资源局", | |||
regtime: "中国农业银行股份有限公司兴义南盘江支行", | |||
nonumber:"szm123456", | |||
nonumbers:"贵E15389充ETC", | |||
use:"测试", | |||
usetype:"小额来账自动入账" | |||
} | |||
] | |||
</script> |
@@ -7,16 +7,16 @@ | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary">读卡</el-button> | |||
<el-button :icon="Search" type="primary">查询</el-button> | |||
<el-button :icon="Search" type="primary">查询</el-button> | |||
</el-form-item> | |||
</el-form> | |||
</div> | |||
<el-table :data="tableData" border style="width: 100%" class="table_box" scrollbar-always-on="true" stripe > | |||
<el-table :data="tableData" border style="width: 100%" class="table_box" scrollbar-always-on="true" stripe> | |||
<el-table-column prop="name" label="黔通卡号" /> | |||
<el-table-column prop="address" label="充值前余额(元)" /> | |||
<el-table-column prop="number" label="充值金额(元)" /> | |||
<el-table-column prop="time" label="充值后余额(元)<" /> | |||
<el-table-column prop="type" label="充值时间" /> | |||
<el-table-column prop="time" label="充值后余额(元)" /> | |||
<el-table-column prop="regtime" label="充值时间" /> | |||
<el-table-column label="操作" class="table_btn" width="150px" align="center"> | |||
<el-tooltip content="详细" placement="top"> | |||
<el-button type="warning" @click="dialogFormVisible = true">查看详细</el-button> | |||
@@ -37,7 +37,7 @@ | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<el-form :model="form" v-else> | |||
<el-form-item label="对公账户资金账户编号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.number" autocomplete="off" disabled /> | |||
@@ -52,7 +52,7 @@ | |||
<el-button type="primary" @click="dialogFormVisible = false">关闭</el-button> | |||
</span> | |||
</template> | |||
</el-dialog> | |||
</div> | |||
</template> | |||
@@ -75,7 +75,7 @@ | |||
const onSubmit = () => { | |||
console.log('submit!') | |||
} | |||
let title = ref("对公账户信息") | |||
const options = [{ | |||
@@ -104,20 +104,20 @@ | |||
const value2 = ref('') | |||
const value3 = ref('') | |||
const value4 = ref('') | |||
const dialogTableVisible = ref(false) | |||
const dialogFormVisible = ref(false) | |||
const formLabelWidth = '140px' | |||
const form = reactive({ | |||
phone: '13078580843',//手机号 | |||
region: '',//验证码 | |||
delivery: false,//是否展示详细 | |||
number:''//对公账户资金账户编号 | |||
phone: '13078580843', //手机号 | |||
region: '', //验证码 | |||
delivery: false, //是否展示详细 | |||
number: '' //对公账户资金账户编号 | |||
}) | |||
const optiones = [{ | |||
value: '2', | |||
label: '2', | |||
@@ -166,30 +166,10 @@ | |||
const tableData = [{ | |||
date: '01', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '02', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '03', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
name: '52011750220200003674', | |||
address: '0.06', | |||
number: "100.00", | |||
time: "100.06", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
@@ -205,7 +185,8 @@ | |||
.table_box { | |||
margin-top: 25px; | |||
.table_btn{ | |||
.table_btn { | |||
display: flex; | |||
flex-direction: column; | |||
align-self: stretch; |
@@ -12,13 +12,14 @@ | |||
</el-form> | |||
</div> | |||
<el-table :data="tableData" border style="width: 100%" class="table_box" scrollbar-always-on="true" stripe > | |||
<el-table-column prop="name" label="序号" /> | |||
<el-table-column prop="date" label="序号" /> | |||
<el-table-column prop="name" label="卡号" /> | |||
<el-table-column prop="address" label="用户名" /> | |||
<el-table-column prop="number" label="证件号" /> | |||
<el-table-column prop="time" label="注销时间" /> | |||
<el-table-column prop="type" label="退款状态" /> | |||
<el-table-column prop="type" label="退费金额(元)"/> | |||
<el-table-column prop="regtime" label="注销时间" /> | |||
<el-table-column prop="numbers" label="卡账余额(元)" /> | |||
<el-table-column prop="number" label="卡内余额(元)" /> | |||
<el-table-column prop="numbers" label="交易后余额(元)"/> | |||
<el-table-column prop="numbers" label="退费金额(元)"/> | |||
<el-table-column label="操作" class="table_btn" width="150px" align="center"> | |||
<el-tooltip content="详细" placement="top"> | |||
<el-button type="warning" @click="dialogFormVisible = true">查看详细</el-button> | |||
@@ -30,8 +31,8 @@ | |||
<el-pagination :page-size="20" :pager-count="11" layout="prev, pager, next" :total="1000" /> | |||
</div> | |||
<el-dialog v-model="dialogFormVisible" :title="title"> | |||
<el-form :model="form" v-if="delivery"> | |||
<el-dialog v-model="dialogFormVisible" title="退款详细"> | |||
<el-form :model="form"> | |||
<el-form-item label="手机号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.phone" autocomplete="off" disabled /> | |||
</el-form-item> | |||
@@ -39,15 +40,6 @@ | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<el-form :model="form" v-else> | |||
<el-form-item label="对公账户资金账户编号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.number" autocomplete="off" disabled /> | |||
</el-form-item> | |||
<el-form-item label="验证码" :label-width="formLabelWidth"> | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<template #footer> | |||
<span class="dialog-footer"> | |||
<el-button @click="dialogFormVisible = false">确定</el-button> | |||
@@ -168,33 +160,15 @@ | |||
const tableData = [{ | |||
date: '01', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '02', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '03', | |||
name: 'Liu461185', | |||
name: '52011750220200003674', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
type: "已退款", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
regtime: "2021-06-23T15:08:39", | |||
number:"0.00", | |||
numbers:"0.00" | |||
} | |||
] | |||
</script> |
@@ -4,13 +4,13 @@ | |||
<el-form :inline="true" :model="formInline" class="demo-form-inline"> | |||
<el-form-item label="申请时间"> | |||
<div class="block"> | |||
<el-date-picker v-model="start_time" type="datetime" placeholder="" /> | |||
<el-date-picker v-model="start_time" type="datetime" placeholder="请选择申请开始时间" /> | |||
</div> | |||
<el-icon> | |||
<semi-select /> | |||
</el-icon> | |||
<div class="block"> | |||
<el-date-picker v-model="end_time" type="datetime" placeholder="" /> | |||
<el-date-picker v-model="end_time" type="datetime" placeholder="请选择申请结束时间" /> | |||
</div> | |||
</el-form-item> | |||
<el-form-item label="账号状态"> | |||
@@ -80,8 +80,8 @@ | |||
</el-form> | |||
<template #footer> | |||
<span class="dialog-footer"> | |||
<el-button type="primary">取消</el-button> | |||
<el-button type="primary" @click="dialogFormVisibles">确定</el-button> | |||
<el-button type="primary" @click="dialogFormVisible = false">取消</el-button> | |||
<el-button type="primary" @click="dialogFormVisible = false">确定</el-button> | |||
</span> | |||
</template> | |||
</el-dialog> |
@@ -10,7 +10,6 @@ | |||
<el-button :icon="Search" type="primary">查询</el-button> | |||
<el-button type="info">重置</el-button> | |||
<el-button :icon="download" type="primary">人工录入</el-button> | |||
</el-form-item> | |||
</el-form> | |||
</div> | |||
@@ -19,9 +18,9 @@ | |||
<el-table-column prop="name" label="卡号" /> | |||
<el-table-column prop="address" label="客户名称" /> | |||
<el-table-column prop="number" label="车牌号码" /> | |||
<el-table-column prop="time" label="车牌颜色" /> | |||
<el-table-column prop="regtime" label="车牌颜色" /> | |||
<el-table-column prop="type" label="补卡金额" /> | |||
<el-table-column prop="regname" label="录入时间" /> | |||
<el-table-column prop="regtime" label="录入时间" /> | |||
<el-table-column label="操作" class="table_btn" width="150px" align="center"> | |||
<el-tooltip content="详细" placement="top"> | |||
<el-button type="warning" @click="dialogFormVisible = true">查看详细</el-button> | |||
@@ -33,8 +32,8 @@ | |||
<el-pagination :page-size="20" :pager-count="11" layout="prev, pager, next" :total="1000" /> | |||
</div> | |||
<el-dialog v-model="dialogFormVisible" :title="title"> | |||
<el-form :model="form" v-if="delivery"> | |||
<el-dialog v-model="dialogFormVisible" title="补卡详细"> | |||
<el-form :model="form"> | |||
<el-form-item label="手机号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.phone" autocomplete="off" disabled /> | |||
</el-form-item> | |||
@@ -42,15 +41,6 @@ | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<el-form :model="form" v-else> | |||
<el-form-item label="对公账户资金账户编号" :label-width="formLabelWidth"> | |||
<el-input v-model="form.number" autocomplete="off" disabled /> | |||
</el-form-item> | |||
<el-form-item label="验证码" :label-width="formLabelWidth"> | |||
<el-input v-model="form.region" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<template #footer> | |||
<span class="dialog-footer"> | |||
<el-button @click="dialogFormVisible = false">确定</el-button> | |||
@@ -171,33 +161,13 @@ | |||
const tableData = [{ | |||
date: '01', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '02', | |||
name: 'Liu461185', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
}, | |||
{ | |||
date: '03', | |||
name: 'Liu461185', | |||
name: '52011750220200003674', | |||
address: '安顺市顺安防雷安全检测站平坝分站', | |||
number: "91520421MA6EBM14XC", | |||
number: "贵AC0263", | |||
time: "2021-06-22T12:52:17", | |||
type: "已启用", | |||
type: "100.00", | |||
regname: "xn18096012008", | |||
regtime: "2021-06-23T15:08:39" | |||
regtime: "蓝色" | |||
} | |||
] | |||
</script> |
@@ -7,7 +7,7 @@ | |||
<!-- 输入框 --> | |||
<div class="topstyle"> | |||
<span style="margin-right: 10px; width: 40px">卡号</span> | |||
<el-input v-model="input4" placeholder="请输入卡号"> </el-input> | |||
<el-input v-model="input4" placeholder="请输入卡号" style="width: 220px;"> </el-input> | |||
</div> | |||
<!-- 日期框 --> | |||
<div class="topstyle"> |
@@ -2,10 +2,10 @@ | |||
<div class="top"> | |||
<!-- 输入框 --> | |||
<div class="topstyle"> | |||
<el-input v-model="input4" placeholder="请输入ETC卡号"> </el-input> | |||
<el-input v-model="input4" placeholder="请输入ETC卡号" style="width: 220px;"> </el-input> | |||
</div> | |||
<div class="topstyle"> | |||
<el-input v-model="input4" placeholder="请输入车牌号"> </el-input> | |||
<el-input v-model="input4" placeholder="请输入车牌号" style="width: 220px;"> </el-input> | |||
</div> | |||
<!-- 日期框 --> | |||
<div class="topstyle" > | |||
@@ -31,8 +31,8 @@ | |||
<div class="topstyle"> | |||
<el-button v-model="input4" type="success" :icon="Search" @click="search">搜索</el-button> | |||
<el-button type="warning" :icon="Refresh" @click="reset">重置</el-button> | |||
<el-button type="primary" plain @click="excelExport()">导出当前页</el-button> | |||
<el-button type="primary" plain @click="excelExport()">导出所有</el-button> | |||
<el-button type="primary" plain @click="downloadExcel">导出当前页</el-button> | |||
<el-button type="primary" plain @click="dddd">导出所有</el-button> | |||
</div> | |||
</div> | |||
<div style="padding-top: 12px"> | |||
@@ -60,7 +60,7 @@ | |||
</template> | |||
<script lang="ts" setup> | |||
import { reactive, ref } from 'vue' | |||
import { reactive, ref} from 'vue' | |||
import { useRoute, useRouter } from 'vue-router' | |||
import { Calendar, Search, Refresh } from '@element-plus/icons-vue' | |||
import type { ElTable } from 'element-plus' | |||
@@ -71,7 +71,7 @@ const value1 = ref('') | |||
function reset() {} | |||
function search() {} | |||
function exportCurrentPage() {} | |||
function exportAll() {} | |||
interface User { | |||
@@ -97,33 +97,7 @@ const setCurrent = (row?: User) => { | |||
const handleCurrentChange = (val: User | undefined) => { | |||
currentRow.value = val | |||
} | |||
//点击导出 | |||
function excelExport(){ | |||
import('@/vendor/Export2Excel').then(excel => { | |||
const tHeader = ['用户名称', '账号', '手机号', '所属公司','用户角色','创建者','部门名称','创建时间','最近登录时间'] | |||
const filterVal = ['userName', 'email', 'phonenumber', 'orgName','roleName','createBy','deptName','createTime','loginTime'] | |||
const list = this.list | |||
const data = this.formatJson(filterVal, list) | |||
excel.export_json_to_excel({ | |||
header: tHeader, | |||
data, | |||
filename: "账号列表", | |||
// filename: this.filename, | |||
autoWidth: this.autoWidth, | |||
bookType: this.bookType | |||
}) | |||
this.downloadLoading = false | |||
}) | |||
} | |||
function formatJson(filterVal, jsonData) { | |||
return this.dataList.map(v => filterVal.map(j => { | |||
if (j === 'timestamp') { | |||
return parseTime(v[j]) | |||
} else { | |||
return v[j] | |||
} | |||
})) | |||
} | |||
const tableData: User[] = [ | |||
{ | |||
date1: '1', |
@@ -1,10 +1,14 @@ | |||
<script lang='ts' setup> | |||
import { reactive } from 'vue'; | |||
const OBUList = reactive({ | |||
import { reactive } from 'vue'; | |||
const labelWith = 68 | |||
const OBUList = reactive({ | |||
cno: '', | |||
carNo: '', | |||
carColors: '', | |||
OBUno: '', | |||
pages: 10, | |||
status:'' | |||
}) | |||
const options = [ | |||
{ | |||
@@ -28,6 +32,20 @@ const options = [ | |||
label: 'Option5', | |||
}, | |||
] | |||
const pages =[ | |||
{ | |||
value: '10', | |||
label: '10', | |||
}, | |||
{ | |||
value: '20', | |||
label: '20', | |||
}, | |||
{ | |||
value: '30', | |||
label: '30', | |||
} | |||
] | |||
const colors = [{ | |||
value: 'Option1', | |||
label: '蓝色', | |||
@@ -125,7 +143,7 @@ const handleEdit = (item:any,v:any) => { | |||
<el-input v-model="OBUList.carNo" placeholder="车牌号码" /> | |||
</el-form-item> | |||
<el-form-item label="车牌颜色"> | |||
<el-select v-model="OBUList.carColors" class="m-2" placeholder="Select"> | |||
<el-select v-model="OBUList.carColors" placeholder="请选择"> | |||
<el-option | |||
v-for="item in colors" | |||
:key="item.value" | |||
@@ -137,9 +155,9 @@ const handleEdit = (item:any,v:any) => { | |||
<el-form-item label="OBU编号"> | |||
<el-input v-model="OBUList.OBUno" placeholder="OBU编号" /> | |||
</el-form-item> | |||
<el-form-item><el-button type="primary">读OBU</el-button></el-form-item> | |||
<el-form-item label="状态"> | |||
<el-select v-model="OBUList.carColors" class="m-2" placeholder="Select"> | |||
<el-form-item><el-button type="primary" icon="Tools">读OBU</el-button></el-form-item> | |||
<el-form-item label="状态" :label-width="labelWith"> | |||
<el-select v-model="OBUList.status" placeholder="请选择"> | |||
<el-option | |||
v-for="item in options" | |||
:key="item.value" | |||
@@ -149,9 +167,9 @@ const handleEdit = (item:any,v:any) => { | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="每条页数"> | |||
<el-select v-model="OBUList.carColors" class="m-2" placeholder="Select"> | |||
<el-select v-model="OBUList.pages" placeholder="请选择" class="pageSelect"> | |||
<el-option | |||
v-for="item in options" | |||
v-for="item in pages" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value" | |||
@@ -159,7 +177,7 @@ const handleEdit = (item:any,v:any) => { | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item><el-button type="primary" icon="Search">查询</el-button></el-form-item> | |||
<el-form-item><el-button type="warning" plain icon="Refresh">重置</el-button></el-form-item> | |||
<el-form-item><el-button type="warning" icon="Refresh">重置</el-button></el-form-item> | |||
</el-form> | |||
<el-table :data="tableData" style="width: 100%"> | |||
<el-table-column type="index" label="序号" width="64" fixed align="center" /> | |||
@@ -183,4 +201,14 @@ const handleEdit = (item:any,v:any) => { | |||
.el-form--inline .el-form-item{ | |||
margin-right: 16px; | |||
} | |||
.el-select{ | |||
width: 168px; | |||
} | |||
.el-select-dropdown__item{ | |||
font-family: "Microsoft Yahei"; | |||
} | |||
.pageSelect{ | |||
width: 80px; | |||
} | |||
</style> |