feat: 商品管理

This commit is contained in:
zc 2025-08-23 18:19:53 +08:00
parent da83f3b2bb
commit 62159aac25
14 changed files with 534 additions and 35 deletions

Binary file not shown.

View File

@ -22,7 +22,7 @@
"trans-config": "^0.0.4",
"vue": "^3.4.21",
"vue-router": "^4.3.0",
"vue3-admin-ui": "^0.0.18"
"vue3-admin-ui": "^0.0.19"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.8.0",
@ -48,6 +48,7 @@
"sass": "^1.77.2",
"tailwindcss": "^3.4.4",
"typescript": "~5.4.0",
"unplugin-auto-import": "^20.0.0",
"vite": "^5.2.8",
"vite-plugin-svg-icons": "^2.0.1",
"vue-tsc": "^2.0.11",

9
src/api/commodity.ts Normal file
View File

@ -0,0 +1,9 @@
const login = {
/**
*
*/
getCommodityList: ['/getCommodityList'], // 获取商品列表
delCommodity: ['/delCommodity'] // 删除商品
}
export default login

View File

@ -1,27 +1,29 @@
import request from '@/utils/request'
import login from './login'
import commodity from './commodity'
const totalApiConfig = {
login
login,
commodity
}
Object.values(totalApiConfig).forEach(apiConfig => {
Object.values(apiConfig).forEach(arr => {
Object.values(totalApiConfig).forEach((apiConfig) => {
Object.values(apiConfig).forEach((arr) => {
const [url, other = {}] = arr as [string, Recordable<any>]
Object.setPrototypeOf(arr, {
post: (data: any = {}) => {
let newUrl = url
if (other.id) {
newUrl += url.endsWith('/') ? data.id : `/${data.id}`
delete data.id
newUrl += url.endsWith('/') ? data.id : `/${data.id}`
delete data.id
}
return request.post({ url: newUrl, data, ...other })
},
get: (data: any = {}) => {
let newUrl = url
if (other.id) {
newUrl += url.endsWith('/') ? data.id : `/${data.id}`
delete data.id
newUrl += url.endsWith('/') ? data.id : `/${data.id}`
delete data.id
}
return request.get({ url: newUrl, params: data, ...other })
}
@ -30,3 +32,6 @@ Object.values(totalApiConfig).forEach(apiConfig => {
})
export default totalApiConfig
export const api = totalApiConfig
export const abc = 123

82
src/auto-import.d.ts vendored Normal file
View File

@ -0,0 +1,82 @@
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
// biome-ignore lint: disable
export {}
declare global {
const EffectScope: typeof import('vue')['EffectScope']
const api: typeof import('../../../../../src/api/index')['api']
const computed: typeof import('vue')['computed']
const createApp: typeof import('vue')['createApp']
const customRef: typeof import('vue')['customRef']
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
const defineComponent: typeof import('vue')['defineComponent']
const effectScope: typeof import('vue')['effectScope']
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
const getCurrentScope: typeof import('vue')['getCurrentScope']
const getCurrentWatcher: typeof import('vue')['getCurrentWatcher']
const h: typeof import('vue')['h']
const handleInit: typeof import('../../../../../src/utils/page/index')['handleInit']
const handleMessageBox: typeof import('../../../../../src/utils/page/index')['handleMessageBox']
const inject: typeof import('vue')['inject']
const isProxy: typeof import('vue')['isProxy']
const isReactive: typeof import('vue')['isReactive']
const isReadonly: typeof import('vue')['isReadonly']
const isRef: typeof import('vue')['isRef']
const isShallow: typeof import('vue')['isShallow']
const markRaw: typeof import('vue')['markRaw']
const nextTick: typeof import('vue')['nextTick']
const onActivated: typeof import('vue')['onActivated']
const onBeforeMount: typeof import('vue')['onBeforeMount']
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
const onDeactivated: typeof import('vue')['onDeactivated']
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
const onMounted: typeof import('vue')['onMounted']
const onRenderTracked: typeof import('vue')['onRenderTracked']
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
const onScopeDispose: typeof import('vue')['onScopeDispose']
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
const onUnmounted: typeof import('vue')['onUnmounted']
const onUpdated: typeof import('vue')['onUpdated']
const onWatcherCleanup: typeof import('vue')['onWatcherCleanup']
const pageConfig: typeof import('../../../../../src/utils/page/config')['pageConfig']
const provide: typeof import('vue')['provide']
const reactive: typeof import('vue')['reactive']
const readonly: typeof import('vue')['readonly']
const ref: typeof import('vue')['ref']
const resolveComponent: typeof import('vue')['resolveComponent']
const shallowReactive: typeof import('vue')['shallowReactive']
const shallowReadonly: typeof import('vue')['shallowReadonly']
const shallowRef: typeof import('vue')['shallowRef']
const toRaw: typeof import('vue')['toRaw']
const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']
const toValue: typeof import('vue')['toValue']
const triggerRef: typeof import('vue')['triggerRef']
const unref: typeof import('vue')['unref']
const useAttrs: typeof import('vue')['useAttrs']
const useCssModule: typeof import('vue')['useCssModule']
const useCssVars: typeof import('vue')['useCssVars']
const useId: typeof import('vue')['useId']
const useLink: typeof import('vue-router')['useLink']
const useModel: typeof import('vue')['useModel']
const useRoute: typeof import('vue-router')['useRoute']
const useRouter: typeof import('vue-router')['useRouter']
const useSlots: typeof import('vue')['useSlots']
const useTemplateRef: typeof import('vue')['useTemplateRef']
const watch: typeof import('vue')['watch']
const watchEffect: typeof import('vue')['watchEffect']
const watchPostEffect: typeof import('vue')['watchPostEffect']
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
}
// for type re-export
declare global {
// @ts-ignore
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, ShallowRef, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue')
}

View File

@ -1,6 +0,0 @@
import { onInit, messageBox } from './page/index'
import atrans from './page/config'
export const pageConfig = atrans
export const handleInit = onInit
export const handleMessageBox = messageBox

View File

@ -120,3 +120,5 @@ type ExtendDialogExtraFields = {
}
export default atransFn as unknown as (config: AtransConfig) => AtransResult
export const pageConfig = atransFn

View File

@ -51,19 +51,22 @@ export const getTableData = (
pageSize: table.$pages.pageSize
})
}
return table.$api(params).then((res) => {
const result = res as {
data: {}[]
code: string
resultMsg: string
totalRows: number
}
table.$loading = false
table.$data = result.data
table.$pages.total = result.totalRows
}).catch(() => {
table.$loading = false
})
return table
.$api(params)
.then((res) => {
const result = res as {
data: {}[]
code: string
resultMsg: string
totalRows: number
}
table.$loading = false
table.$data = result.data
table.$pages.total = result.totalRows
})
.catch(() => {
table.$loading = false
})
}
/**
@ -110,7 +113,7 @@ export const tableIndex = (tableConfig: TableModuleFields, index: number) => {
* @param btns
* @returns toRefs后的配置
*/
export const onInit = (
export const handleInit = (
config: Ref<AtransResult>,
tableApi?: (query: any) => Promise<object>,
btns?: ((val: any) => void)[]
@ -129,7 +132,7 @@ export const onInit = (
* fail: 失败回调
* @returns
*/
export const messageBox = ({
export const handleMessageBox = ({
msg,
success,
data,

View File

@ -0,0 +1,21 @@
const configData = ref()
export const initConfig = () => {
configData.value = pageConfig({
search: {
commodityTitle: { label: '标题', clearable: true },
commodityCategory: { label: '类目', option: [], clearable: true }
},
table: {
id: { label: '产品ID' },
commodityTitle: { label: '标题' },
sales: { label: '销量' },
price: { label: '价格' },
btn: {
types: ['primary', 'info', 'warning', 'success', 'danger'],
names: ['编辑', '复制', '加入首页', '上下架', '删除'],
width: 230
}
}
})
return configData
}

View File

@ -0,0 +1,63 @@
<template>
<div>
<search-module :search="search" :table="table">
<template #btn>
<el-button @click="onAddOrEdit('add', null)" type="success">新增</el-button>
</template>
</search-module>
<table-module :table="table">
<template #headerBtn>
<el-radio-group v-model="commodityType" @change="onChangeCommodityType">
<el-radio-button
v-for="item in commodityTypeOptions"
:key="item.value"
:value="item.value"
>{{ item.label }}</el-radio-button
>
</el-radio-group>
</template>
</table-module>
</div>
</template>
<script lang="ts" setup>
import { initConfig } from './config'
import { useCommodityType } from './use-method'
/** 新增&编辑 */
const onAddOrEdit = (type: string, row: any) => {}
/** 复制 */
const onCopy = (row: any) => {}
//
const onAddHome = (row: any) => {}
//
const onDelete = (row: any) => {
handleMessageBox({
msg: `是否确认删除吗?`,
success: api.commodity.delCommodity.post!,
data: { id: row.id }
}).then(() => {
table.value.$onGetData(table.value)
})
}
/** 初始化页面 */
const ConfigData = initConfig()
const { search, table } = handleInit(ConfigData, api.commodity.getCommodityList.post, [
onAddOrEdit.bind(null, 'edit'),
onCopy,
onAddHome,
onDelete
])
const { commodityType, onChangeCommodityType, commodityTypeOptions } = useCommodityType(
search,
table
)
onChangeCommodityType(commodityType.value)
/** 页面缓存 */
defineOptions({ name: 'supplier-config' })
</script>

View File

@ -0,0 +1,34 @@
export const useCommodityType = (search: any, table: any) => {
let beforeValue = 'online'
const commodityType = ref('online')
const commodityTypeOptions = [
{ label: '在线商品', value: 'online' },
{ label: '下架商品', value: 'quit' },
{ label: '草稿', value: 'edit' },
{ label: '已删商品', value: 'delete' }
]
const cacheTableData = { online: [], quit: [], edit: [], delete: [] } // 缓存表单数据
const cacheTablePage = { online: {}, quit: {}, edit: {}, delete: {} } // 缓存表单页面数据
const onChangeCommodityType = (type: 'online' | 'quit' | 'edit' | 'delete') => {
cacheTableData[beforeValue as typeof type] = toRaw(table.value.$data)
cacheTablePage[beforeValue as typeof type] = toRaw(table.value.$pages)
beforeValue = type
search.value.$default = { type }
handleSetTableConfig(table, type)
if (cacheTableData[type].length) {
table.value.$data = cacheTableData[type]
table.value.$pages = cacheTablePage[type]
} else {
table.value.$onGetData(table.value, 1, search)
}
}
const handleSetTableConfig = (table: any, type: 'online' | 'quit' | 'edit' | 'delete') => {
const btnOnlineName = { online: '下架', quit: '上架', edit: '', delete: '' } // 上下架按钮名称
const btnHomeName = { online: '加入首页', quit: '', edit: '', delete: '' } // 上下架按钮名称
const btnWidth = { online: '230', quit: '180', edit: '160', delete: '160' } // 上下架按钮名称
table.value.btn.$attr.names[2] = btnHomeName[type]
table.value.btn.$attr.names[3] = btnOnlineName[type]
table.value.btn.$attr.width = btnWidth[type]
}
return { commodityType, onChangeCommodityType, commodityTypeOptions }
}

3
types/global.d.ts vendored
View File

@ -1,6 +1,9 @@
import type { ComponentPublicInstance, FunctionalComponent } from 'vue'
import totalApiConfig from '@/api'
declare global {
type api = typeof totalApiConfig
type abc = 123
type Recordable<T = any> = Record<string, T>
interface Array {

View File

@ -3,6 +3,7 @@ import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import AutoImport from 'unplugin-auto-import/vite'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'
@ -12,7 +13,7 @@ export default defineConfig({
server: {
proxy: {
'/portal': {
target: 'https://tsys.dongchengdai.com',
target: 'http://127.0.0.1:4523/m1/6997834-6716269-default',
changeOrigin: true
}
},
@ -27,6 +28,16 @@ export default defineConfig({
plugins: [
vue(),
vueJsx(),
AutoImport({
imports: [
'vue',
'vue-router',
{ from: '/src/utils/page/config', imports: ['pageConfig'] },
{ from: '/src/utils/page/index', imports: ['handleInit', 'handleMessageBox'] },
{ from: '/src/api/index.ts', imports: ['api'] }
],
dts: 'src/auto-import.d.ts'
}),
createSvgIconsPlugin({
// 指定需要缓存的图标文件夹
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],

281
yarn.lock
View File

@ -677,6 +677,16 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/remapping@npm:^2.3.5":
version: 2.3.5
resolution: "@jridgewell/remapping@npm:2.3.5"
dependencies:
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.24"
checksum: 10c0/3de494219ffeb2c5c38711d0d7bb128097edf91893090a2dbc8ee0b55d092bb7347b1fd0f478486c5eab010e855c73927b1666f2107516d472d24a73017d1194
languageName: node
linkType: hard
"@jridgewell/resolve-uri@npm:^3.1.0":
version: 3.1.2
resolution: "@jridgewell/resolve-uri@npm:3.1.2"
@ -698,6 +708,13 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/sourcemap-codec@npm:^1.5.5":
version: 1.5.5
resolution: "@jridgewell/sourcemap-codec@npm:1.5.5"
checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0
languageName: node
linkType: hard
"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
version: 0.3.25
resolution: "@jridgewell/trace-mapping@npm:0.3.25"
@ -932,6 +949,13 @@ __metadata:
languageName: node
linkType: hard
"@types/estree@npm:^1.0.0":
version: 1.0.8
resolution: "@types/estree@npm:1.0.8"
checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5
languageName: node
linkType: hard
"@types/event-emitter@npm:^0.3.3":
version: 0.3.5
resolution: "@types/event-emitter@npm:0.3.5"
@ -1637,6 +1661,15 @@ __metadata:
languageName: node
linkType: hard
"acorn@npm:^8.15.0":
version: 8.15.0
resolution: "acorn@npm:8.15.0"
bin:
acorn: bin/acorn
checksum: 10c0/dec73ff59b7d6628a01eebaece7f2bdb8bb62b9b5926dcad0f8931f2b8b79c2be21f6c68ac095592adb5adb15831a3635d9343e6a91d028bbe85d564875ec3ec
languageName: node
linkType: hard
"acorn@npm:^8.9.0":
version: 8.12.0
resolution: "acorn@npm:8.12.0"
@ -2257,6 +2290,20 @@ __metadata:
languageName: node
linkType: hard
"confbox@npm:^0.1.8":
version: 0.1.8
resolution: "confbox@npm:0.1.8"
checksum: 10c0/fc2c68d97cb54d885b10b63e45bd8da83a8a71459d3ecf1825143dd4c7f9f1b696b3283e07d9d12a144c1301c2ebc7842380bdf0014e55acc4ae1c9550102418
languageName: node
linkType: hard
"confbox@npm:^0.2.2":
version: 0.2.2
resolution: "confbox@npm:0.2.2"
checksum: 10c0/7c246588d533d31e8cdf66cb4701dff6de60f9be77ab54c0d0338e7988750ac56863cc0aca1b3f2046f45ff223a765d3e5d4977a7674485afcd37b6edf3fd129
languageName: node
linkType: hard
"convert-source-map@npm:^2.0.0":
version: 2.0.0
resolution: "convert-source-map@npm:2.0.0"
@ -2445,12 +2492,13 @@ __metadata:
tailwindcss: "npm:^3.4.4"
trans-config: "npm:^0.0.4"
typescript: "npm:~5.4.0"
unplugin-auto-import: "npm:^20.0.0"
vite: "npm:^5.2.8"
vite-plugin-svg-icons: "npm:^2.0.1"
vue: "npm:^3.4.21"
vue-router: "npm:^4.3.0"
vue-tsc: "npm:^2.0.11"
vue3-admin-ui: "npm:^0.0.18"
vue3-admin-ui: "npm:^0.0.19"
watermark-plus: "npm:^1.6.1"
languageName: unknown
linkType: soft
@ -3015,6 +3063,13 @@ __metadata:
languageName: node
linkType: hard
"escape-string-regexp@npm:^5.0.0":
version: 5.0.0
resolution: "escape-string-regexp@npm:5.0.0"
checksum: 10c0/6366f474c6f37a802800a435232395e04e9885919873e382b157ab7e8f0feb8fed71497f84a6f6a81a49aab41815522f5839112bd38026d203aea0c91622df95
languageName: node
linkType: hard
"eslint-config-prettier@npm:^9.0.0":
version: 9.1.0
resolution: "eslint-config-prettier@npm:9.1.0"
@ -3184,6 +3239,15 @@ __metadata:
languageName: node
linkType: hard
"estree-walker@npm:^3.0.3":
version: 3.0.3
resolution: "estree-walker@npm:3.0.3"
dependencies:
"@types/estree": "npm:^1.0.0"
checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d
languageName: node
linkType: hard
"esutils@npm:^2.0.2":
version: 2.0.3
resolution: "esutils@npm:2.0.3"
@ -3230,6 +3294,13 @@ __metadata:
languageName: node
linkType: hard
"exsolve@npm:^1.0.7":
version: 1.0.7
resolution: "exsolve@npm:1.0.7"
checksum: 10c0/4479369d0bd84bb7e0b4f5d9bc18d26a89b6dbbbccd73f9d383d14892ef78ddbe159e01781055342f83dc00ebe90044036daf17ddf55cc21e2cac6609aa15631
languageName: node
linkType: hard
"ext@npm:^1.7.0":
version: 1.7.0
resolution: "ext@npm:1.7.0"
@ -3324,6 +3395,18 @@ __metadata:
languageName: node
linkType: hard
"fdir@npm:^6.4.4":
version: 6.5.0
resolution: "fdir@npm:6.5.0"
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
picomatch:
optional: true
checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
languageName: node
linkType: hard
"file-entry-cache@npm:^6.0.1":
version: 6.0.1
resolution: "file-entry-cache@npm:6.0.1"
@ -4347,6 +4430,13 @@ __metadata:
languageName: node
linkType: hard
"js-tokens@npm:^9.0.1":
version: 9.0.1
resolution: "js-tokens@npm:9.0.1"
checksum: 10c0/68dcab8f233dde211a6b5fd98079783cbcd04b53617c1250e3553ee16ab3e6134f5e65478e41d82f6d351a052a63d71024553933808570f04dbf828d7921e80e
languageName: node
linkType: hard
"js-yaml@npm:^4.1.0":
version: 4.1.0
resolution: "js-yaml@npm:4.1.0"
@ -4518,6 +4608,17 @@ __metadata:
languageName: node
linkType: hard
"local-pkg@npm:^1.1.1":
version: 1.1.2
resolution: "local-pkg@npm:1.1.2"
dependencies:
mlly: "npm:^1.7.4"
pkg-types: "npm:^2.3.0"
quansync: "npm:^0.2.11"
checksum: 10c0/1bcfcc5528dea95cba3caa478126a348d3985aad9f69ecf7802c13efef90897e1c5ff7851974332c5e6d4a4698efe610fef758a068c8bc3feb5322aeb35d5993
languageName: node
linkType: hard
"locate-path@npm:^6.0.0":
version: 6.0.0
resolution: "locate-path@npm:6.0.0"
@ -4644,6 +4745,15 @@ __metadata:
languageName: node
linkType: hard
"magic-string@npm:^0.30.17":
version: 0.30.18
resolution: "magic-string@npm:0.30.18"
dependencies:
"@jridgewell/sourcemap-codec": "npm:^1.5.5"
checksum: 10c0/80fba01e13ce1f5c474a0498a5aa462fa158eb56567310747089a0033e432d83a2021ee2c109ac116010cd9dcf90a5231d89fbe3858165f73c00a50a74dbefcd
languageName: node
linkType: hard
"make-fetch-happen@npm:^13.0.0":
version: 13.0.1
resolution: "make-fetch-happen@npm:13.0.1"
@ -4901,6 +5011,18 @@ __metadata:
languageName: node
linkType: hard
"mlly@npm:^1.7.4":
version: 1.8.0
resolution: "mlly@npm:1.8.0"
dependencies:
acorn: "npm:^8.15.0"
pathe: "npm:^2.0.3"
pkg-types: "npm:^1.3.1"
ufo: "npm:^1.6.1"
checksum: 10c0/f174b844ae066c71e9b128046677868e2e28694f0bbeeffbe760b2a9d8ff24de0748d0fde6fabe706700c1d2e11d3c0d7a53071b5ea99671592fac03364604ab
languageName: node
linkType: hard
"mobile-detect@npm:^1.4.5":
version: 1.4.5
resolution: "mobile-detect@npm:1.4.5"
@ -5299,6 +5421,13 @@ __metadata:
languageName: node
linkType: hard
"pathe@npm:^2.0.1, pathe@npm:^2.0.3":
version: 2.0.3
resolution: "pathe@npm:2.0.3"
checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1
languageName: node
linkType: hard
"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1":
version: 1.0.1
resolution: "picocolors@npm:1.0.1"
@ -5313,6 +5442,13 @@ __metadata:
languageName: node
linkType: hard
"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3":
version: 4.0.3
resolution: "picomatch@npm:4.0.3"
checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
languageName: node
linkType: hard
"pidtree@npm:^0.6.0":
version: 0.6.0
resolution: "pidtree@npm:0.6.0"
@ -5364,6 +5500,28 @@ __metadata:
languageName: node
linkType: hard
"pkg-types@npm:^1.3.1":
version: 1.3.1
resolution: "pkg-types@npm:1.3.1"
dependencies:
confbox: "npm:^0.1.8"
mlly: "npm:^1.7.4"
pathe: "npm:^2.0.1"
checksum: 10c0/19e6cb8b66dcc66c89f2344aecfa47f2431c988cfa3366bdfdcfb1dd6695f87dcce37fbd90fe9d1605e2f4440b77f391e83c23255347c35cf84e7fd774d7fcea
languageName: node
linkType: hard
"pkg-types@npm:^2.2.0, pkg-types@npm:^2.3.0":
version: 2.3.0
resolution: "pkg-types@npm:2.3.0"
dependencies:
confbox: "npm:^0.2.2"
exsolve: "npm:^1.0.7"
pathe: "npm:^2.0.3"
checksum: 10c0/d2bbddc5b81bd4741e1529c08ef4c5f1542bbdcf63498b73b8e1d84cff71806d1b8b1577800549bb569cb7aa20056257677b979bff48c97967cba7e64f72ae12
languageName: node
linkType: hard
"posix-character-classes@npm:^0.1.0":
version: 0.1.1
resolution: "posix-character-classes@npm:0.1.1"
@ -5605,6 +5763,13 @@ __metadata:
languageName: node
linkType: hard
"quansync@npm:^0.2.11":
version: 0.2.11
resolution: "quansync@npm:0.2.11"
checksum: 10c0/cb9a1f8ebce074069f2f6a78578873ffedd9de9f6aa212039b44c0870955c04a71c3b1311b5d97f8ac2f2ec476de202d0a5c01160cb12bc0a11b7ef36d22ef56
languageName: node
linkType: hard
"query-string@npm:^4.3.2":
version: 4.3.4
resolution: "query-string@npm:4.3.4"
@ -5916,6 +6081,13 @@ __metadata:
languageName: node
linkType: hard
"scule@npm:^1.3.0":
version: 1.3.0
resolution: "scule@npm:1.3.0"
checksum: 10c0/5d1736daa10622c420f2aa74e60d3c722e756bfb139fa784ae5c66669fdfe92932d30ed5072e4ce3107f9c3053e35ad73b2461cb18de45b867e1d4dea63f8823
languageName: node
linkType: hard
"semver@npm:^6.3.1":
version: 6.3.1
resolution: "semver@npm:6.3.1"
@ -6310,6 +6482,15 @@ __metadata:
languageName: node
linkType: hard
"strip-literal@npm:^3.0.0":
version: 3.0.0
resolution: "strip-literal@npm:3.0.0"
dependencies:
js-tokens: "npm:^9.0.1"
checksum: 10c0/d81657f84aba42d4bbaf2a677f7e7f34c1f3de5a6726db8bc1797f9c0b303ba54d4660383a74bde43df401cf37cce1dff2c842c55b077a4ceee11f9e31fba828
languageName: node
linkType: hard
"sucrase@npm:^3.32.0":
version: 3.35.0
resolution: "sucrase@npm:3.35.0"
@ -6503,6 +6684,16 @@ __metadata:
languageName: node
linkType: hard
"tinyglobby@npm:^0.2.14":
version: 0.2.14
resolution: "tinyglobby@npm:0.2.14"
dependencies:
fdir: "npm:^6.4.4"
picomatch: "npm:^4.0.2"
checksum: 10c0/f789ed6c924287a9b7d3612056ed0cda67306cd2c80c249fd280cf1504742b12583a2089b61f4abbd24605f390809017240e250241f09938054c9b363e51c0a6
languageName: node
linkType: hard
"to-fast-properties@npm:^2.0.0":
version: 2.0.0
resolution: "to-fast-properties@npm:2.0.0"
@ -6700,6 +6891,13 @@ __metadata:
languageName: node
linkType: hard
"ufo@npm:^1.6.1":
version: 1.6.1
resolution: "ufo@npm:1.6.1"
checksum: 10c0/5a9f041e5945fba7c189d5410508cbcbefef80b253ed29aa2e1f8a2b86f4bd51af44ee18d4485e6d3468c92be9bf4a42e3a2b72dcaf27ce39ce947ec994f1e6b
languageName: node
linkType: hard
"unbox-primitive@npm:^1.0.2":
version: 1.0.2
resolution: "unbox-primitive@npm:1.0.2"
@ -6719,6 +6917,28 @@ __metadata:
languageName: node
linkType: hard
"unimport@npm:^5.2.0":
version: 5.2.0
resolution: "unimport@npm:5.2.0"
dependencies:
acorn: "npm:^8.15.0"
escape-string-regexp: "npm:^5.0.0"
estree-walker: "npm:^3.0.3"
local-pkg: "npm:^1.1.1"
magic-string: "npm:^0.30.17"
mlly: "npm:^1.7.4"
pathe: "npm:^2.0.3"
picomatch: "npm:^4.0.3"
pkg-types: "npm:^2.2.0"
scule: "npm:^1.3.0"
strip-literal: "npm:^3.0.0"
tinyglobby: "npm:^0.2.14"
unplugin: "npm:^2.3.5"
unplugin-utils: "npm:^0.2.4"
checksum: 10c0/9e627371a84fab3359837d48a110e20cb7666f61d81f59daa094fbd4c644b5652dfb539cb9a745415e97abf1317faa7e9a805ad7fe2761a9b9dc7c6ff661555b
languageName: node
linkType: hard
"union-value@npm:^1.0.0":
version: 1.0.1
resolution: "union-value@npm:1.0.1"
@ -6756,6 +6976,50 @@ __metadata:
languageName: node
linkType: hard
"unplugin-auto-import@npm:^20.0.0":
version: 20.0.0
resolution: "unplugin-auto-import@npm:20.0.0"
dependencies:
local-pkg: "npm:^1.1.1"
magic-string: "npm:^0.30.17"
picomatch: "npm:^4.0.3"
unimport: "npm:^5.2.0"
unplugin: "npm:^2.3.5"
unplugin-utils: "npm:^0.2.4"
peerDependencies:
"@nuxt/kit": ^4.0.0
"@vueuse/core": "*"
peerDependenciesMeta:
"@nuxt/kit":
optional: true
"@vueuse/core":
optional: true
checksum: 10c0/c2e817debca1b2fa404659a5a1c9f85c62ad12aacfa1cab0be37cf4dd2e6f952217843d21224f836f8809c97e0b701aae05bb1d18ecf8f00b7d2c86b82656e84
languageName: node
linkType: hard
"unplugin-utils@npm:^0.2.4":
version: 0.2.5
resolution: "unplugin-utils@npm:0.2.5"
dependencies:
pathe: "npm:^2.0.3"
picomatch: "npm:^4.0.3"
checksum: 10c0/51541892216a0505210866f956228ffe8c64792b0f7397d919e68aece7ac18cc4bed9cceaf0b59f777183701e4b1f2d95776b18e7d4a75ac64e2cfa4737bd9e5
languageName: node
linkType: hard
"unplugin@npm:^2.3.5":
version: 2.3.8
resolution: "unplugin@npm:2.3.8"
dependencies:
"@jridgewell/remapping": "npm:^2.3.5"
acorn: "npm:^8.15.0"
picomatch: "npm:^4.0.3"
webpack-virtual-modules: "npm:^0.6.2"
checksum: 10c0/fc00a30a9b8e2a3167d694232f490fdb8f14aff11cda429f36798e06598b659e5ca9c156a8af8fd17e23711fd95a04e0323f29db4ed4aefd737559d83b2b82d8
languageName: node
linkType: hard
"unset-value@npm:^1.0.0":
version: 1.0.0
resolution: "unset-value@npm:1.0.0"
@ -6951,10 +7215,10 @@ __metadata:
languageName: node
linkType: hard
"vue3-admin-ui@npm:^0.0.18":
version: 0.0.18
resolution: "vue3-admin-ui@npm:0.0.18"
checksum: 10c0/874497ca28c9c786a5f72dd44e0fd4fdaf0555884445eb43f8a69a1dcfc345a8ed5d983509a11cd690abbaf28061346eef280497456e471ae56c600e9e41d555
"vue3-admin-ui@npm:^0.0.19":
version: 0.0.19
resolution: "vue3-admin-ui@npm:0.0.19"
checksum: 10c0/b438b955e283e6af5036a4dbf0a67822b7cb23a479f402ccec99c07292f65430c772a08f980416312494f34bff5d112694a6d0e0ca5d082e1b6c40b884b46933
languageName: node
linkType: hard
@ -6986,6 +7250,13 @@ __metadata:
languageName: node
linkType: hard
"webpack-virtual-modules@npm:^0.6.2":
version: 0.6.2
resolution: "webpack-virtual-modules@npm:0.6.2"
checksum: 10c0/5ffbddf0e84bf1562ff86cf6fcf039c74edf09d78358a6904a09bbd4484e8bb6812dc385fe14330b715031892dcd8423f7a88278b57c9f5002c84c2860179add
languageName: node
linkType: hard
"which-boxed-primitive@npm:^1.0.2":
version: 1.0.2
resolution: "which-boxed-primitive@npm:1.0.2"