Quellcode durchsuchen

Merge branch 'master' of https://gitee.com/dmc_qq/etc-project into master

master
wq vor 3 Jahren
Ursprung
Commit
c3f5adea87

+ 456
- 0
src/excel/Blob.js Datei anzeigen

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

})();

+ 141
- 0
src/excel/export2Excel.js Datei anzeigen

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

+ 6
- 35
src/views/fancongcong/addsupplyCardBalance/addsupplyCardBalance.vue Datei anzeigen

@@ -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",

+ 28
- 55
src/views/fancongcong/advancepaymentaccount/advancepaymentaccount.vue Datei anzeigen

@@ -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>

+ 22
- 41
src/views/fancongcong/cardrechargefix/cardrechargefix.vue Datei anzeigen

@@ -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;

+ 13
- 39
src/views/fancongcong/cardrefundcostManage/cardrefundcostManage.vue Datei anzeigen

@@ -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
- 4
src/views/fancongcong/corporateaccountManage/corporateaccountManage.vue Datei anzeigen

@@ -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>

+ 8
- 38
src/views/fancongcong/supplyCardBalance/supplyCardBalance.vue Datei anzeigen

@@ -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>

+ 1
- 1
src/views/shengbo/blacklistQuery/blacklistQuery.vue Datei anzeigen

@@ -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">

+ 7
- 33
src/views/shengbo/trafficFlow/trafficFlow.vue Datei anzeigen

@@ -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',

+ 37
- 9
src/views/weixingrong/OBUQuery/OBUQuery.vue Datei anzeigen

@@ -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>

Laden…
Abbrechen
Speichern