refactor: save
This commit is contained in:
parent
a08a4c85fe
commit
adb15c3d92
@ -33,7 +33,8 @@
|
|||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"vue": "3.4.21",
|
"vue": "3.4.21",
|
||||||
"vue-router": "4.3.0",
|
"vue-router": "4.3.0",
|
||||||
"vue-switches": "2.0.1"
|
"vue-switches": "2.0.1",
|
||||||
|
"libarchive-wasm": "^1.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^19.2.1",
|
"@commitlint/cli": "^19.2.1",
|
||||||
|
|||||||
298
pnpm-lock.yaml
298
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
BIN
public/data/goods.7z
Normal file
BIN
public/data/goods.7z
Normal file
Binary file not shown.
BIN
public/data/posts.7z
Normal file
BIN
public/data/posts.7z
Normal file
Binary file not shown.
BIN
public/libarchive.wasm
Normal file
BIN
public/libarchive.wasm
Normal file
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
import resource from '../assets/data/resource.js'
|
import resource from '../assets/data/resource.js'
|
||||||
import posts6 from '@/assets/data/posts6.json'
|
import posts6 from '@/assets/data/posts6.json'
|
||||||
import { cloneDeep, random } from '@/utils'
|
import { _fetch, cloneDeep, random } from '@/utils'
|
||||||
import { BASE_URL, FILE_URL } from '@/config'
|
import { BASE_URL, FILE_URL } from '@/config'
|
||||||
import { useBaseStore } from '@/store/pinia'
|
import { useBaseStore } from '@/store/pinia'
|
||||||
import axiosInstance from '@/utils/request'
|
import axiosInstance from '@/utils/request'
|
||||||
@ -278,7 +278,7 @@ export async function startMock() {
|
|||||||
const page = getPage2(config.params)
|
const page = getPage2(config.params)
|
||||||
|
|
||||||
if (!allRecommendPosts.length) {
|
if (!allRecommendPosts.length) {
|
||||||
const r = await fetch(BASE_URL + '/data/posts.json')
|
const r = await _fetch(BASE_URL + '/data/posts.7z')
|
||||||
allRecommendPosts = await r.json()
|
allRecommendPosts = await r.json()
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
@ -298,7 +298,7 @@ export async function startMock() {
|
|||||||
mock.onGet(/shop\/recommended/).reply(async (config) => {
|
mock.onGet(/shop\/recommended/).reply(async (config) => {
|
||||||
const page = getPage2(config.params)
|
const page = getPage2(config.params)
|
||||||
|
|
||||||
const r2 = await fetch(BASE_URL + '/data/goods.json')
|
const r2 = await _fetch(BASE_URL + '/data/goods.7z')
|
||||||
const v = await r2.json()
|
const v = await r2.json()
|
||||||
return [
|
return [
|
||||||
200,
|
200,
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import Config, { IMG_URL } from '../config'
|
|||||||
import NoticeDialog from '../components/dialog/NoticeDialog'
|
import NoticeDialog from '../components/dialog/NoticeDialog'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import bus, { EVENT_KEY } from './bus'
|
import bus, { EVENT_KEY } from './bus'
|
||||||
|
import { ArchiveReader, libarchiveWasm } from 'libarchive-wasm'
|
||||||
|
|
||||||
const Utils = {
|
const Utils = {
|
||||||
$showLoading() {
|
$showLoading() {
|
||||||
@ -679,3 +680,31 @@ export function _notice(val) {
|
|||||||
export function _no() {
|
export function _no() {
|
||||||
_notice('未实现')
|
_notice('未实现')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function _fetch(url) {
|
||||||
|
// eslint-disable-next-line no-async-promise-executor
|
||||||
|
return new Promise(async (resolve) => {
|
||||||
|
let r = await fetch(url)
|
||||||
|
if (url.includes('.7z')) {
|
||||||
|
console.time()
|
||||||
|
const data = await r.arrayBuffer()
|
||||||
|
const mod = await libarchiveWasm()
|
||||||
|
const reader = new ArchiveReader(mod, new Int8Array(data))
|
||||||
|
for (const entry of reader.entries()) {
|
||||||
|
if (entry.getPathname().endsWith('.json')) {
|
||||||
|
let data = new TextDecoder().decode(entry.readData())
|
||||||
|
resolve({
|
||||||
|
json() {
|
||||||
|
return Promise.resolve(JSON.parse(data))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.timeEnd()
|
||||||
|
}
|
||||||
|
reader.free()
|
||||||
|
} else {
|
||||||
|
let v = await r.json()
|
||||||
|
resolve(v)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -166,7 +166,7 @@ export default defineConfig({
|
|||||||
assetsInlineLimit: 2048
|
assetsInlineLimit: 2048
|
||||||
},
|
},
|
||||||
esbuild: {
|
esbuild: {
|
||||||
drop: ['console', 'debugger']
|
// drop: ['console', 'debugger']
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
port: 3000,
|
port: 3000,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user