shenbo781 3 years ago
parent
commit
4bbdc5f859

+ 1
- 1
.env.development View File

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

+ 1
- 1
.env.production View File

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

+ 103
- 6
package-lock.json View File

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

+ 1
- 0
package.json View File

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

+ 2
- 2
src/App.vue View File

@@ -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; */
}

+ 3
- 2
src/api/index.ts View File

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

+ 22
- 77
src/components/exportTable/exportTable.vue View File

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

+ 34
- 0
src/utils/utils.ts View File

@@ -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('模块名不能为空')
}

})
}

+ 4
- 5
src/views/dengmingcong/cardFillDo/cardFillDo.vue View File

@@ -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: {}) => {

+ 8
- 12
src/views/fancongcong/corporateaccountManage/corporateaccountManage.vue View File

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

+ 32
- 29
src/views/shengbo/trafficFlow/trafficFlow.vue View File

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

+ 0
- 50
src/views/system/home/Home copy.vue View File

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

+ 136
- 0
src/views/system/home/Home copy2.vue View File

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

+ 39
- 129
src/views/system/home/Home.vue View File

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

+ 202
- 203
src/views/weixingrong/vehicleEnquirChange/vehicleEnquirChange.vue View File

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

+ 0
- 0
vebdor/Export2Excel.xlsx View File


+ 3
- 3
vite.config.ts View File

@@ -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/, '') //重写
},*/
},
},
},
// 生产环境打包配置

+ 43
- 0
yarn.lock View File

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

Loading…
Cancel
Save