@@ -3,4 +3,4 @@ ENV = 'development' | |||
# .env.development | |||
# base api | |||
VITE_APP_BASE_URL = '10.52.0.172:10389/csms/' | |||
VITE_APP_BASE_URL = 'http://10.52.0.172:10389/csms' |
@@ -3,4 +3,4 @@ ENV = 'production' | |||
# .env.production | |||
# base api | |||
VITE_APP_BASE_URL = '10.52.0.172:10389/csms/' | |||
VITE_APP_BASE_URL = 'http://10.52.0.172:10389/csms' |
@@ -17,6 +17,7 @@ | |||
"js-cookie": "^3.0.1", | |||
"jsencrypt": "^3.2.1", | |||
"less": "^4.1.2", | |||
"qs": "^6.10.3", | |||
"screenfull": "^6.0.1", | |||
"vue": "^3.2.2", | |||
"vue-fragment": "^1.5.2", | |||
@@ -933,6 +934,15 @@ | |||
"node": ">=0.2.0" | |||
} | |||
}, | |||
"node_modules/call-bind": { | |||
"version": "1.0.2", | |||
"resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", | |||
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", | |||
"dependencies": { | |||
"function-bind": "^1.1.1", | |||
"get-intrinsic": "^1.0.2" | |||
} | |||
}, | |||
"node_modules/callsites": { | |||
"version": "3.1.0", | |||
"resolved": "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz", | |||
@@ -1774,8 +1784,7 @@ | |||
"node_modules/function-bind": { | |||
"version": "1.1.1", | |||
"resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", | |||
"integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", | |||
"dev": true | |||
"integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" | |||
}, | |||
"node_modules/functional-red-black-tree": { | |||
"version": "1.0.1", | |||
@@ -1791,6 +1800,16 @@ | |||
"node": ">=10" | |||
} | |||
}, | |||
"node_modules/get-intrinsic": { | |||
"version": "1.1.1", | |||
"resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", | |||
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", | |||
"dependencies": { | |||
"function-bind": "^1.1.1", | |||
"has": "^1.0.3", | |||
"has-symbols": "^1.0.1" | |||
} | |||
}, | |||
"node_modules/glob": { | |||
"version": "7.2.0", | |||
"resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz", | |||
@@ -1868,7 +1887,6 @@ | |||
"version": "1.0.3", | |||
"resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", | |||
"integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", | |||
"dev": true, | |||
"dependencies": { | |||
"function-bind": "^1.1.1" | |||
}, | |||
@@ -1885,6 +1903,14 @@ | |||
"node": ">=8" | |||
} | |||
}, | |||
"node_modules/has-symbols": { | |||
"version": "1.0.3", | |||
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", | |||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", | |||
"engines": { | |||
"node": ">= 0.4" | |||
} | |||
}, | |||
"node_modules/hash-sum": { | |||
"version": "2.0.0", | |||
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", | |||
@@ -2391,6 +2417,11 @@ | |||
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz", | |||
"integrity": "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==" | |||
}, | |||
"node_modules/object-inspect": { | |||
"version": "1.12.0", | |||
"resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz", | |||
"integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" | |||
}, | |||
"node_modules/once": { | |||
"version": "1.4.0", | |||
"resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", | |||
@@ -2575,6 +2606,17 @@ | |||
"node": ">=6" | |||
} | |||
}, | |||
"node_modules/qs": { | |||
"version": "6.10.3", | |||
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz", | |||
"integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", | |||
"dependencies": { | |||
"side-channel": "^1.0.4" | |||
}, | |||
"engines": { | |||
"node": ">=0.6" | |||
} | |||
}, | |||
"node_modules/queue-microtask": { | |||
"version": "1.2.3", | |||
"resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391510274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz", | |||
@@ -2781,6 +2823,16 @@ | |||
"node": ">=8" | |||
} | |||
}, | |||
"node_modules/side-channel": { | |||
"version": "1.0.4", | |||
"resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", | |||
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", | |||
"dependencies": { | |||
"call-bind": "^1.0.0", | |||
"get-intrinsic": "^1.0.2", | |||
"object-inspect": "^1.9.0" | |||
} | |||
}, | |||
"node_modules/slash": { | |||
"version": "3.0.0", | |||
"resolved": "https://registry.nlark.com/slash/download/slash-3.0.0.tgz", | |||
@@ -4225,6 +4277,15 @@ | |||
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", | |||
"dev": true | |||
}, | |||
"call-bind": { | |||
"version": "1.0.2", | |||
"resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", | |||
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", | |||
"requires": { | |||
"function-bind": "^1.1.1", | |||
"get-intrinsic": "^1.0.2" | |||
} | |||
}, | |||
"callsites": { | |||
"version": "3.1.0", | |||
"resolved": "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz", | |||
@@ -4872,8 +4933,7 @@ | |||
"function-bind": { | |||
"version": "1.1.1", | |||
"resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", | |||
"integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", | |||
"dev": true | |||
"integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" | |||
}, | |||
"functional-red-black-tree": { | |||
"version": "1.0.1", | |||
@@ -4886,6 +4946,16 @@ | |||
"resolved": "https://registry.npmmirror.com/fuse.js/-/fuse.js-6.5.3.tgz", | |||
"integrity": "sha512-sA5etGE7yD/pOqivZRBvUBd/NaL2sjAu6QuSaFoe1H2BrJSkH/T/UXAJ8CdXdw7DvY3Hs8CXKYkDWX7RiP5KOg==" | |||
}, | |||
"get-intrinsic": { | |||
"version": "1.1.1", | |||
"resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", | |||
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", | |||
"requires": { | |||
"function-bind": "^1.1.1", | |||
"has": "^1.0.3", | |||
"has-symbols": "^1.0.1" | |||
} | |||
}, | |||
"glob": { | |||
"version": "7.2.0", | |||
"resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz", | |||
@@ -4950,7 +5020,6 @@ | |||
"version": "1.0.3", | |||
"resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", | |||
"integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", | |||
"dev": true, | |||
"requires": { | |||
"function-bind": "^1.1.1" | |||
} | |||
@@ -4961,6 +5030,11 @@ | |||
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", | |||
"dev": true | |||
}, | |||
"has-symbols": { | |||
"version": "1.0.3", | |||
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", | |||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" | |||
}, | |||
"hash-sum": { | |||
"version": "2.0.0", | |||
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", | |||
@@ -5362,6 +5436,11 @@ | |||
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz", | |||
"integrity": "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==" | |||
}, | |||
"object-inspect": { | |||
"version": "1.12.0", | |||
"resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz", | |||
"integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" | |||
}, | |||
"once": { | |||
"version": "1.4.0", | |||
"resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", | |||
@@ -5501,6 +5580,14 @@ | |||
"integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", | |||
"dev": true | |||
}, | |||
"qs": { | |||
"version": "6.10.3", | |||
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz", | |||
"integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", | |||
"requires": { | |||
"side-channel": "^1.0.4" | |||
} | |||
}, | |||
"queue-microtask": { | |||
"version": "1.2.3", | |||
"resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391510274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz", | |||
@@ -5661,6 +5748,16 @@ | |||
"integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", | |||
"dev": true | |||
}, | |||
"side-channel": { | |||
"version": "1.0.4", | |||
"resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", | |||
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", | |||
"requires": { | |||
"call-bind": "^1.0.0", | |||
"get-intrinsic": "^1.0.2", | |||
"object-inspect": "^1.9.0" | |||
} | |||
}, | |||
"slash": { | |||
"version": "3.0.0", | |||
"resolved": "https://registry.nlark.com/slash/download/slash-3.0.0.tgz", |
@@ -18,6 +18,7 @@ | |||
"js-cookie": "^3.0.1", | |||
"jsencrypt": "^3.2.1", | |||
"less": "^4.1.2", | |||
"qs": "^6.10.3", | |||
"screenfull": "^6.0.1", | |||
"vue": "^3.2.2", | |||
"vue-fragment": "^1.5.2", |
@@ -23,9 +23,9 @@ body { | |||
#app { | |||
width: 100%; | |||
height: 100%; | |||
font-family: 'Microsoft Yahei', Arial, sans-serif | |||
font-family: 'Microsoft Yahei', Arial, sans-serif; | |||
} | |||
#app .content-warpper{ | |||
#app .content-warpper { | |||
padding: 0 22px 20px; | |||
/* background: #f8f8f8; */ | |||
} |
@@ -15,7 +15,8 @@ const service = axios.create({ | |||
headers: { | |||
"X-Requested-With": "XMLHttpRequest", | |||
'Access-Control-Allow-Origin': '*', | |||
'Access-Control-Allow-Headers': '*' | |||
'Access-Control-Allow-Headers': 'X-Requested-With,Content-Type', | |||
'Access-Control-Allow-Methods': "PUT,POST,GET,DELETE,OPTIONS" | |||
}, | |||
// `params` 是即将与请求一起发送的 URL 参数 | |||
// 必须是一个无格式对象(plain object)或 URLSearchParams 对象 | |||
@@ -87,7 +88,7 @@ export function post(url: string, data = {}, options = {}) { | |||
const defaultOptions = { | |||
url: url, | |||
method: "post", | |||
params: data, | |||
data: data, | |||
} | |||
//合并用户配置参数信息 | |||
options = Object.assign(defaultOptions, options); |
@@ -15,93 +15,36 @@ | |||
<el-table-column prop="postransactionalance" label="交易后余额(元)" width="140" /> | |||
</el-table> | |||
</div> | |||
<!-- <div style="padding-top: 12px" class="as-gravity-center-end"> | |||
<el-pagination :page-sizes="7" :total="100" :current-page="2" /> | |||
</div> --> | |||
</template> | |||
<script> | |||
import * as XLSX from "xlsx"; | |||
// const props = defineProps({ | |||
// tableData: String, | |||
// }) | |||
export default { | |||
props:{ | |||
tableData: { | |||
// 声明类型 | |||
type:Array, | |||
//声明是否必需 | |||
require:true, | |||
// 声明默认值 | |||
//default:'默认值' | |||
}, | |||
}, | |||
data() { | |||
return { | |||
isShow:false, | |||
isShow:false, //隐藏按钮 | |||
fileData: "" ,// 保存选择的文件数据, | |||
tableData:[ | |||
{ | |||
etcCardNumber: '52011328220200481698', | |||
licensePlateNumber: '贵A710AE', | |||
consumptionType: '省内流水', | |||
entranceTime: '2019-12-27 20:14:02', | |||
entryStationName: '贵阳西主线站', | |||
exportTime: '2019-12-27 20:18:20', | |||
exitStationName: '贵阳西主线站', | |||
balanceBeforeTransaction: '38.25', | |||
transactionAmount: '0.00', | |||
postransactionalance: '38.25', | |||
}, | |||
{ | |||
etcCardNumber: '52011328220200481698', | |||
licensePlateNumber: '贵A710AE', | |||
consumptionType: '省内流水', | |||
entranceTime: '2019-12-27 20:14:02', | |||
entryStationName: '贵阳西主线站', | |||
exportTime: '2019-12-27 20:18:20', | |||
exitStationName: '贵阳西主线站', | |||
balanceBeforeTransaction: '38.25', | |||
transactionAmount: '0.00', | |||
postransactionalance: '38.25', | |||
}, | |||
{ | |||
etcCardNumber: '52011328220200481698', | |||
licensePlateNumber: '贵A710AE', | |||
consumptionType: '省内流水', | |||
entranceTime: '2019-12-27 20:14:02', | |||
entryStationName: '贵阳西主线站', | |||
exportTime: '2019-12-27 20:18:20', | |||
exitStationName: '贵阳西主线站', | |||
balanceBeforeTransaction: '38.25', | |||
transactionAmount: '0.00', | |||
postransactionalance: '38.25', | |||
}, | |||
{ | |||
etcCardNumber: '52011328220200481698', | |||
licensePlateNumber: '贵A710AE', | |||
consumptionType: '省内流水', | |||
entranceTime: '2019-12-27 20:14:02', | |||
entryStationName: '贵阳西主线站', | |||
exportTime: '2019-12-27 20:18:20', | |||
exitStationName: '贵阳西主线站', | |||
balanceBeforeTransaction: '38.25', | |||
transactionAmount: '0.00', | |||
postransactionalance: '38.25', | |||
}, | |||
{ | |||
etcCardNumber: '52011328220200481698', | |||
licensePlateNumber: '贵A710AE', | |||
consumptionType: '省内流水', | |||
entranceTime: '2019-12-27 20:14:02', | |||
entryStationName: '贵阳西主线站', | |||
exportTime: '2019-12-27 20:18:20', | |||
exitStationName: '贵阳西主线站', | |||
balanceBeforeTransaction: '38.25', | |||
transactionAmount: '0.00', | |||
postransactionalance: '38.25', | |||
}, | |||
{ | |||
etcCardNumber: '52011328220200481698', | |||
licensePlateNumber: '贵A710AE', | |||
consumptionType: '省内流水', | |||
entranceTime: '2019-12-27 20:14:02', | |||
entryStationName: '贵阳西主线站', | |||
exportTime: '2019-12-27 20:18:20', | |||
exitStationName: '贵阳西主线站', | |||
balanceBeforeTransaction: '38.25', | |||
transactionAmount: '0.00', | |||
postransactionalance: '38.25', | |||
}, | |||
] | |||
}; | |||
}, | |||
create() { | |||
console.log(XLSX); | |||
}, | |||
@@ -111,7 +54,9 @@ export default { | |||
//导出文件 | |||
exportExcel() { | |||
if (!this.tableData.length) { | |||
//this.tableData1=this.tableData | |||
console.log(this.tableData,'=============='); | |||
if (!this.tableData1.length) { | |||
this.$message.warning("暂无数据导出"); | |||
return false; | |||
} | |||
@@ -133,7 +78,7 @@ export default { | |||
//格式转换 | |||
formatJson(filterVal) { | |||
return this.tableData.map(v => | |||
return this.tableData1.map(v => | |||
// obj = { | |||
// name:'', | |||
// age:'' |
@@ -26,6 +26,10 @@ export function mergeOptions(src: any, opts: any) { | |||
return optsRet; | |||
} | |||
/** | |||
* 返回当前时间 | |||
* @returns | |||
*/ | |||
export function barkTime() { | |||
const nowdate = new Date(); | |||
const year = nowdate.getFullYear(), | |||
@@ -41,10 +45,40 @@ export function barkTime() { | |||
ss = checkTime(s); | |||
return (year + checkTime(month) + checkTime(date) + hs + ms + ss) + '' | |||
} | |||
function checkTime(i: number) { | |||
let s = i + '' | |||
if (i < 10) { | |||
s = "0" + i; | |||
} | |||
return s; | |||
} | |||
/** | |||
* 文件上传处理 | |||
* @param uploadFile 文件对象 | |||
* @param fileName 文件名称 | |||
* @param fileSize 文件大小限制 | |||
* @returns | |||
*/ | |||
export function barkFileName(uploadFile: any, fileName: string, fileSize: number = 0) { | |||
const size: number = Number((uploadFile.size / 1024).toFixed(2)); //KB大小 | |||
return new Promise((resolve, reject) => { | |||
if (fileName) { | |||
if (fileSize !== 0) { | |||
if (size > fileSize) { | |||
reject('超出文件大小限制') | |||
} | |||
} | |||
//截取后缀名 | |||
const suffix = (uploadFile.name + '').split('.')[1] | |||
// 修改文件名称 | |||
uploadFile.name = fileName + barkTime() + '.' + suffix | |||
resolve(uploadFile) | |||
} else { | |||
reject('模块名不能为空') | |||
} | |||
}) | |||
} |
@@ -1,6 +1,6 @@ | |||
<template> | |||
<!-- 卡签补办 --> | |||
<CRUD ref="crudRef" :homeData="datas"> | |||
<crud-template ref="crudRef" :homeData="datas"> | |||
<!-- 自定义搜索 --> | |||
<template #search="{ searchCondition }"> | |||
<!-- 搜索 监听回车 @keyup.enter.native="search"--> | |||
@@ -37,11 +37,11 @@ | |||
<el-button type="primary">提交</el-button> | |||
</span> | |||
</template> | |||
</CRUD> | |||
</crud-template> | |||
</template> | |||
<script setup lang="ts"> | |||
// @ts-ignore crudFrom模板 | |||
import CRUD from "@/crud/index.vue" | |||
import CrudTemplate from "@/crud/index.vue" | |||
import { | |||
Data | |||
} from '@/data/cardAfter/cardFillDo' //表单配置 | |||
@@ -61,8 +61,7 @@ const { | |||
proxy | |||
}: any = getCurrentInstance(); | |||
proxy.$request.get('api/user', {}, { | |||
baseURL: 'http://localhost:8080' | |||
proxy.$request.post('activeSuspend/query', { vehicleColour: '1', vehicleNumber: '2' }, { | |||
}).then((res: {}) => { | |||
console.log(res); | |||
}).catch((err: {}) => { |
@@ -456,26 +456,22 @@ const getPhone = (id:Number) => { | |||
} | |||
//查询 | |||
const search = () => { | |||
console.log('查询') | |||
console.log('查询',formInline.value,formInline.value.number) | |||
let data = { | |||
accountId:formInline.number, | |||
accountId:formInline.value.number, | |||
bankCardId:"", | |||
corporateIdNum:formInline.number, | |||
corporateName: formInline.user, | |||
corporateIdNum:formInline.value.number, | |||
corporateName: formInline.value.user, | |||
endApplyTime:end_time.value, | |||
pageNo:pageNo, | |||
pageSize:номер, | |||
startApplyTime:start_time.value, | |||
status:cтатус_счета, | |||
baseURL:'http://localhost:8089', | |||
//baseURL:'http://10.20.10.206:81', | |||
} | |||
/* = ''; | |||
cтатус_счета.value = ''; | |||
номер.value = ''; | |||
= ''; | |||
= ''; | |||
= '';*/ | |||
console.log("date",data) | |||
console.log("date",data) | |||
proxy.$request.post('/corporateaccount/queryPage', {},data).then((res) => { | |||
console.log(res); | |||
if(res.data.success){ |
@@ -39,15 +39,15 @@ | |||
<el-button type="primary" plain @click="exportCurrentPage">导出当前页</el-button> | |||
<el-button type="primary" plain @click="exportAll">导出所有</el-button> | |||
<!-- <el-button type="primary" plain @click="exportAll">导出所有</el-button> --> | |||
</div> | |||
</div> | |||
<div style="padding-top: 12px"> | |||
<exportTable ref="exportTS"></exportTable> | |||
<exportTable ref="exportTS" :tableData="tableData1"></exportTable> | |||
</div> | |||
<div style="padding-top: 12px" class="as-gravity-center-end"> | |||
<el-pagination :page-sizes="[10, 20, 30, 40]" :total="1000" /> | |||
<!-- <el-pagination :page-sizes="pagesizes" :total="formData.total" :current-page="formData.pageNo" /> --> | |||
</div> | |||
</div> | |||
</template> | |||
@@ -60,7 +60,11 @@ import type { ElTable } from 'element-plus' | |||
import exportTable from '../../../components/exportTable/exportTable.vue' | |||
const { proxy }: any = getCurrentInstance() | |||
const pagesizes = ref(7) | |||
const formData = reactive({ | |||
pagesizes: '',//每页显示条数 | |||
total: '', //总条数 | |||
pageNo: '', //当前页 | |||
etcCardNumber: '', //ETC卡号 | |||
licensePlateNumber: '', //车牌号 | |||
startDate: '', //开始日期 | |||
@@ -68,7 +72,6 @@ const formData = reactive({ | |||
}) | |||
const exportTS = ref() | |||
const tableData = reactive({ | |||
title: 'xx公司表格', | |||
serialNumber: '', //序号 | |||
etcCardNumber: '', //ETC卡号 | |||
licensePlateNumber: '', //车牌号 | |||
@@ -134,35 +137,35 @@ const exportCurrentPage = () => { | |||
console.log('导出当前页的表格数据') | |||
} | |||
//导出所有 | |||
function exportAll() { | |||
proxy.$refs.exportTable.exportExcel() | |||
console.log('导出所有数据') | |||
} | |||
// function exportAll() { | |||
// proxy.$refs.exportTable.exportExcel() | |||
// console.log('导出所有数据') | |||
// } | |||
interface User { | |||
etcCardNumber: string //ETC卡号 | |||
licensePlateNumber: string //车牌号 | |||
consumptionType: string //消费类型 | |||
entranceTime: string //入口时间 | |||
entryStationName: string //入口站名 | |||
exportTime: string //出口时间 | |||
exitStationName: string //出口站名 | |||
balanceBeforeTransaction: string //交易前余额 | |||
transactionAmount: string //交易金额 | |||
postransactionalance: string //交易后余额 | |||
} | |||
// interface User { | |||
// etcCardNumber: string //ETC卡号 | |||
// licensePlateNumber: string //车牌号 | |||
// consumptionType: string //消费类型 | |||
// entranceTime: string //入口时间 | |||
// entryStationName: string //入口站名 | |||
// exportTime: string //出口时间 | |||
// exitStationName: string //出口站名 | |||
// balanceBeforeTransaction: string //交易前余额 | |||
// transactionAmount: string //交易金额 | |||
// postransactionalance: string //交易后余额 | |||
// } | |||
const currentRow = ref() | |||
const singleTableRef = ref<InstanceType<typeof ElTable>>() | |||
// const currentRow = ref() | |||
// const singleTableRef = ref<InstanceType<typeof ElTable>>() | |||
const setCurrent = (row?: User) => { | |||
singleTableRef.value!.setCurrentRow(row) | |||
} | |||
const handleCurrentChange = (val: User | undefined) => { | |||
currentRow.value = val | |||
} | |||
// const setCurrent = (row?: User) => { | |||
// singleTableRef.value!.setCurrentRow(row) | |||
// } | |||
// const handleCurrentChange = (val: User | undefined) => { | |||
// currentRow.value = val | |||
// } | |||
const tableData1: User[] = [ | |||
const tableData1 = [ | |||
{ | |||
etcCardNumber: '52011328220200481698', | |||
licensePlateNumber: '贵A710AE', |
@@ -1,50 +0,0 @@ | |||
<template> | |||
<!-- accept 限制上传文件格式 .text--> | |||
<el-upload | |||
ref="uploadRef" | |||
action="https://jsonplaceholder.typicode.com/posts/" | |||
:auto-upload="false" | |||
:on-change="handleChange" | |||
:file-list="fileList" | |||
> | |||
<template #trigger> | |||
<el-button type="primary">select file</el-button> | |||
</template> | |||
<el-button class="ml-3" type="success" @click="submitUpload"> upload to server </el-button> | |||
<template #tip> | |||
<div class="el-upload__tip">jpg/png files with a size less than 500kb</div> | |||
</template> | |||
</el-upload> | |||
</template> | |||
<script lang="ts" setup> | |||
import { ref } from 'vue' | |||
import { barkTime } from '@/utils/utils' | |||
import { UploadProps, UploadUserFile } from 'element-plus' | |||
const uploadRef = ref() | |||
const fileList = ref<UploadUserFile[]>([]) | |||
console.log(barkTime()) //时间戳 | |||
const submitUpload = () => { | |||
uploadRef.value.submit() | |||
} | |||
const handleChange: UploadProps['onChange'] = (uploadFile, uploadFiles) => { | |||
// console.log(uploadFile, fileList.value.slice(-1)); | |||
fileList.value = fileList.value.slice(-1) | |||
// let imgSize = Number(uploadFile.size / 1024).toFixed(2); // / 1024 | |||
// //截取后缀名 | |||
// const suffix = (uploadFile.name + '').split('.')[1] | |||
// //修改文件名称 | |||
// uploadFile.name = barkTime() + '.' + suffix | |||
// if (uploadFiles) { | |||
// uploadFiles.value.split(uploadFiles.value.length, 1) | |||
// } | |||
console.log(fileList.value) | |||
} | |||
</script> |
@@ -0,0 +1,136 @@ | |||
<template> | |||
<div class="app-content"> | |||
<el-row> | |||
<el-col :span="7"> | |||
<el-upload | |||
action="/" | |||
:on-change="onChange" | |||
:auto-upload="false" | |||
:show-file-list="false" | |||
accept=".xls, .xlsx" | |||
> | |||
<el-button size="small" type="primary">选择文件</el-button> | |||
</el-upload> | |||
</el-col> | |||
<el-col :span="7"> | |||
<el-button size="small" type="primary" @click="exportExcel">文件导出</el-button> | |||
</el-col> | |||
</el-row> | |||
<el-table | |||
style="margin:20px 0;" | |||
:data="outputs" | |||
border | |||
:header-cell-style="{background:'#f1f1f1',color:'#606266'}" | |||
> | |||
<el-table-column label="姓名" prop="name"></el-table-column> | |||
<!-- <el-table-column label="年龄" prop="age"></el-table-column> --> | |||
</el-table> | |||
</div> | |||
</template> | |||
<script> | |||
import * as XLSX from "xlsx"; | |||
export default { | |||
data() { | |||
return { | |||
outputs: [], // 保存读取出来的数据列表 | |||
fileData: "" // 保存选择的文件数据 | |||
}; | |||
}, | |||
create() { | |||
console.log(XLSX); | |||
}, | |||
methods: { | |||
//文件选择时 | |||
onChange(file, fileList) { | |||
this.fileData = file; // 保存当前选择文件 | |||
this.readExcel(); // 调用读取数据的方法 | |||
}, | |||
//读取文件数据 | |||
readExcel(e) { | |||
let that = this; | |||
const files = that.fileData; | |||
if (!files) { | |||
//如果没有文件 | |||
return false; | |||
} else if (!/\.(xls|xlsx)$/.test(files.name.toLowerCase())) { | |||
this.$message.error("上传格式不正确,请上传xls或者xlsx格式"); | |||
return false; | |||
} | |||
const fileReader = new FileReader(); | |||
fileReader.onload = ev => { | |||
try { | |||
const data = ev.target.result; | |||
const workbook = XLSX.read(data, { | |||
type: "binary" | |||
}); | |||
//导入的文件名称 | |||
console.log(workbook.SheetNames); | |||
const wsname = workbook.SheetNames[0]; //取第一张表 | |||
const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]); //生成json表格内容 | |||
that.outputs = []; //清空接收数据 | |||
for (var i = 0; i < ws.length; i++) { | |||
var sheetData = { | |||
// 键名为绑定 el 表格的关键字,值则是 ws[i][对应表头名] | |||
//此处的字段名对应 上面表格数据的字段名 | |||
age: ws[i]["年龄"], | |||
name: ws[i]["姓名"] | |||
}; | |||
that.outputs.push(sheetData); | |||
} | |||
} catch (e) { | |||
console.log(e); | |||
return false; | |||
} | |||
}; | |||
// 如果为原生 input 则应是 files[0] | |||
fileReader.readAsBinaryString(files.raw); | |||
}, | |||
//导出文件 | |||
exportExcel() { | |||
if (!this.outputs.length) { | |||
this.$message.warning("暂无数据导出"); | |||
return false; | |||
} | |||
import("@/utils/Export2Excel").then(excel => { | |||
//导出表格头部内容(要与下面字段对照) | |||
const tHeader = ["姓名", "年龄"]; | |||
const filterVal = ["name", "age"]; | |||
const data = this.formatJson(filterVal); | |||
//保存excel | |||
excel.export_json_to_excel({ | |||
header: tHeader, | |||
data, | |||
//导出的文件名 | |||
filename: "table-list" | |||
}); | |||
}); | |||
}, | |||
//格式转换 | |||
formatJson(filterVal) { | |||
return this.outputs.map(v => | |||
// obj = { | |||
// name:'', | |||
// age:'' | |||
// } | |||
filterVal.map(j => { | |||
// obj[name] | |||
// obj[age] | |||
console.log(v[j]); | |||
return v[j]; | |||
}) | |||
); | |||
// [[name,age],[name,age],[name,age]] | |||
} | |||
} | |||
}; | |||
</script> | |||
<style> | |||
</style> |
@@ -1,135 +1,45 @@ | |||
<template> | |||
<div class="app-content"> | |||
<el-row> | |||
<el-col :span="7"> | |||
<el-upload | |||
action="/" | |||
:on-change="onChange" | |||
:auto-upload="false" | |||
:show-file-list="false" | |||
accept=".xls, .xlsx" | |||
> | |||
<el-button size="small" type="primary">选择文件</el-button> | |||
</el-upload> | |||
</el-col> | |||
<el-col :span="7"> | |||
<el-button size="small" type="primary" @click="exportExcel">文件导出</el-button> | |||
</el-col> | |||
</el-row> | |||
<el-table | |||
style="margin:20px 0;" | |||
:data="outputs" | |||
:header-cell-style="{background:'#f1f1f1',color:'#606266'}" | |||
> | |||
<el-table-column label="姓名" prop="name"></el-table-column> | |||
<!-- <el-table-column label="年龄" prop="age"></el-table-column> --> | |||
</el-table> | |||
</div> | |||
<!-- accept 限制上传文件格式 .text :auto-upload="false"--> | |||
<el-upload ref="uploadRef" action="https://jsonplaceholder.typicode.com/posts/" | |||
:before-upload="beforeAvatarUpload" :on-success="handleAvatarSuccess" :show-file-list="false" :file-list="fileList"> | |||
<template #trigger> | |||
<el-button type="primary">select file</el-button> | |||
</template> | |||
<el-button class="ml-3" type="success"> upload to server </el-button> | |||
<template #tip> | |||
<div class="el-upload__tip">jpg/png files with a size less than 500kb</div> | |||
</template> | |||
</el-upload> | |||
</template> | |||
<script lang="ts" setup> | |||
import { ref } from 'vue' | |||
import { barkFileName } from '@/utils/utils' | |||
import { UploadProps, UploadUserFile } from 'element-plus' | |||
import { ElMessage } from 'element-plus' | |||
<script> | |||
const uploadRef = ref() | |||
const imageUrl = ref('') | |||
const fileList = ref<UploadUserFile[]>([]) | |||
import * as XLSX from "xlsx"; | |||
const handleAvatarSuccess: UploadProps['onSuccess'] = ( | |||
response, | |||
uploadFile | |||
) => { | |||
imageUrl.value = URL.createObjectURL(uploadFile.raw!) | |||
} | |||
export default { | |||
data() { | |||
return { | |||
outputs: [], // 保存读取出来的数据列表 | |||
fileData: "" // 保存选择的文件数据 | |||
}; | |||
}, | |||
create() { | |||
console.log(XLSX); | |||
}, | |||
methods: { | |||
//文件选择时 | |||
onChange(file, fileList) { | |||
this.fileData = file; // 保存当前选择文件 | |||
this.readExcel(); // 调用读取数据的方法 | |||
}, | |||
//读取文件数据 | |||
readExcel(e) { | |||
let that = this; | |||
const files = that.fileData; | |||
if (!files) { | |||
//如果没有文件 | |||
return false; | |||
} else if (!/\.(xls|xlsx)$/.test(files.name.toLowerCase())) { | |||
this.$message.error("上传格式不正确,请上传xls或者xlsx格式"); | |||
return false; | |||
} | |||
const fileReader = new FileReader(); | |||
fileReader.onload = ev => { | |||
try { | |||
const data = ev.target.result; | |||
const workbook = XLSX.read(data, { | |||
type: "binary" | |||
}); | |||
//导入的文件名称 | |||
console.log(workbook.SheetNames); | |||
const wsname = workbook.SheetNames[0]; //取第一张表 | |||
const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]); //生成json表格内容 | |||
that.outputs = []; //清空接收数据 | |||
for (var i = 0; i < ws.length; i++) { | |||
var sheetData = { | |||
// 键名为绑定 el 表格的关键字,值则是 ws[i][对应表头名] | |||
//此处的字段名对应 上面表格数据的字段名 | |||
age: ws[i]["年龄"], | |||
name: ws[i]["姓名"] | |||
}; | |||
that.outputs.push(sheetData); | |||
} | |||
} catch (e) { | |||
console.log(e); | |||
return false; | |||
} | |||
}; | |||
// 如果为原生 input 则应是 files[0] | |||
fileReader.readAsBinaryString(files.raw); | |||
}, | |||
//导出文件 | |||
exportExcel() { | |||
if (!this.outputs.length) { | |||
this.$message.warning("暂无数据导出"); | |||
return false; | |||
} | |||
import("@/utils/Export2Excel").then(excel => { | |||
//导出表格头部内容(要与下面字段对照) | |||
const tHeader = ["姓名", "年龄"]; | |||
const filterVal = ["name", "age"]; | |||
const data = this.formatJson(filterVal); | |||
//保存excel | |||
excel.export_json_to_excel({ | |||
header: tHeader, | |||
data, | |||
//导出的文件名 | |||
filename: "table-list" | |||
}); | |||
}); | |||
}, | |||
//格式转换 | |||
formatJson(filterVal) { | |||
return this.outputs.map(v => | |||
// obj = { | |||
// name:'', | |||
// age:'' | |||
// } | |||
filterVal.map(j => { | |||
// obj[name] | |||
// obj[age] | |||
console.log(v[j]); | |||
return v[j]; | |||
}) | |||
); | |||
// [[name,age],[name,age],[name,age]] | |||
} | |||
//文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用 | |||
const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => { | |||
console.log(rawFile); | |||
if (rawFile.type !== 'image/jpeg') { | |||
ElMessage.error('头像图片必须为JPG格式!') | |||
return false | |||
} else if (rawFile.size / 1024 / 1024 > 2) { | |||
ElMessage.error('头像图片大小不能超过2MB!') | |||
return false | |||
} | |||
}; | |||
</script> | |||
<style> | |||
</style> | |||
return true | |||
// uploadRef.value.clearFiles() 默认上传成功后调用 | |||
} | |||
</script> |
@@ -1,87 +1,102 @@ | |||
<script lang='ts' setup> | |||
import { reactive,ref } from 'vue'; | |||
const OBUList = reactive({ | |||
cno: '', | |||
carNo: '', | |||
carColors: '', | |||
OBUno: '', | |||
pages: '10', | |||
<script lang="ts" setup> | |||
import { reactive, ref, getCurrentInstance, onMounted } from 'vue' | |||
const { proxy }: any = getCurrentInstance() | |||
onMounted(() => { | |||
proxy.$request | |||
.post('api/uc/trafficrecord/query', {}) | |||
.then((res: any) => { | |||
console.log(res, '=====123') | |||
}) | |||
.catch((err: any) => { | |||
console.log(err, '=====456') | |||
}) | |||
}) | |||
const OBUList = reactive({ | |||
cno: '', | |||
carNo: '', | |||
carColors: '', | |||
OBUno: '', | |||
pages: '10', | |||
}) | |||
//弹窗 | |||
const isShowDialog = ref(false) | |||
const formLabelWidth = "78px" | |||
const searchLabelWidth = "110px" | |||
const formData = reactive({ | |||
ownerName: '',//车主姓名 | |||
ownerIdType: '',//车主证件类型 | |||
ownerIdNum: '',//车主证件号码 | |||
ownerPositiveImageStr: '',//车主证件正面图片的BASE64编码 | |||
ownerNegativeImageStr: '',//车主证件反面图片的BASE64编码 | |||
scenePayType: '',//代扣协议支撑服务场景(签约渠道(银行、微信支付宝等)和用户签定的协议) | |||
const formLabelWidth = '78px' | |||
const searchLabelWidth = '110px' | |||
let formData = reactive({ | |||
ownerName: '', //车主姓名 | |||
ownerIdType: '', //车主证件类型 | |||
ownerIdNum: '', //车主证件号码 | |||
ownerPositiveImageStr: '', //车主证件正面图片的BASE64编码 | |||
ownerNegativeImageStr: '', //车主证件反面图片的BASE64编码 | |||
scenePayType: '', //代扣协议支撑服务场景(签约渠道(银行、微信支付宝等)和用户签定的协议) | |||
}) | |||
const handleView = (item:any,v:any) => { | |||
console.log('view',item,v) | |||
const handleView = (item: any, v: any) => { | |||
console.log('view', item, v) | |||
} | |||
const handleEdit = (item:any,v:any) => { | |||
console.log('edit',item,v.OBUNo) | |||
const handleEdit = (item: any, v: any) => { | |||
console.log('edit', item, v) | |||
formData.ownerName = v.ownerName | |||
formData.ownerIdType = v.ownerIdType | |||
formData.ownerIdNum = v.ownerIdNum | |||
isShowDialog.value = true | |||
} | |||
const pages =[ | |||
{ | |||
value: '10', | |||
label: '10', | |||
}, | |||
{ | |||
value: '20', | |||
label: '20', | |||
}, | |||
{ | |||
value: '30', | |||
label: '30', | |||
} | |||
const pages = [ | |||
{ | |||
value: '10', | |||
label: '10', | |||
}, | |||
{ | |||
value: '20', | |||
label: '20', | |||
}, | |||
{ | |||
value: '30', | |||
label: '30', | |||
}, | |||
] | |||
const colors = [ | |||
{ | |||
value: 'Option1', | |||
label: '蓝色', | |||
}, | |||
{ | |||
value: 'Option2', | |||
label: '黄色', | |||
}, | |||
{ | |||
value: 'Option3', | |||
label: '黑色', | |||
}, | |||
{ | |||
value: 'Option4', | |||
label: '白色', | |||
}, | |||
{ | |||
value: 'Option5', | |||
label: '渐变绿色', | |||
}, | |||
{ | |||
value: 'Option6', | |||
label: '黄绿双拼色', | |||
}, | |||
{ | |||
value: 'Option7', | |||
label: '蓝白渐变色', | |||
}, | |||
{ | |||
value: 'Option8', | |||
label: '未确定', | |||
}, | |||
{ | |||
value: 'Option9', | |||
label: '绿色', | |||
}, | |||
{ | |||
value: 'Option10', | |||
label: '红色', | |||
}, | |||
] | |||
const colors = [{ | |||
value: 'Option1', | |||
label: '蓝色', | |||
}, | |||
{ | |||
value: 'Option2', | |||
label: '黄色', | |||
}, | |||
{ | |||
value: 'Option3', | |||
label: '黑色', | |||
}, | |||
{ | |||
value: 'Option4', | |||
label: '白色', | |||
}, | |||
{ | |||
value: 'Option5', | |||
label: '渐变绿色', | |||
}, | |||
{ | |||
value: 'Option6', | |||
label: '黄绿双拼色', | |||
}, | |||
{ | |||
value: 'Option7', | |||
label: '蓝白渐变色', | |||
}, | |||
{ | |||
value: 'Option8', | |||
label: '未确定', | |||
}, | |||
{ | |||
value: 'Option9', | |||
label: '绿色', | |||
}, | |||
{ | |||
value: 'Option10', | |||
label: '红色', | |||
}, | |||
] | |||
const options = [ | |||
{ | |||
value: 'Option1', | |||
@@ -108,31 +123,9 @@ const tableData = [ | |||
{ | |||
carId: '贵CEP186_0', | |||
customerNo: '52010116110441017', | |||
customerName: '周金碧', | |||
certificatesType: '身份证(含临时身份证)', | |||
identificationNo: '522125196110110029', | |||
carNo: '贵CEP186', | |||
carColor: '白色', | |||
carStyle: '一型客车', | |||
updateTime: '2018/03/17 21:15:13', | |||
}, | |||
{ | |||
carId: '贵CEP186_0', | |||
customerNo: '52010116110441017', | |||
customerName: '周金碧', | |||
certificatesType: '身份证(含临时身份证)', | |||
identificationNo: '522125196110110029', | |||
carNo: '贵CEP186', | |||
carColor: '白色', | |||
carStyle: '一型客车', | |||
updateTime: '2018/03/17 21:15:13', | |||
}, | |||
{ | |||
carId: '贵CEP186_0', | |||
customerNo: '52010116110441017', | |||
customerName: '周金碧', | |||
certificatesType: '身份证(含临时身份证)', | |||
identificationNo: '522125196110110029', | |||
ownerName: '周金碧', | |||
ownerIdType: '身份证(含临时身份证)', | |||
ownerIdNum: '522125196110110029', | |||
carNo: '贵CEP186', | |||
carColor: '白色', | |||
carStyle: '一型客车', | |||
@@ -141,112 +134,118 @@ const tableData = [ | |||
] | |||
</script> | |||
<template> | |||
<div class="OBU-query content-warpper"> | |||
<el-form :inline="true" :model="OBUList" class="demo-form-inline"> | |||
<el-form-item label="车牌号码" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.carNo" placeholder="车牌号码" /> | |||
</el-form-item> | |||
<el-form-item label="车牌颜色" :label-width="searchLabelWidth"> | |||
<el-select v-model="OBUList.carColors" class="m-2" placeholder="Select"> | |||
<el-option | |||
v-for="item in colors" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value" | |||
/> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="所有人证件类型" :label-width="searchLabelWidth"> | |||
<el-select v-model="OBUList.carColors" class="m-2" placeholder="请选择"> | |||
<el-option | |||
v-for="item in options" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value" | |||
/> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="所有人证件号" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.OBUno" placeholder="所有人证件号" /> | |||
</el-form-item> | |||
<el-form-item label="所有人名称" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.OBUno" placeholder="所有人名称" /> | |||
</el-form-item> | |||
<el-form-item label="客户编号" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.OBUno" placeholder="客户编号" /> | |||
</el-form-item> | |||
<el-form-item label="每条页数" :label-width="searchLabelWidth"> | |||
<el-select v-model="OBUList.pages" placeholder="请选择" class="pageSelect"> | |||
<el-option | |||
v-for="item in pages" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value" | |||
/> | |||
</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" 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" /> | |||
<el-table-column prop="carId" label="车牌编号" width="120" align="center" /> | |||
<el-table-column prop="customerNo" label="客户编号" width="180" align="center" /> | |||
<el-table-column prop="customerName" label="客户名称" width="100" align="center" /> | |||
<el-table-column prop="certificatesType" label="客户证件类型" width="180" align="center" /> | |||
<el-table-column prop="identificationNo" label="客户证件号码" width="180" align="center" /> | |||
<el-table-column prop="carNo" label="车牌号码" width="100" align="center" /> | |||
<el-table-column prop="carColor" label="车牌颜色" width="120" align="center" /> | |||
<el-table-column prop="carStyle" label="车型" width="100" align="center" /> | |||
<el-table-column prop="updateTime" label="更新时间" width="180" align="center" /> | |||
<el-table-column fixed="right" label="操作" width="160" align="center" > | |||
<template #default="scope"> | |||
<el-button type="primary" size="small" @click="handleView(scope.$index, scope.row)">详情</el-button> | |||
<el-button type="success" size="small" @click="handleEdit(scope.$index, scope.row)">修改</el-button> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
<el-dialog v-model="isShowDialog" title="车辆信息变更" custom-class="custom-dialog" :width="576"> | |||
<el-form :model="formData" :inline="true"> | |||
<el-form-item label="车主姓名" :label-width="formLabelWidth"> | |||
<el-input v-model="formData.ownerName" autocomplete="off" /> | |||
</el-form-item> | |||
<el-form-item label="证件类型" :label-width="formLabelWidth"> | |||
<el-select v-model="formData.ownerIdType" placeholder="请选择"> | |||
<el-option label="Zone No.1" value="shanghai" /> | |||
<el-option label="Zone No.2" value="beijing" /> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="证件号码" :label-width="formLabelWidth"> | |||
<el-input v-model="formData.ownerIdNum" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<template #footer> | |||
<span class="dialog-footer"> | |||
<el-button type="danger" @click="isShowDialog = false" plain>取消</el-button> | |||
<el-button type="primary" @click="isShowDialog = false" | |||
>保存</el-button | |||
> | |||
</span> | |||
</template> | |||
</el-dialog> | |||
</div> | |||
<div class="OBU-query content-warpper"> | |||
<el-form :inline="true" :model="OBUList" class="demo-form-inline"> | |||
<el-form-item label="车牌号码" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.carNo" placeholder="车牌号码" /> | |||
</el-form-item> | |||
<el-form-item label="车牌颜色" :label-width="searchLabelWidth"> | |||
<el-select v-model="OBUList.carColors" class="m-2" placeholder="Select"> | |||
<el-option | |||
v-for="item in colors" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value" | |||
/> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="所有人证件类型" :label-width="searchLabelWidth"> | |||
<el-select v-model="OBUList.carColors" class="m-2" placeholder="请选择"> | |||
<el-option | |||
v-for="item in options" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value" | |||
/> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="所有人证件号" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.OBUno" placeholder="所有人证件号" /> | |||
</el-form-item> | |||
<el-form-item label="所有人名称" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.OBUno" placeholder="所有人名称" /> | |||
</el-form-item> | |||
<el-form-item label="客户编号" :label-width="searchLabelWidth"> | |||
<el-input v-model="OBUList.OBUno" placeholder="客户编号" /> | |||
</el-form-item> | |||
<el-form-item label="每条页数" :label-width="searchLabelWidth"> | |||
<el-select v-model="OBUList.pages" placeholder="请选择" class="pageSelect"> | |||
<el-option | |||
v-for="item in pages" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value" | |||
/> | |||
</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" icon="Refresh">重置</el-button></el-form-item> | |||
</el-form> | |||
<el-table :data="tableData" style="width: 100%" border size="small"> | |||
<el-table-column type="index" label="序号" align="center" /> | |||
<el-table-column prop="carId" label="车牌编号" align="center" /> | |||
<el-table-column prop="customerNo" label="客户编号" align="center" /> | |||
<el-table-column prop="ownerName" label="客户名称" align="center" /> | |||
<el-table-column prop="ownerIdType" label="客户证件类型" align="center" /> | |||
<el-table-column prop="ownerIdNum" label="客户证件号码" align="center" /> | |||
<el-table-column prop="carNo" label="车牌号码" align="center" /> | |||
<el-table-column prop="carColor" label="车牌颜色" align="center" /> | |||
<el-table-column prop="carStyle" label="车型" align="center" /> | |||
<el-table-column prop="updateTime" label="更新时间" align="center" /> | |||
<el-table-column fixed="right" label="操作" width="160" align="center"> | |||
<template #default="scope"> | |||
<el-button type="primary" size="small" @click="handleView(scope.$index, scope.row)" | |||
>详情</el-button | |||
> | |||
<el-button type="success" size="small" @click="handleEdit(scope.$index, scope.row)" | |||
>修改</el-button | |||
> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
<el-dialog | |||
v-model="isShowDialog" | |||
title="车辆信息变更" | |||
custom-class="custom-dialog" | |||
:width="576" | |||
> | |||
<el-form :model="formData" :inline="true"> | |||
<el-form-item label="车主姓名" :label-width="formLabelWidth"> | |||
<el-input v-model="formData.ownerName" autocomplete="off" /> | |||
</el-form-item> | |||
<el-form-item label="证件类型" :label-width="formLabelWidth"> | |||
<el-select v-model="formData.ownerIdType" placeholder="请选择"> | |||
<el-option label="Zone No.1" value="shanghai" /> | |||
<el-option label="Zone No.2" value="beijing" /> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="证件号码" :label-width="formLabelWidth"> | |||
<el-input v-model="formData.ownerIdNum" autocomplete="off" /> | |||
</el-form-item> | |||
</el-form> | |||
<template #footer> | |||
<span class="dialog-footer"> | |||
<el-button type="danger" @click="isShowDialog = false" plain>取消</el-button> | |||
<el-button type="primary" @click="isShowDialog = false">保存</el-button> | |||
</span> | |||
</template> | |||
</el-dialog> | |||
</div> | |||
</template> | |||
<style scoped> | |||
.el-form--inline .el-form-item{ | |||
margin-right: 16px; | |||
} | |||
.el-select-dropdown__item{ | |||
font-family: "Microsoft Yahei"; | |||
.el-form--inline .el-form-item { | |||
margin-right: 16px; | |||
} | |||
.el-select-dropdown__item { | |||
font-family: 'Microsoft Yahei'; | |||
} | |||
.el-select{ | |||
width: 168px; | |||
.el-select { | |||
width: 168px; | |||
} | |||
.pageSelect{ | |||
width: 80px; | |||
.pageSelect { | |||
width: 80px; | |||
} | |||
.custom-dialog .el-button{ | |||
padding: 0 32px; | |||
.custom-dialog .el-button { | |||
padding: 0 32px; | |||
} | |||
</style> | |||
</style> |
@@ -53,12 +53,12 @@ export default defineConfig(({ command, mode }) => { | |||
target: process.env.VUE_APP_BASE_API, | |||
changeOrigin: true, | |||
rewrite: path => path.replace(/^\/api/, '') //重写 | |||
} | |||
/*'/corporateaccount': { | |||
}, | |||
'/corporateaccount': { | |||
target: process.env.VUE_APP_BASE_API, | |||
changeOrigin: true, | |||
rewrite: path => path.replace(/^\/api/, '') //重写 | |||
},*/ | |||
}, | |||
}, | |||
}, | |||
// 生产环境打包配置 |
@@ -556,6 +556,14 @@ | |||
"resolved" "https://registry.npm.taobao.org/buffers/download/buffers-0.1.1.tgz" | |||
"version" "0.1.1" | |||
"call-bind@^1.0.0": | |||
"integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" | |||
"resolved" "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz" | |||
"version" "1.0.2" | |||
dependencies: | |||
"function-bind" "^1.1.1" | |||
"get-intrinsic" "^1.0.2" | |||
"callsites@^3.0.0": | |||
"integrity" "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=" | |||
"resolved" "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz" | |||
@@ -1208,6 +1216,15 @@ | |||
"resolved" "https://registry.npmmirror.com/fuse.js/-/fuse.js-6.5.3.tgz" | |||
"version" "6.5.3" | |||
"get-intrinsic@^1.0.2": | |||
"integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" | |||
"resolved" "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz" | |||
"version" "1.1.1" | |||
dependencies: | |||
"function-bind" "^1.1.1" | |||
"has" "^1.0.3" | |||
"has-symbols" "^1.0.1" | |||
"glob-parent@^5.1.2", "glob-parent@~5.1.2": | |||
"integrity" "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=" | |||
"resolved" "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz" | |||
@@ -1268,6 +1285,11 @@ | |||
"resolved" "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz" | |||
"version" "4.0.0" | |||
"has-symbols@^1.0.1": | |||
"integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" | |||
"resolved" "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz" | |||
"version" "1.0.3" | |||
"has@^1.0.3": | |||
"integrity" "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=" | |||
"resolved" "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz" | |||
@@ -1632,6 +1654,11 @@ | |||
"resolved" "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz" | |||
"version" "1.1.2" | |||
"object-inspect@^1.9.0": | |||
"integrity" "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" | |||
"resolved" "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz" | |||
"version" "1.12.0" | |||
"once@^1.3.0": | |||
"integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" | |||
"resolved" "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz" | |||
@@ -1749,6 +1776,13 @@ | |||
"resolved" "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz" | |||
"version" "2.1.1" | |||
"qs@^6.10.3": | |||
"integrity" "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==" | |||
"resolved" "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz" | |||
"version" "6.10.3" | |||
dependencies: | |||
"side-channel" "^1.0.4" | |||
"queue-microtask@^1.2.2": | |||
"integrity" "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=" | |||
"resolved" "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391510274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz" | |||
@@ -1898,6 +1932,15 @@ | |||
"resolved" "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz" | |||
"version" "3.0.0" | |||
"side-channel@^1.0.4": | |||
"integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" | |||
"resolved" "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz" | |||
"version" "1.0.4" | |||
dependencies: | |||
"call-bind" "^1.0.0" | |||
"get-intrinsic" "^1.0.2" | |||
"object-inspect" "^1.9.0" | |||
"slash@^3.0.0": | |||
"integrity" "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=" | |||
"resolved" "https://registry.nlark.com/slash/download/slash-3.0.0.tgz" |