Browse Source

样式数据调整

master
j1ack 3 years ago
parent
commit
372e75ec44
  1. 1
      components.d.ts
  2. 1200
      package-lock.json
  3. 13
      src/App.vue
  4. 4
      src/api/config.ts
  5. 15
      src/api/requst.ts
  6. 146
      src/components/row-search-home.vue
  7. 102
      src/components/row-search.vue
  8. 15
      src/components/search.vue
  9. 2
      src/components/table/constant.ts
  10. 5
      src/components/table/dBase/transactDetailsRow.vue
  11. 9
      src/components/table/desktop/bkTable.vue
  12. 33
      src/components/table/desktop/bkTableDetails.vue
  13. 5
      src/components/table/desktop/transactTable.vue
  14. 4
      src/pages/BitcNFt/cards.vue
  15. 77
      src/pages/HomePage/index.vue
  16. 60
      src/pages/TableBlock/Block/details.vue
  17. 2
      src/pages/TableBlock/Transactions/logs.vue
  18. 1
      src/pages/TableBlock/index.scss
  19. 2
      src/pages/VNFT/centerContent.vue
  20. 1
      tsconfig.json
  21. 420
      yarn.lock
  22. BIN
      正式.zip

1
components.d.ts

@ -30,6 +30,7 @@ declare module '@vue/runtime-core' {
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
RowSearch: typeof import('./src/components/row-search.vue')['default']
RowSearchHome: typeof import('./src/components/row-search-home.vue')['default']
Search: typeof import('./src/components/search.vue')['default']
THeader: typeof import('./src/components/table/dBase/tHeader.vue')['default']
TokensCard: typeof import('./src/components/table/mBase/tokensCard.vue')['default']

1200
package-lock.json

File diff suppressed because it is too large

13
src/App.vue

@ -1,4 +1,12 @@
<template>
<!-- <div
class="w-full flex items-center justify-center bg-black-19191A desktop:mt-[108px] mobile:mt-[48px] bgb"
style="height:92px;background:#fff;position: sticky; top: 0px"
>
</div> -->
<div class="w-full max-w-[1440px] z-[99]">
<!-- <router-link to="/">首页</router-link>&nbsp;
<router-link to="/TableBlock">block</router-link>&nbsp;
@ -13,5 +21,8 @@
</template>
<script setup lang="ts">
import Footer from '@src/components/footer.vue'
</script>
<style scoped></style>
<style scoped>
</style>

4
src/api/config.ts

@ -1,5 +1,5 @@
const baseURL = 'http://wallet-chaindata-api.weirui0755.com'
// const baseURL = 'https://apiasia.mbc.network/'
// const baseURL = 'http://wallet-chaindata-api.weirui0755.com'
const baseURL = 'https://apiasia.mbc.network/'
export const baseConfig = {
baseURL: baseURL,
requestTimeout: 10000,

15
src/api/requst.ts

@ -1,6 +1,7 @@
import axios from 'axios'
import { baseConfig } from './config'
import { ElLoading } from 'element-plus';
let loading;
// 创建axios实例
export function requestService(config: any) {
const service = axios.create({
@ -10,6 +11,16 @@ export function requestService(config: any) {
// request拦截器
service.interceptors.request.use(
(config) => {
console.log(config.url)
if(config.url!='/api/block/getSearch'){
loading = ElLoading.service({
lock: true,
text: 'Requesting data',
background: 'rgba(0, 0, 0, 0.8)',
spinner: 'el-icon-loading'
})
}
return config
},
(error) => {
@ -21,9 +32,11 @@ export function requestService(config: any) {
// 响应拦截器
service.interceptors.response.use(
(res) => {
loading.close()
return res.data
},
(error) => {
loading.close()
return Promise.reject(error)
}
)

146
src/components/row-search-home.vue

@ -0,0 +1,146 @@
<template>
<!-- height: 535.5px; -->
<div class="mobile:hidden z-10 sticky top-0" style="margin-bottom: 535.5px;">
<div class="flex flex-row mx-[120px] py-[20px] justify-between items-center bg-black">
<div class="flex flex-1 justify-start items-center cursor-pointer" @click="handleBackHomePage">
<img :src="iconList.label" class="w-[60px] h-[33px]" />
<span class="text-[34px] font-semibold text-white ml-[11.5px]">MetaForce Scan</span>
</div>
<div class="flex flex-1 flex-col justify-end items-center relative">
<div class="flex flex-1 w-full max-w-[554px]">
<el-input v-model="input"
class="bg-black h-[52px] pl-[33px] text-[12px] rounded-t-[32.5px] overflow-hidden hp-input-wrapper"
placeholder="Search by Address/Token symbol/Name/Transaction hash/Bock number" :prefix-icon="Search"
:input-style="{ background: '#262626' }" @focus="handleFocus" @blur="handleBlur" @input="handleChangeInput"
:class="isActive && data.length > 0 ? '' : 'rounded-b-[32.5px]'" @keydown="handleEnter" />
</div>
<div class="w-full max-w-[554px] absolute top-[52px] z-10" :class="isActive && data.length > 0 ? '' : 'hidden'">
<div
class="bg-black-262626 px-[32px] py-[20px] hover:bg-gray-323232 border-t-[1px] border-black-3B3B3C cursor-pointer w-full whitespace-nowrap overflow-hidden text-ellipsis"
v-for="(item, index) in data" :key="index + item.hash" :class="
index === data.length - 1
? 'rounded-b-[32.5px] border-b-[0px]'
: 'border-b-[1px]'
" @click="handleClick(item)">
<span class="text-blue-65B5FF">{{ item.info || '-' }}</span>
</div>
</div>
</div>
</div>
</div>
<!-- 移动端显示 -->
<div class="desktop:hidden">
<div class="bg-home-page bg-cover bg-center bg-no-repeat w-full h-[219px] pt-[25px]">
<div class="flex flex-1 justify-center items-center" @click="handleBackHomePage">
<img :src="iconList.label" class="w-[40px] h-[24px]" />
<span class="text-[24px] font-semibold text-white ml-[16px]">MetaForce Scan</span>
</div>
<div class="flex flex-1 w-full h-[40px] justify-center items-center mt-[32px] relative">
<div class="flex flex-1 px-[20px]">
<el-input v-model="input"
class="bg-black h-[40px] pl-[15.69px] text-[12px] rounded-t-[20px] overflow-hidden hp-input-wrapper"
placeholder="Search by Address/Token symbol/Name/Transaction hash/Bock number" :prefix-icon="Search"
:input-style="{ background: '#262626' }" @focus="handleFocus" @blur="handleBlur" @change="handleEnter"
@input="handleChangeInput" :class="isActive && data.length > 0 ? '' : 'rounded-b-[20px]'"
@keydown="handleEnter" />
</div>
<div class="w-full max-full-is-active absolute top-[40px] z-10"
:class="isActive && data.length > 0 ? '' : 'hidden'">
<div
class="bg-black-262626 desktop:px-[20px] desktop:py-[15px] mobile:px-[20px] mobile:py-[10px] hover:bg-gray-323232 border-t-[1px] border-black-3B3B3C cursor-pointer w-full whitespace-nowrap overflow-hidden text-ellipsis"
v-for="(item, index) in data" :key="index + item.hash" :class="
index === data.length - 1
? 'rounded-b-[20px] border-b-[0px]'
: 'border-b-[1px]'
" @click="handleClick(item)">
<span class="text-blue-65B5FF mobile:text-[14px]">{{
item.info || '-'
}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="bg-home-page bg-cover absolute left-0 z-[-1] bg-no-repeat w-full h-[535.5px]"></div>
</template>
<script setup lang="ts">
import { Search } from '@element-plus/icons-vue'
import { getSearch } from '@src/api/BlockController'
import { Throttle } from '@src/utils/throttle'
import { ref } from 'vue'
import { useRouter } from 'vue-router'
import * as iconList from '../assets/Icons/index'
const router = useRouter()
let input = ref<string>('')
let isActive = ref(false)
const data = ref<any>([])
const handleFocus = () => (isActive.value = true)
const handleBlur = () =>
setTimeout(() => {
isActive.value = false
}, 150)
// enter /
const handleEnter = (e: any) => {
if (e.keyCode === 13 && data.value.length != 0) {
console.log(data)
handleClick(data.value[0])
}
}
//
const handleClick = (item: any) => {
// type
let route = ''
switch (item?.type) {
case 1: {
route = 'blocks'
break
}
case 2: {
route = 'tx'
break
}
case 3: {
route = 'tokens'
break
}
case 4: {
route = 'BitcNFt'
}
}
//
if (item?.type == 4) {
router.replace(`/${route}/${item?.hash}`)
return
}
router.replace(`/${route}/${item.info}`)
}
// input
const handleChangeInput = () => {
Throttle(searchRequest, 1000)()
}
//
const searchRequest = async () => {
try {
const res = await getSearch(input.value)
data.value = res.data
// if (data) {
// handleClick(data.value[0])
// }
console.log(data)
} catch (error) { }
}
const handleBackHomePage = () => {
router.push('/')
}
</script>
<style scoped>
.max-full-is-active {
max-width: calc(100% - 40px);
}
</style>

102
src/components/row-search.vue

@ -1,47 +1,26 @@
<template>
<div class="mobile:hidden z-10 desktop:pb-[60px] sticky top-0">
<div
class="flex flex-row mx-[120px] py-[20px] justify-between items-center bg-black"
>
<div
class="flex flex-1 justify-start items-center cursor-pointer"
@click="handleBackHomePage"
>
<div class="mobile:hidden z-10 sticky top-0">
<div class="flex flex-row mx-[120px] py-[20px] justify-between items-center bg-black">
<div class="flex flex-1 justify-start items-center cursor-pointer" @click="handleBackHomePage">
<img :src="iconList.label" class="w-[60px] h-[33px]" />
<span class="text-[34px] font-semibold text-white ml-[11.5px]"
>MetaForce Scan</span
>
<span class="text-[34px] font-semibold text-white ml-[11.5px]">MetaForce Scan</span>
</div>
<div class="flex flex-1 flex-col justify-end items-center relative">
<div class="flex flex-1 w-full max-w-[554px]">
<el-input
v-model="input"
<el-input v-model="input"
class="bg-black h-[52px] pl-[33px] text-[12px] rounded-t-[32.5px] overflow-hidden hp-input-wrapper"
placeholder="Search by Address/Token symbol/Name/Transaction hash/Bock number"
:prefix-icon="Search"
:input-style="{ background: '#262626' }"
@focus="handleFocus"
@blur="handleBlur"
@input="handleChangeInput"
:class="isActive && data.length > 0 ? '' : 'rounded-b-[32.5px]'"
@keydown="handleEnter"
/>
placeholder="Search by Address/Token symbol/Name/Transaction hash/Bock number" :prefix-icon="Search"
:input-style="{ background: '#262626' }" @focus="handleFocus" @blur="handleBlur" @input="handleChangeInput"
:class="isActive && data.length > 0 ? '' : 'rounded-b-[32.5px]'" @keydown="handleEnter" />
</div>
<div
class="w-full max-w-[554px] absolute top-[52px] z-10"
:class="isActive && data.length > 0 ? '' : 'hidden'"
>
<div class="w-full max-w-[554px] absolute top-[52px] z-10" :class="isActive && data.length > 0 ? '' : 'hidden'">
<div
class="bg-black-262626 px-[32px] py-[20px] hover:bg-gray-323232 border-t-[1px] border-black-3B3B3C cursor-pointer w-full whitespace-nowrap overflow-hidden text-ellipsis"
v-for="(item, index) in data"
:key="index + item.hash"
:class="
v-for="(item, index) in data" :key="index + item.hash" :class="
index === data.length - 1
? 'rounded-b-[32.5px] border-b-[0px]'
: 'border-b-[1px]'
"
@click="handleClick(item)"
>
" @click="handleClick(item)">
<span class="text-blue-65B5FF">{{ item.info || '-' }}</span>
</div>
</div>
@ -50,62 +29,38 @@
</div>
<!-- 移动端显示 -->
<div class="desktop:hidden">
<div
class="bg-home-page bg-cover bg-center bg-no-repeat w-full h-[219px] pt-[25px]"
>
<div
class="flex flex-1 justify-center items-center"
@click="handleBackHomePage"
>
<div class="bg-home-page bg-cover bg-center bg-no-repeat w-full h-[219px] pt-[25px]">
<div class="flex flex-1 justify-center items-center" @click="handleBackHomePage">
<img :src="iconList.label" class="w-[40px] h-[24px]" />
<span class="text-[24px] font-semibold text-white ml-[16px]"
>MetaForce Scan</span
>
<span class="text-[24px] font-semibold text-white ml-[16px]">MetaForce Scan</span>
</div>
<div
class="flex flex-1 w-full h-[40px] justify-center items-center mt-[32px] relative"
>
<div class="flex flex-1 w-full h-[40px] justify-center items-center mt-[32px] relative">
<div class="flex flex-1 px-[20px]">
<el-input
v-model="input"
<el-input v-model="input"
class="bg-black h-[40px] pl-[15.69px] text-[12px] rounded-t-[20px] overflow-hidden hp-input-wrapper"
placeholder="Search by Address/Token symbol/Name/Transaction hash/Bock number"
:prefix-icon="Search"
:input-style="{ background: '#262626' }"
@focus="handleFocus"
@blur="handleBlur"
@change="handleEnter"
@input="handleChangeInput"
:class="isActive && data.length > 0 ? '' : 'rounded-b-[20px]'"
@keydown="handleEnter"
/>
placeholder="Search by Address/Token symbol/Name/Transaction hash/Bock number" :prefix-icon="Search"
:input-style="{ background: '#262626' }" @focus="handleFocus" @blur="handleBlur" @change="handleEnter"
@input="handleChangeInput" :class="isActive && data.length > 0 ? '' : 'rounded-b-[20px]'"
@keydown="handleEnter" />
</div>
<div
class="w-full max-full-is-active absolute top-[40px] z-10"
:class="isActive && data.length > 0 ? '' : 'hidden'"
>
<div class="w-full max-full-is-active absolute top-[40px] z-10"
:class="isActive && data.length > 0 ? '' : 'hidden'">
<div
class="bg-black-262626 desktop:px-[20px] desktop:py-[15px] mobile:px-[20px] mobile:py-[10px] hover:bg-gray-323232 border-t-[1px] border-black-3B3B3C cursor-pointer w-full whitespace-nowrap overflow-hidden text-ellipsis"
v-for="(item, index) in data"
:key="index + item.hash"
:class="
v-for="(item, index) in data" :key="index + item.hash" :class="
index === data.length - 1
? 'rounded-b-[20px] border-b-[0px]'
: 'border-b-[1px]'
"
@click="handleClick(item)"
>
" @click="handleClick(item)">
<span class="text-blue-65B5FF mobile:text-[14px]">{{
item.info || '-'
item.info || '-'
}}</span>
</div>
</div>
</div>
</div>
</div>
<div
class="bg-home-page bg-cover absolute left-0 z-[-1] bg-no-repeat w-full h-[535.5px]"
></div>
<div class="bg-home-page bg-cover absolute left-0 z-[-1] bg-no-repeat w-full h-[535.5px]"></div>
</template>
<script setup lang="ts">
@ -171,8 +126,11 @@ const searchRequest = async () => {
try {
const res = await getSearch(input.value)
data.value = res.data
// if (data) {
// handleClick(data.value[0])
// }
console.log(data)
} catch (error) {}
} catch (error) { }
}
const handleBackHomePage = () => {
router.push('/')

15
src/components/search.vue

@ -1,5 +1,5 @@
<template>
<!-- <div class="flex flex-1 flex-col sticky top-0"> -->
<div class="z-10 sticky top-0 desktop:w-[1440px] desktop:h-[535.5px] desktop:pt-[70px] mobile:w-full mobile:h-[219px] mobile:pt-[25px]" style="top:0px;">
<div class="flex flex-1 justify-center items-center">
<img
:src="iconList.label"
@ -52,7 +52,7 @@
</div>
</div>
</div>
<!-- </div> -->
</div>
</template>
<script setup lang="ts">
@ -67,6 +67,7 @@ const router = useRouter()
let input = ref<string>('')
let isActive = ref(false)
// let isBg = ref(false)
const data = ref<any>([])
const handleFocus = () => (isActive.value = true)
@ -118,8 +119,16 @@ const searchRequest = async () => {
try {
const res = await getSearch(input.value)
data.value = res.data
// if (data) {
// handleClick(data.value[0])
// }
} catch (error) {}
}
</script>
<style scoped></style>
<style scoped>
</style>

2
src/components/table/constant.ts

@ -1,6 +1,6 @@
// bkTable表配置
export const bkTableCollocate = {
labels: ['Block', 'date', 'Miner', 'Gas Limit', 'Gas Used'], // 表头
labels: ['Block', 'Date', 'Miner', 'Gas Limit', 'Gas Used'], // 表头
sequence: ['number', 'timestamp', 'miner', 'gasLimit', 'gasUsed'], // 对应数据的变量名称
// 数据颜色
colorSequence: [

5
src/components/table/dBase/transactDetailsRow.vue

@ -31,8 +31,9 @@
<p
:class="valueColor || 'text-white'"
class="text-[12px] font-normal align-middle"
style="margin-left:3px"
>
{{ value }}
{{ value }}
</p>
</div>
</div>
@ -60,7 +61,7 @@
>
<p
class="text-[15px] font-normal text-blue-65B5FF"
:class="index != 2 ? 'cursor-pointer' : ''"
:class="index != 3 ? 'cursor-pointer' : ''"
@click="jumpRouter(listData[item], index)"
>
{{ listData[item] }}

9
src/components/table/desktop/bkTable.vue

@ -86,6 +86,8 @@ const initBlock = async (page: number) => {
...item,
timestamp: timeConvert(item?.timestamp),
// number: item?.number?.toString(),
gasLimit: parseInt(item?.gasLimit).toString(),
gasUsed: parseInt(item?.gasUsed).toString(),
}))
//
loading.value = false
@ -93,6 +95,7 @@ const initBlock = async (page: number) => {
// websocket
const initWebSocket = () => {
// wss://apiasia.mbc.network/websocket wss://apiasia.mbc.network/websocket
ws.value = new WebSocket('wss://apiasia.mbc.network/websocket')
ws.value.addEventListener('open', () => {
ws.value?.send(JSON.stringify({ type: 'add_block' }))
@ -111,6 +114,12 @@ const initWebSocket = () => {
}
currentData.value = [item, ...currentData.value]
currentData.value.length = 10
currentData.value = currentData.value.map((item: any) => ({
...item,
gasLimit: parseInt(item?.gasLimit).toString(),
gasUsed: parseInt(item?.gasUsed).toString(),
}))
} catch (error) {}
}

33
src/components/table/desktop/bkTableDetails.vue

@ -1,20 +1,9 @@
<template>
<div
class="rounded-[10px] bg-black-19191A rounded-b-[10px] px-[34px] pt-[12px] pb-[28px]"
>
<details-row
v-for="(item, index) in invariable.labels"
:key="index + item"
:title="item"
:value="currentData?.[invariable.sequence?.[index]]?.toString()"
:value-color="invariable.colorSequence[index]"
:is-copy="invariable.isCopys[index]"
/>
<upper-lower-switch
:current="`Block${blockId}`"
:prev="handlePrev"
:next="handleNext"
/>
<div class="rounded-[10px] bg-black-19191A rounded-b-[10px] px-[34px] pt-[12px] pb-[28px]">
<details-row v-for="(item, index) in invariable.labels" :key="index + item" :title="item"
:value="currentData?.[invariable.sequence?.[index]]?.toString()" :value-color="invariable.colorSequence[index]"
:is-copy="invariable.isCopys[index]" />
<upper-lower-switch :current="`Block${blockId}`" :prev="handlePrev" :next="handleNext" />
</div>
</template>
@ -57,9 +46,15 @@ const requestByBlockId = async (id: number) => {
const res = await getBlock(params)
if (res.data) {
// data
res.data = {
...res.data,
gasLimit: parseInt(res.data?.gasLimit).toString(),
gasUsed: parseInt(res.data?.gasUsed).toString(),
}
currentData.value = res.data
}
} catch (error) {}
} catch (error) { }
}
// props.data
@ -74,4 +69,6 @@ const invariable = {
...detailsCollocate,
}
</script>
<style lang="scss"></style>
<style lang="scss">
</style>

5
src/components/table/desktop/transactTable.vue

@ -101,9 +101,10 @@ const initBlock = async (page: number) => {
// websocket
const initWebSocket = () => {
ws.value = new WebSocket('wss://apiasia.mbc.network/websocket')
// ws://wallet-chaindata-api.weirui0755.com/websocket
// ws.value = new WebSocket('ws://wallet-chaindata-api.weirui0755.com/websocket')
// wss://apiasia.mbc.network/websocket
// ws.value = new WebSocket('wss://apiasia.mbc.network/websocket')
ws.value.addEventListener('open', () => {
ws.value?.send(JSON.stringify({ type: 'add_transaction' }))

4
src/pages/BitcNFt/cards.vue

@ -14,9 +14,9 @@
<div @click="handleCopy">
<Icons :url="'copyAddress'" :size="32" />
</div>
<div @click="open">
<!-- <div @click="open">
<Icons :url="'qrCode'" :size="32" class="ml-[16px]" />
</div>
</div> -->
</div>
</div>
<div

77
src/pages/HomePage/index.vue

@ -1,32 +1,26 @@
<template>
<div class="bg-black desktop:pt-[122px] mobile:pt-[39px]">
<div
class="bg-home-page bg-cover bg-center bg-no-repea w-full desktop:h-[535.5px] mobile:h-[219px] absolute left-0"
/>
<div
class="bg-home-page bg-cover bg-center bg-no-repea w-full desktop:h-[535.5px] mobile:h-[219px] absolute left-0" />
<!-- <div
class="desktop:w-[1440px] desktop:h-[535.5px] desktop:pt-[70px] mobile:w-full mobile:h-[219px] mobile:pt-[25px]"
>
<search-input />
</div>
> -->
<search-input v-if="!isBg"/>
<row-search v-if="isBg"/>
<!-- </div> -->
<!-- 中间部分 -->
<div class="desktop:px-[120px] mobile:px-[20px]">
<div class="desktop:px-[120px] mobile:px-[20px] top-search" >
<!-- Network Overview -->
<div
class="bg-black-19191A pt-[34px] pb-[38px] mobile:py-[28px] rounded-[10px]"
>
<div class="bg-black-19191A pt-[34px] pb-[38px] mobile:py-[28px] rounded-[10px]">
<p
class="text-white text-[20px] font-semibold desktop:pl-[34px] mobile:pl-[20px] mobile:text-[20px] mobile:font-semibold"
>
class="text-white text-[20px] font-semibold desktop:pl-[34px] mobile:pl-[20px] mobile:text-[20px] mobile:font-semibold">
Network Overview
</p>
<div
class="flex flex-1 desktop:flex-row desktop:mt-[35px] mobile:flex-col"
>
<div
v-for="(item, index) in overview"
:key="index"
class="flex flex-1 flex-col desktop:pl-[34px] mobile:pl-[20px] mobile:mt-[28px]"
>
<div class="flex flex-1 desktop:flex-row desktop:mt-[35px] mobile:flex-col">
<div v-for="(item, index) in overview" :key="index"
class="flex flex-1 flex-col desktop:pl-[34px] mobile:pl-[20px] mobile:mt-[28px]">
<p class="text-gray-969697 text-[15px]">{{ item.label }}</p>
<p class="text-[36px] text-white font-semibold mt-[12px]">
{{ item.value || '-' }}
@ -36,20 +30,15 @@
</div>
<!-- Latest Transactions -->
<div
class="flex flex-1 flex-row justify-between items-center desktop:pt-[56px] desktop:pb-[27px] mobile:pt-[37px] mobile:pb-[17px] latest-transactions"
>
<p
class="text-white font-semibold desktop:text-[20px] mobile:text-[18px] desktop:pl-[34px]"
>
class="flex flex-1 flex-row justify-between items-center desktop:pt-[56px] desktop:pb-[27px] mobile:pt-[37px] mobile:pb-[17px] latest-transactions">
<p class="text-white font-semibold desktop:text-[20px] mobile:text-[18px] desktop:pl-[34px]">
Latest Transactions
</p>
<div
class="flex flex-row justify-center items-center bg-black-19191A rounded-full desktop:py-[8px] desktop:px-[14px] mobile:py-[6px] mobile:px-[15px] cursor-pointer"
@click="jumpRoute('/tx')"
>
<p
class="text-white font-medium desktop:text-[14px] mobile:text-[12px]"
>
@click="jumpRoute('/tx')">
<p class="text-white font-medium desktop:text-[14px] mobile:text-[12px]">
View All Txs
</p>
<el-icon color="#FFFFFF" class="ml-[8px] mobile:hidden">
@ -63,11 +52,7 @@
<hp-table :data="tableData" />
</div>
<div class="desktop:hidden">
<hp-card
v-for="(item, index) in tableData"
:key="index"
:option="item"
/>
<hp-card v-for="(item, index) in tableData" :key="index" :option="item" />
</div>
</div>
<!-- <el-skeleton :rows="3" animated /> -->
@ -83,7 +68,7 @@ import { Right } from '@element-plus/icons-vue'
import hpCard from '@src/components/base/hp_card.vue'
import HpTable from '@src/components/table/desktop/hpTable.vue'
import SearchInput from '@src/components/search.vue'
import RowSearch from '@src/components/row-search-home.vue'
import { getHomePageList } from '@src/api/BlockController'
import { getFindTokenList } from '@src/api/TokensController'
import { getFindTransactionListPage } from '@src/api/TransactionsController'
@ -91,6 +76,7 @@ import { getFindTransactionListPage } from '@src/api/TransactionsController'
import { middleDecimal, timeConvert } from '@src/utils/string'
//
let isBg = ref(false)
let tableData = ref([])
//
const overview = reactive([
@ -103,7 +89,7 @@ const overview = reactive([
value: '',
},
{
label: 'Block Time',
label: 'Block time',
value: '',
},
{
@ -153,7 +139,7 @@ const initWebSocket = () => {
try {
const res = JSON.parse(e.data)
overview[0].value = res.value[0].number
} catch (error) {}
} catch (error) { }
}
ws.value.onclose = () => {
@ -163,14 +149,29 @@ const initWebSocket = () => {
const jumpRoute = (route: string) => router.push(route)
const handleScrollx = ()=>{
if(window.pageYOffset>250){
isBg.value=true
}else{
isBg.value=false
}
// console.log((document.querySelector('.top-search') as any).getBoundingClientRect().top)
// console.log('',window.pageYOffset)
}
onMounted(() => {
initRequist()
initWebSocket()
window.addEventListener('scroll', handleScrollx, true);
})
onUnmounted(() => {
ws.value?.close()
})
</script>
<style lang="sass">

60
src/pages/TableBlock/Block/details.vue

@ -1,19 +1,12 @@
<template>
<div
class="tableBlock-tabs mobile:mt-[-51px] desktop:px-[120px] mobile:px-[20px]"
>
<div class="tableBlock-tabs mobile:mt-[-51px] desktop:px-[120px] mobile:px-[20px]">
<div class="flex items-center">
<el-icon
:color="'#FFFFFF'"
class="cursor-pointer icon-size"
@click="goBack"
><ArrowLeftBold
/></el-icon>
<el-icon :color="'#FFFFFF'" class="cursor-pointer icon-size" @click="goBack">
<ArrowLeftBold />
</el-icon>
<span
class="desktop:text-[26px] mobile:text-[18px] text-white font-medium desktop:ml-[12px] mobile:ml-[8px] cursor-pointer"
@click="goBack"
>Block Details</span
>
@click="goBack">Block Details</span>
</div>
<div class="mobile:hidden mt-[38px]">
<bk-desktop-details :data="detailsData" />
@ -22,41 +15,21 @@
<bk-mobile-details :data="detailsData" />
</div>
<!-- 下面的选项 -->
<div
class="flex flex-1 w-full bg-black-19191A mt-[56px] rounded-[10px] overflow-hidden"
>
<div class="flex flex-1 w-full bg-black-19191A mt-[56px] rounded-[10px] overflow-hidden">
<div class="details-tabs w-full">
<el-tabs v-model="active" class="w-full">
<el-tab-pane label="Transactions" name="Block">
<div
class="flex flex-1 justify-center items-center h-[210px]"
v-if="rowsData.length == 0"
>
<div class="flex flex-1 justify-center items-center h-[210px]" v-if="rowsData.length == 0">
<p class="text-white text-[14px] font-normal opacity-80">
There are no transactions for this block.
</p>
</div>
<div
class="mt-[10px] rounded-[10px] px-[34px] pb-[30px] mobile:hidden"
v-if="rowsData.length != 0"
>
<transfers-row
v-for="(item, index) in rowsData"
:key="index + item.title"
:title="item.title"
:blockNumber="item?.blockNumber"
:value1="item.value1"
:value2="item.value2"
:value3="item.value3"
:state="item.state"
/>
<upper-lower-switch
:current="`page${page}`"
:class="'mt-[20px] justify-end'"
:space-class="''"
:prev="handlePrev"
:next="handleNext"
/>
<div class="mt-[10px] rounded-[10px] px-[34px] pb-[30px] mobile:hidden" v-if="rowsData.length != 0">
<transfers-row v-for="(item, index) in rowsData" :key="index + item.title" :title="item.title"
:blockNumber="item?.blockNumber" :value1="item.value1" :value2="item.value2" :value3="item.value3"
:state="item.state" />
<upper-lower-switch :current="`page${page}`" :class="'mt-[20px] justify-end'" :space-class="''"
:prev="handlePrev" :next="handleNext" />
</div>
</el-tab-pane>
<!-- 待扩展 -->
@ -104,8 +77,13 @@ const initRequest = async (hash: string) => {
}
}
const res = await getBlock(blockp)
//
res.data = {
...res.data,
gasLimit: parseInt(res.data?.gasLimit).toString(),
gasUsed: parseInt(res.data?.gasUsed).toString(),
}
detailsData.value = res.data
console.log(detailsData.value)
currentHash.value = res?.data?.number
requestDetails(res?.data?.number)
}

2
src/pages/TableBlock/Transactions/logs.vue

@ -48,7 +48,7 @@ const logsData = ref()
watchEffect(() => {
logsData.value = {
...props.data?.[0],
data: parseInt(props.data?.[0].data).toString(),
// data: parseInt(props.data?.[0].data).toString(),
}
})
</script>

1
src/pages/TableBlock/index.scss

@ -29,6 +29,7 @@
}
.el-tabs__item {
color: #7d7d7e;
font-size: 22px;
@include mobile {
display: flex;
flex: 1;

2
src/pages/VNFT/centerContent.vue

@ -111,7 +111,7 @@ const requestTransfers = async (address: string) => {
transfersRows.value = res.data.rows.map((item: any) => {
return {
title: `Block #${item.blockNumber}`,
value1: item?.blockHash,
value1: item?.transactionHash,
value2: item?.from,
value3: item?.to,
state: item?.status === '0x1' ? 'Success' : 'Faild',

1
tsconfig.json

@ -1,5 +1,6 @@
{
"compilerOptions": {
"noImplicitAny": false,
"target": "ESNext",
"useDefineForClassFields": true,
"module": "ESNext",

420
yarn.lock

@ -34,6 +34,46 @@
dependencies:
"@floating-ui/core" "^0.7.3"
"@jridgewell/gen-mapping@^0.3.0":
"integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A=="
"resolved" "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
"version" "0.3.2"
dependencies:
"@jridgewell/set-array" "^1.0.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/resolve-uri@^3.0.3":
"integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
"resolved" "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
"version" "3.1.0"
"@jridgewell/set-array@^1.0.1":
"integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
"resolved" "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz"
"version" "1.1.2"
"@jridgewell/source-map@^0.3.2":
"integrity" "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw=="
"resolved" "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz"
"version" "0.3.2"
dependencies:
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/sourcemap-codec@^1.4.10":
"integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
"resolved" "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
"version" "1.4.14"
"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9":
"integrity" "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g=="
"resolved" "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz"
"version" "0.3.15"
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@nodelib/[email protected]":
"integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="
"resolved" "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
@ -68,7 +108,28 @@
"estree-walker" "^2.0.1"
"picomatch" "^2.2.2"
"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8":
"@types/eslint-scope@^3.7.3":
"integrity" "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA=="
"resolved" "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz"
"version" "3.7.4"
dependencies:
"@types/eslint" "*"
"@types/estree" "*"
"@types/eslint@*":
"integrity" "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g=="
"resolved" "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.6.tgz"
"version" "8.4.6"
dependencies:
"@types/estree" "*"
"@types/json-schema" "*"
"@types/estree@*", "@types/estree@^0.0.51":
"integrity" "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ=="
"resolved" "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz"
"version" "0.0.51"
"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8":
"integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
"resolved" "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz"
"version" "7.0.11"
@ -274,6 +335,142 @@
dependencies:
"vue-demi" "*"
"@webassemblyjs/[email protected]":
"integrity" "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/helper-numbers" "1.11.1"
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz"
"version" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz"
"version" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz"
"version" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/floating-point-hex-parser" "1.11.1"
"@webassemblyjs/helper-api-error" "1.11.1"
"@xtuc/long" "4.2.2"
"@webassemblyjs/[email protected]":
"integrity" "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz"
"version" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/ast" "1.11.1"
"@webassemblyjs/helper-buffer" "1.11.1"
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
"@webassemblyjs/wasm-gen" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@xtuc/ieee754" "^1.2.0"
"@webassemblyjs/[email protected]":
"integrity" "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@xtuc/long" "4.2.2"
"@webassemblyjs/[email protected]":
"integrity" "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz"
"version" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/ast" "1.11.1"
"@webassemblyjs/helper-buffer" "1.11.1"
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
"@webassemblyjs/helper-wasm-section" "1.11.1"
"@webassemblyjs/wasm-gen" "1.11.1"
"@webassemblyjs/wasm-opt" "1.11.1"
"@webassemblyjs/wasm-parser" "1.11.1"
"@webassemblyjs/wast-printer" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/ast" "1.11.1"
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
"@webassemblyjs/ieee754" "1.11.1"
"@webassemblyjs/leb128" "1.11.1"
"@webassemblyjs/utf8" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/ast" "1.11.1"
"@webassemblyjs/helper-buffer" "1.11.1"
"@webassemblyjs/wasm-gen" "1.11.1"
"@webassemblyjs/wasm-parser" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/ast" "1.11.1"
"@webassemblyjs/helper-api-error" "1.11.1"
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
"@webassemblyjs/ieee754" "1.11.1"
"@webassemblyjs/leb128" "1.11.1"
"@webassemblyjs/utf8" "1.11.1"
"@webassemblyjs/[email protected]":
"integrity" "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg=="
"resolved" "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz"
"version" "1.11.1"
dependencies:
"@webassemblyjs/ast" "1.11.1"
"@xtuc/long" "4.2.2"
"@xtuc/ieee754@^1.2.0":
"integrity" "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
"resolved" "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz"
"version" "1.2.0"
"@xtuc/[email protected]":
"integrity" "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
"resolved" "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz"
"version" "4.2.2"
"acorn-import-assertions@^1.7.6":
"integrity" "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw=="
"resolved" "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz"
"version" "1.8.0"
"acorn-node@^1.8.2":
"integrity" "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A=="
"resolved" "https://registry.npmmirror.com/acorn-node/-/acorn-node-1.8.2.tgz"
@ -293,7 +490,7 @@
"resolved" "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz"
"version" "7.4.1"
"acorn@^8.7.1", "acorn@^8.8.0":
"acorn@^8", "acorn@^8.5.0", "acorn@^8.7.1", "acorn@^8.8.0":
"integrity" "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
"resolved" "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz"
"version" "8.8.0"
@ -405,7 +602,7 @@
dependencies:
"fill-range" "^7.0.1"
"browserslist@^4.21.3", "browserslist@>= 4.21.0":
"browserslist@^4.14.5", "browserslist@^4.21.3", "browserslist@>= 4.21.0":
"integrity" "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ=="
"resolved" "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.3.tgz"
"version" "4.21.3"
@ -415,6 +612,11 @@
"node-releases" "^2.0.6"
"update-browserslist-db" "^1.0.5"
"buffer-from@^1.0.0":
"integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
"resolved" "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz"
"version" "1.1.2"
"camelcase-css@^2.0.1":
"integrity" "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
"resolved" "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz"
@ -445,6 +647,11 @@
optionalDependencies:
"fsevents" "~2.3.2"
"chrome-trace-event@^1.0.2":
"integrity" "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg=="
"resolved" "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz"
"version" "1.0.3"
"clipboard@^2.0.11", "clipboard@^2.0.6":
"integrity" "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw=="
"resolved" "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz"
@ -482,6 +689,11 @@
dependencies:
"delayed-stream" "~1.0.0"
"commander@^2.20.0":
"integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
"resolved" "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz"
"version" "2.20.3"
"[email protected]":
"integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"resolved" "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz"
@ -599,6 +811,19 @@
"resolved" "https://registry.npmmirror.com/encode-utf8/-/encode-utf8-1.0.3.tgz"
"version" "1.0.3"
"enhanced-resolve@^5.10.0":
"integrity" "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ=="
"resolved" "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz"
"version" "5.10.0"
dependencies:
"graceful-fs" "^4.2.4"
"tapable" "^2.2.0"
"es-module-lexer@^0.9.0":
"integrity" "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
"resolved" "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz"
"version" "0.9.3"
"[email protected]":
"integrity" "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ=="
"resolved" "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz"
@ -646,11 +871,41 @@
"resolved" "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz"
"version" "5.0.0"
"[email protected]":
"integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="
"resolved" "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz"
"version" "5.1.1"
dependencies:
"esrecurse" "^4.3.0"
"estraverse" "^4.1.1"
"esrecurse@^4.3.0":
"integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
"resolved" "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz"
"version" "4.3.0"
dependencies:
"estraverse" "^5.2.0"
"estraverse@^4.1.1":
"integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
"resolved" "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz"
"version" "4.3.0"
"estraverse@^5.2.0":
"integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
"resolved" "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz"
"version" "5.3.0"
"estree-walker@^2.0.1", "estree-walker@^2.0.2":
"integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
"resolved" "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz"
"version" "2.0.2"
"events@^3.2.0":
"integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
"resolved" "https://registry.npmmirror.com/events/-/events-3.3.0.tgz"
"version" "3.3.0"
"fast-deep-equal@^3.1.1":
"integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
"resolved" "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
@ -742,6 +997,11 @@
dependencies:
"is-glob" "^4.0.3"
"glob-to-regexp@^0.4.1":
"integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
"resolved" "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
"version" "0.4.1"
"glob@^7.2.0":
"integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
"resolved" "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz"
@ -761,6 +1021,16 @@
dependencies:
"delegate" "^3.1.2"
"graceful-fs@^4.1.2", "graceful-fs@^4.2.4", "graceful-fs@^4.2.9":
"integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
"resolved" "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz"
"version" "4.2.10"
"has-flag@^4.0.0":
"integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
"resolved" "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz"
"version" "4.0.0"
"has@^1.0.3":
"integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
"resolved" "https://registry.npmmirror.com/has/-/has-1.0.3.tgz"
@ -822,6 +1092,20 @@
"resolved" "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz"
"version" "7.0.0"
"jest-worker@^27.4.5":
"integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="
"resolved" "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz"
"version" "27.5.1"
dependencies:
"@types/node" "*"
"merge-stream" "^2.0.0"
"supports-color" "^8.0.0"
"json-parse-even-better-errors@^2.3.1":
"integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
"resolved" "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
"version" "2.3.1"
"json-schema-traverse@^0.4.1":
"integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
"resolved" "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
@ -847,6 +1131,11 @@
"resolved" "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz"
"version" "2.0.6"
"loader-runner@^4.2.0":
"integrity" "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="
"resolved" "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz"
"version" "4.3.0"
"loader-utils@^2.0.0":
"integrity" "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A=="
"resolved" "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz"
@ -909,6 +1198,11 @@
"resolved" "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz"
"version" "6.0.0"
"merge-stream@^2.0.0":
"integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
"resolved" "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz"
"version" "2.0.0"
"merge2@^1.3.0":
"integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
"resolved" "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz"
@ -927,7 +1221,7 @@
"resolved" "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
"version" "1.52.0"
"mime-types@^2.1.12":
"mime-types@^2.1.12", "mime-types@^2.1.27":
"integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
"resolved" "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
"version" "2.1.35"
@ -1156,6 +1450,13 @@
"resolved" "https://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz"
"version" "5.1.1"
"randombytes@^2.1.0":
"integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="
"resolved" "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz"
"version" "2.1.0"
dependencies:
"safe-buffer" "^5.1.0"
"read-cache@^1.0.0":
"integrity" "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="
"resolved" "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz"
@ -1208,6 +1509,11 @@
dependencies:
"queue-microtask" "^1.2.2"
"safe-buffer@^5.1.0":
"integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
"resolved" "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
"version" "5.2.1"
"sass-loader@^10.3.1":
"integrity" "sha512-y2aBdtYkbqorVavkC3fcJIUDGIegzDWPn3/LAFhsf3G+MzPKTJx37sROf5pXtUeggSVbNbmfj8TgRaSLMelXRA=="
"resolved" "https://registry.npmmirror.com/sass-loader/-/sass-loader-10.3.1.tgz"
@ -1246,6 +1552,24 @@
"ajv" "^6.12.5"
"ajv-keywords" "^3.5.2"
"schema-utils@^3.1.0":
"integrity" "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw=="
"resolved" "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz"
"version" "3.1.1"
dependencies:
"@types/json-schema" "^7.0.8"
"ajv" "^6.12.5"
"ajv-keywords" "^3.5.2"
"schema-utils@^3.1.1":
"integrity" "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw=="
"resolved" "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz"
"version" "3.1.1"
dependencies:
"@types/json-schema" "^7.0.8"
"ajv" "^6.12.5"
"ajv-keywords" "^3.5.2"
"scule@^0.3.2":
"integrity" "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g=="
"resolved" "https://registry.npmmirror.com/scule/-/scule-0.3.2.tgz"
@ -1263,6 +1587,13 @@
dependencies:
"lru-cache" "^6.0.0"
"serialize-javascript@^6.0.0":
"integrity" "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag=="
"resolved" "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz"
"version" "6.0.0"
dependencies:
"randombytes" "^2.1.0"
"set-blocking@^2.0.0":
"integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
"resolved" "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz"
@ -1273,7 +1604,15 @@
"resolved" "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz"
"version" "1.0.2"
"source-map@^0.6.1":
"source-map-support@~0.5.20":
"integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="
"resolved" "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz"
"version" "0.5.21"
dependencies:
"buffer-from" "^1.0.0"
"source-map" "^0.6.0"
"source-map@^0.6.0", "source-map@^0.6.1":
"integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
"resolved" "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz"
"version" "0.6.1"
@ -1316,6 +1655,13 @@
"schema-utils" "^2.7.0"
"tslib" "^2.3.1"
"supports-color@^8.0.0":
"integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="
"resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz"
"version" "8.1.1"
dependencies:
"has-flag" "^4.0.0"
"supports-preserve-symlinks-flag@^1.0.0":
"integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
"resolved" "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
@ -1349,6 +1695,32 @@
"quick-lru" "^5.1.1"
"resolve" "^1.22.1"
"tapable@^2.1.1", "tapable@^2.2.0":
"integrity" "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
"resolved" "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz"
"version" "2.2.1"
"terser-webpack-plugin@^5.1.3":
"integrity" "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ=="
"resolved" "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz"
"version" "5.3.6"
dependencies:
"@jridgewell/trace-mapping" "^0.3.14"
"jest-worker" "^27.4.5"
"schema-utils" "^3.1.1"
"serialize-javascript" "^6.0.0"
"terser" "^5.14.1"
"terser@^5.14.1", "terser@^5.4.0":
"integrity" "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA=="
"resolved" "https://registry.npmmirror.com/terser/-/terser-5.15.0.tgz"
"version" "5.15.0"
dependencies:
"@jridgewell/source-map" "^0.3.2"
"acorn" "^8.5.0"
"commander" "^2.20.0"
"source-map-support" "~0.5.20"
"tiny-emitter@^2.0.0":
"integrity" "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
"resolved" "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz"
@ -1505,6 +1877,14 @@
"@vue/server-renderer" "3.2.37"
"@vue/shared" "3.2.37"
"watchpack@^2.4.0":
"integrity" "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg=="
"resolved" "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz"
"version" "2.4.0"
dependencies:
"glob-to-regexp" "^0.4.1"
"graceful-fs" "^4.1.2"
"webpack-sources@^3.2.3":
"integrity" "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
"resolved" "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz"
@ -1515,6 +1895,36 @@
"resolved" "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz"
"version" "0.4.4"
"webpack@^3.0.0 || ^4.0.0 || ^5.0.0", "webpack@^4.36.0 || ^5.0.0", "webpack@^5.1.0", "webpack@4 || 5":
"integrity" "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA=="
"resolved" "https://registry.npmmirror.com/webpack/-/webpack-5.74.0.tgz"
"version" "5.74.0"
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^0.0.51"
"@webassemblyjs/ast" "1.11.1"
"@webassemblyjs/wasm-edit" "1.11.1"
"@webassemblyjs/wasm-parser" "1.11.1"
"acorn" "^8.7.1"
"acorn-import-assertions" "^1.7.6"
"browserslist" "^4.14.5"
"chrome-trace-event" "^1.0.2"
"enhanced-resolve" "^5.10.0"
"es-module-lexer" "^0.9.0"
"eslint-scope" "5.1.1"
"events" "^3.2.0"
"glob-to-regexp" "^0.4.1"
"graceful-fs" "^4.2.9"
"json-parse-even-better-errors" "^2.3.1"
"loader-runner" "^4.2.0"
"mime-types" "^2.1.27"
"neo-async" "^2.6.2"
"schema-utils" "^3.1.0"
"tapable" "^2.1.1"
"terser-webpack-plugin" "^5.1.3"
"watchpack" "^2.4.0"
"webpack-sources" "^3.2.3"
"which-module@^2.0.0":
"integrity" "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q=="
"resolved" "https://registry.npmmirror.com/which-module/-/which-module-2.0.0.tgz"

BIN
正式.zip

Binary file not shown.
Loading…
Cancel
Save