+
+
@@ -22,13 +22,11 @@ defineProps<{ property: UserCardProperty }>();
-
-
\ No newline at end of file
+
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/index.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/index.vue
index 2df2df328..981e99424 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/index.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/index.vue
@@ -13,5 +13,3 @@ defineProps<{ property: UserCouponProperty }>();
src="https://shopro.sheepjs.com/admin/static/images/shop/decorate/couponCardStyle.png"
/>
-
-
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/property.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/property.vue
index 488bf3168..9a5633b36 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/property.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-coupon/property.vue
@@ -16,5 +16,3 @@ const formData = useVModel(props, 'modelValue', emit);
-
-
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/index.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/index.vue
index 1c171b3eb..b22c9e576 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/index.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/index.vue
@@ -13,4 +13,4 @@ defineProps<{ property: UserOrderProperty }>();
-
\ No newline at end of file
+
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/property.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/property.vue
index 2f9abe556..e670a1e44 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/property.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-order/property.vue
@@ -17,4 +17,4 @@ const formData = useVModel(props, 'modelValue', emit);
-
\ No newline at end of file
+
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/index.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/index.vue
index 4eabad045..f23986193 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/index.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/index.vue
@@ -13,4 +13,4 @@ defineProps<{ property: UserWalletProperty }>();
-
\ No newline at end of file
+
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/property.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/property.vue
index 74b374535..fc7adf438 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/property.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/user-wallet/property.vue
@@ -18,5 +18,3 @@ const formData = useVModel(props, 'modelValue', emit);
-
-
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/video-player/property.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/video-player/property.vue
index c576d8f76..248777f55 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/video-player/property.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/components/mobile/video-player/property.vue
@@ -40,7 +40,7 @@ const formData = useVModel(props, 'modelValue', emit);
:file-type="['mp4']"
:limit="1"
:file-size="100"
- class="min-w-[80px]"
+ class="min-w-20"
/>
@@ -49,7 +49,7 @@ const formData = useVModel(props, 'modelValue', emit);
draggable="false"
height="80px"
width="100%"
- class="min-w-[80px]"
+ class="min-w-20"
:show-description="false"
>
建议宽度750
@@ -60,4 +60,4 @@ const formData = useVModel(props, 'modelValue', emit);
-
\ No newline at end of file
+
diff --git a/apps/web-ele/src/views/mall/promotion/components/diy-editor/index.vue b/apps/web-ele/src/views/mall/promotion/components/diy-editor/index.vue
index 8d3fda28b..97fc7aa3a 100644
--- a/apps/web-ele/src/views/mall/promotion/components/diy-editor/index.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/diy-editor/index.vue
@@ -112,6 +112,11 @@ watch(
if (!val || selectedComponentIndex.value === -1) {
return;
}
+ // 如果是基础设置页,默认选中的索引改成 -1,为了防止删除组件后切换到此页导致报错
+ // https://gitee.com/yudaocode/yudao-ui-admin-vue3/pulls/792
+ if (props.showTabBar) {
+ selectedComponentIndex.value = -1;
+ }
pageComponents.value[selectedComponentIndex.value] =
selectedComponent.value!;
},
@@ -339,10 +344,7 @@ onMounted(() => {
/>
-
+
@@ -373,11 +375,19 @@ onMounted(() => {
/>
-
+
{
/>
-
+
- {{ pageConfigComponent.name }}
+ {{ pageConfigComponent.name }}
- {{ component.name }}
+ {{ component.name }}
-
+
{
@@ -621,6 +637,7 @@ $phone-width: 375px;
right: 16px;
display: flex;
flex-direction: column;
+ gap: 8px;
:deep(.el-tag) {
border: none;
diff --git a/apps/web-ele/src/views/mall/promotion/components/magic-cube-editor/index.vue b/apps/web-ele/src/views/mall/promotion/components/magic-cube-editor/index.vue
index b985a8142..9223bb11c 100644
--- a/apps/web-ele/src/views/mall/promotion/components/magic-cube-editor/index.vue
+++ b/apps/web-ele/src/views/mall/promotion/components/magic-cube-editor/index.vue
@@ -255,11 +255,11 @@ const eachCube = (callback: (x: number, y: number, cube: Cube) => void) => {
.cube {
box-sizing: border-box;
+ line-height: 1;
color: var(--el-text-color-secondary);
text-align: center;
cursor: pointer;
border: 1px solid var(--el-border-color);
- line-height: 1;
:deep(.iconify) {
display: inline-block;
diff --git a/apps/web-ele/src/views/mall/promotion/coupon/data.ts b/apps/web-ele/src/views/mall/promotion/coupon/data.ts
index c16369b58..2c5dc8b40 100644
--- a/apps/web-ele/src/views/mall/promotion/coupon/data.ts
+++ b/apps/web-ele/src/views/mall/promotion/coupon/data.ts
@@ -101,6 +101,7 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
formatter: 'formatDateTime',
},
{
+ field: 'actions',
title: '操作',
width: 100,
fixed: 'right',
diff --git a/apps/web-ele/src/views/mall/promotion/coupon/index.vue b/apps/web-ele/src/views/mall/promotion/coupon/index.vue
index 9e626dff6..17580fcfd 100644
--- a/apps/web-ele/src/views/mall/promotion/coupon/index.vue
+++ b/apps/web-ele/src/views/mall/promotion/coupon/index.vue
@@ -7,7 +7,6 @@ import { ref } from 'vue';
import { DocAlert, Page } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
-import { $t } from '@vben/locales';
import { ElLoading, ElMessage, ElTabPane, ElTabs } from 'element-plus';
@@ -32,7 +31,7 @@ function handleRefresh() {
/** 删除优惠券 */
async function handleDelete(row: MallCouponApi.Coupon) {
const loadingInstance = ElLoading.service({
- text: $t('ui.actionMessage.deleting', [row.name]),
+ text: '回收中...',
});
try {
await deleteCoupon(row.id!);
diff --git a/apps/web-ele/src/views/mall/promotion/point/components/index.ts b/apps/web-ele/src/views/mall/promotion/point/components/index.ts
new file mode 100644
index 000000000..bb0194057
--- /dev/null
+++ b/apps/web-ele/src/views/mall/promotion/point/components/index.ts
@@ -0,0 +1 @@
+export { default as PointShowcase } from './showcase.vue';
diff --git a/apps/web-ele/src/views/mall/promotion/point/components/point-showcase.vue b/apps/web-ele/src/views/mall/promotion/point/components/point-showcase.vue
deleted file mode 100644
index 6a39d3803..000000000
--- a/apps/web-ele/src/views/mall/promotion/point/components/point-showcase.vue
+++ /dev/null
@@ -1,178 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/apps/web-ele/src/views/mall/promotion/point/components/point-table-select.vue b/apps/web-ele/src/views/mall/promotion/point/components/point-table-select.vue
deleted file mode 100644
index e850d8eb3..000000000
--- a/apps/web-ele/src/views/mall/promotion/point/components/point-table-select.vue
+++ /dev/null
@@ -1,354 +0,0 @@
-
-
-
-
-
diff --git a/apps/web-ele/src/views/mall/promotion/point/components/showcase.vue b/apps/web-ele/src/views/mall/promotion/point/components/showcase.vue
new file mode 100644
index 000000000..95aceb9ec
--- /dev/null
+++ b/apps/web-ele/src/views/mall/promotion/point/components/showcase.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mall/promotion/point/components/table-select.vue b/apps/web-ele/src/views/mall/promotion/point/components/table-select.vue
new file mode 100644
index 000000000..eff545cba
--- /dev/null
+++ b/apps/web-ele/src/views/mall/promotion/point/components/table-select.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mall/promotion/seckill/components/index.ts b/apps/web-ele/src/views/mall/promotion/seckill/components/index.ts
new file mode 100644
index 000000000..dd452161c
--- /dev/null
+++ b/apps/web-ele/src/views/mall/promotion/seckill/components/index.ts
@@ -0,0 +1 @@
+export { default as SeckillShowcase } from './showcase.vue';
diff --git a/apps/web-ele/src/views/mall/promotion/seckill/components/seckill-showcase.vue b/apps/web-ele/src/views/mall/promotion/seckill/components/seckill-showcase.vue
deleted file mode 100644
index b5699e828..000000000
--- a/apps/web-ele/src/views/mall/promotion/seckill/components/seckill-showcase.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/apps/web-ele/src/views/mall/promotion/seckill/components/seckill-table-select.vue b/apps/web-ele/src/views/mall/promotion/seckill/components/seckill-table-select.vue
deleted file mode 100644
index d188f315a..000000000
--- a/apps/web-ele/src/views/mall/promotion/seckill/components/seckill-table-select.vue
+++ /dev/null
@@ -1,388 +0,0 @@
-
-
-
-
-
diff --git a/apps/web-ele/src/views/mall/promotion/seckill/components/showcase.vue b/apps/web-ele/src/views/mall/promotion/seckill/components/showcase.vue
new file mode 100644
index 000000000..d368f7e5e
--- /dev/null
+++ b/apps/web-ele/src/views/mall/promotion/seckill/components/showcase.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mall/promotion/seckill/components/table-select.vue b/apps/web-ele/src/views/mall/promotion/seckill/components/table-select.vue
new file mode 100644
index 000000000..ec3315b1a
--- /dev/null
+++ b/apps/web-ele/src/views/mall/promotion/seckill/components/table-select.vue
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mall/trade/afterSale/data.ts b/apps/web-ele/src/views/mall/trade/afterSale/data.ts
index a995b0b96..2aa4ecc69 100644
--- a/apps/web-ele/src/views/mall/trade/afterSale/data.ts
+++ b/apps/web-ele/src/views/mall/trade/afterSale/data.ts
@@ -131,7 +131,6 @@ export function useGridColumns(): VxeGridPropTypes.Columns {
{
field: 'user.nickname',
title: '买家',
- align: 'center',
minWidth: 120,
},
{
@@ -144,11 +143,10 @@ export function useGridColumns(): VxeGridPropTypes.Columns {
field: 'status',
title: '售后状态',
width: 100,
- align: 'center',
cellRender: {
name: 'CellDict',
props: {
- dictType: DICT_TYPE.TRADE_AFTER_SALE_STATUS,
+ type: DICT_TYPE.TRADE_AFTER_SALE_STATUS,
},
},
},
@@ -156,11 +154,10 @@ export function useGridColumns(): VxeGridPropTypes.Columns {
field: 'way',
title: '售后方式',
width: 100,
- align: 'center',
cellRender: {
name: 'CellDict',
props: {
- dictType: DICT_TYPE.TRADE_AFTER_SALE_WAY,
+ type: DICT_TYPE.TRADE_AFTER_SALE_WAY,
},
},
},
diff --git a/apps/web-ele/src/views/mall/trade/order/index.vue b/apps/web-ele/src/views/mall/trade/order/index.vue
index ac9a14238..c19b0fdf4 100644
--- a/apps/web-ele/src/views/mall/trade/order/index.vue
+++ b/apps/web-ele/src/views/mall/trade/order/index.vue
@@ -122,7 +122,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
{{ item.spuName }}
@@ -133,7 +133,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
class="flex items-center justify-between text-xs text-gray-500"
>
- 原价:{{ fenToYuan(item.price) }} 元 / 数量:{{
+ 原价:{{ fenToYuan(item.price!) }} 元 / 数量:{{
item.count
}}个
diff --git a/apps/web-ele/src/views/member/user/detail/index.vue b/apps/web-ele/src/views/member/user/detail/index.vue
index 19d3b5e69..bf2ef4c4b 100644
--- a/apps/web-ele/src/views/member/user/detail/index.vue
+++ b/apps/web-ele/src/views/member/user/detail/index.vue
@@ -16,17 +16,17 @@ import { $t } from '#/locales';
import Form from '../modules/form.vue';
import AccountInfo from './modules/account-info.vue';
+import AddressList from './modules/address-list.vue';
+import AfterSaleList from './modules/after-sale-list.vue';
import BalanceList from './modules/balance-list.vue';
import BasicInfo from './modules/basic-info.vue';
+import BrokerageList from './modules/brokerage-list.vue';
+import CouponList from './modules/coupon-list.vue';
import ExperienceRecordList from './modules/experience-record-list.vue';
+import FavoriteList from './modules/favorite-list.vue';
+import OrderList from './modules/order-list.vue';
import PointList from './modules/point-list.vue';
import SignList from './modules/sign-list.vue';
-import UserAddressList from './modules/user-address-list.vue';
-import UserAfterSaleList from './modules/user-after-sale-list.vue';
-import UserBrokerageList from './modules/user-brokerage-list.vue';
-import UserCouponList from './modules/user-coupon-list.vue';
-import UserFavoriteList from './modules/user-favorite-list.vue';
-import UserOrderList from './modules/user-order-list.vue';
const route = useRoute();
const { closeCurrentTab, refreshTab } = useTabs();
@@ -103,37 +103,22 @@ onMounted(async () => {
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/account-info.vue b/apps/web-ele/src/views/member/user/detail/modules/account-info.vue
index f95cccad4..d99cbf0ce 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/account-info.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/account-info.vue
@@ -22,7 +22,6 @@ const props = withDefaults(
const [Descriptions] = useDescription({
border: false,
column: props.mode === 'member' ? 2 : 1,
- labelWidth: 140,
schema: [
{
field: 'levelName',
@@ -65,11 +64,10 @@ const [Descriptions] = useDescription({
-
-
-
-
-
+
+
+
+
+import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import type { MemberAddressApi } from '#/api/member/address';
+
+import { DICT_TYPE } from '@vben/constants';
+
+import { useVbenVxeGrid } from '#/adapter/vxe-table';
+import { getAddressList } from '#/api/member/address';
+
+const props = defineProps<{
+ userId: number;
+}>();
+
+const columns = [
+ {
+ field: 'id',
+ title: '地址编号',
+ minWidth: 100,
+ },
+ {
+ field: 'name',
+ title: '收件人名称',
+ minWidth: 120,
+ },
+ {
+ field: 'mobile',
+ title: '手机号',
+ minWidth: 130,
+ },
+ {
+ field: 'areaId',
+ title: '地区编码',
+ minWidth: 120,
+ },
+ {
+ field: 'detailAddress',
+ title: '收件详细地址',
+ minWidth: 200,
+ },
+ {
+ field: 'defaultStatus',
+ title: '是否默认',
+ minWidth: 100,
+ cellRender: {
+ name: 'CellDict',
+ props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING },
+ },
+ },
+ {
+ field: 'createTime',
+ title: '创建时间',
+ formatter: 'formatDateTime',
+ minWidth: 160,
+ },
+];
+
+const [Grid] = useVbenVxeGrid({
+ gridOptions: {
+ columns,
+ keepSource: true,
+ pagerConfig: {
+ enabled: false,
+ },
+ proxyConfig: {
+ ajax: {
+ query: async () => {
+ return await getAddressList({
+ userId: props.userId,
+ });
+ },
+ },
+ },
+ rowConfig: {
+ keyField: 'id',
+ isHover: true,
+ },
+ toolbarConfig: {
+ refresh: true,
+ search: true,
+ },
+ } as VxeTableGridOptions,
+});
+
+
+
+
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/after-sale-list.vue b/apps/web-ele/src/views/member/user/detail/modules/after-sale-list.vue
new file mode 100644
index 000000000..5661f01f3
--- /dev/null
+++ b/apps/web-ele/src/views/member/user/detail/modules/after-sale-list.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.orderNo }}
+
+
+
+
+
+
+
{{ row.spuName }}
+
+
+ {{ property.propertyName }}: {{ property.valueName }}
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue b/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue
index 76d805f19..86b148ce7 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue
@@ -4,6 +4,7 @@ import type { WalletTransactionApi } from '#/api/pay/wallet/transaction';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getTransactionPage } from '#/api/pay/wallet/transaction';
+import { useTransactionGridColumns } from '#/views/pay/wallet/balance/data';
const props = defineProps<{
walletId: number | undefined;
@@ -11,36 +12,7 @@ const props = defineProps<{
const [Grid] = useVbenVxeGrid({
gridOptions: {
- columns: [
- {
- field: 'id',
- title: '编号',
- minWidth: 100,
- },
- {
- field: 'title',
- title: '关联业务标题',
- minWidth: 200,
- },
- {
- field: 'price',
- title: '交易金额',
- minWidth: 120,
- formatter: 'formatFenToYuanAmount',
- },
- {
- field: 'balance',
- title: '钱包余额',
- minWidth: 120,
- formatter: 'formatFenToYuanAmount',
- },
- {
- field: 'createTime',
- title: '交易时间',
- minWidth: 180,
- formatter: 'formatDateTime',
- },
- ],
+ columns: useTransactionGridColumns(),
keepSource: true,
proxyConfig: {
ajax: {
diff --git a/apps/web-ele/src/views/member/user/detail/modules/basic-info.vue b/apps/web-ele/src/views/member/user/detail/modules/basic-info.vue
index 55f1e0d9c..c6e3891cc 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/basic-info.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/basic-info.vue
@@ -21,7 +21,6 @@ const props = withDefaults(
const [Descriptions] = useDescription({
border: false,
column: props.mode === 'member' ? 2 : 1,
- labelWidth: 140,
schema: [
{
field: 'name',
@@ -73,11 +72,15 @@ const [Descriptions] = useDescription({
-
-
-
-
-
+
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/brokerage-list.vue b/apps/web-ele/src/views/member/user/detail/modules/brokerage-list.vue
new file mode 100644
index 000000000..5adb98f20
--- /dev/null
+++ b/apps/web-ele/src/views/member/user/detail/modules/brokerage-list.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/coupon-list.vue b/apps/web-ele/src/views/member/user/detail/modules/coupon-list.vue
new file mode 100644
index 000000000..51b908f7a
--- /dev/null
+++ b/apps/web-ele/src/views/member/user/detail/modules/coupon-list.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue b/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue
index 9f038594f..cd3d71e40 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue
@@ -1,5 +1,6 @@
diff --git a/apps/web-ele/src/views/member/user/detail/modules/favorite-list.vue b/apps/web-ele/src/views/member/user/detail/modules/favorite-list.vue
new file mode 100644
index 000000000..f91a2c3e0
--- /dev/null
+++ b/apps/web-ele/src/views/member/user/detail/modules/favorite-list.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/order-list.vue b/apps/web-ele/src/views/member/user/detail/modules/order-list.vue
new file mode 100644
index 000000000..37b562b51
--- /dev/null
+++ b/apps/web-ele/src/views/member/user/detail/modules/order-list.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.spuName }}
+
+ {{ property.propertyName }}: {{ property.valueName }}
+
+
+
+
+ 原价:{{ fenToYuan(item.price!) }} 元 / 数量:{{ item.count }}个
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/member/user/detail/modules/point-list.vue b/apps/web-ele/src/views/member/user/detail/modules/point-list.vue
index 9f782017e..40ef48271 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/point-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/point-list.vue
@@ -4,44 +4,34 @@ import type { MemberPointRecordApi } from '#/api/member/point/record';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getRecordPage } from '#/api/member/point/record';
-import { DICT_TYPE } from '@vben/constants';
-import { getDictOptions } from '@vben/hooks';
-
-import { getRangePickerDefaultProps } from '#/utils';
-import { useGridColumns } from '#/views/member/point/record/data';
+import {
+ useGridColumns as usePointGridColumns,
+ useGridFormSchema as usePointGridFormSchema,
+} from '#/views/member/point/record/data';
const props = defineProps<{
userId: number;
}>();
+/** 列表的搜索表单(过滤掉用户相关字段) */
+function useGridFormSchema() {
+ const excludeFields = new Set(['nickname']);
+ return usePointGridFormSchema().filter(
+ (item) => !excludeFields.has(item.fieldName),
+ );
+}
+
+/** 列表的字段(过滤掉用户相关字段) */
+function useGridColumns() {
+ const excludeFields = new Set(['nickname']);
+ return usePointGridColumns()?.filter(
+ (item) => item.field && !excludeFields.has(item.field),
+ );
+}
+
const [Grid] = useVbenVxeGrid({
formOptions: {
- schema: [
- {
- fieldName: 'bizType',
- label: '业务类型',
- component: 'Select',
- componentProps: {
- clearable: true,
- placeholder: '请选择业务类型',
- options: getDictOptions(DICT_TYPE.MEMBER_POINT_BIZ_TYPE, 'number'),
- },
- },
- {
- fieldName: 'title',
- label: '积分标题',
- component: 'Input',
- },
- {
- fieldName: 'createDate',
- label: '获得时间',
- component: 'RangePicker',
- componentProps: {
- ...getRangePickerDefaultProps(),
- clearable: true,
- },
- },
- ],
+ schema: useGridFormSchema(),
},
gridOptions: {
columns: useGridColumns(),
@@ -63,13 +53,13 @@ const [Grid] = useVbenVxeGrid({
},
rowConfig: {
keyField: 'id',
+ isHover: true,
},
toolbarConfig: {
refresh: true,
search: true,
},
} as VxeTableGridOptions,
- separator: false,
});
diff --git a/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue b/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue
index 39e31190f..afede6537 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue
@@ -4,35 +4,34 @@ import type { MemberSignInRecordApi } from '#/api/member/signin/record';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getSignInRecordPage } from '#/api/member/signin/record';
-import { getRangePickerDefaultProps } from '#/utils';
-import { useGridColumns } from '#/views/member/signin/record/data';
+import {
+ useGridColumns as useSignInGridColumns,
+ useGridFormSchema as useSignInGridFormSchema,
+} from '#/views/member/signin/record/data';
const props = defineProps<{
userId: number;
}>();
+/** 列表的搜索表单(过滤掉用户相关字段) */
+function useGridFormSchema() {
+ const excludeFields = new Set(['nickname']);
+ return useSignInGridFormSchema().filter(
+ (item) => !excludeFields.has(item.fieldName),
+ );
+}
+
+/** 列表的字段(过滤掉用户相关字段) */
+function useGridColumns() {
+ const excludeFields = new Set(['nickname']);
+ return useSignInGridColumns()?.filter(
+ (item) => item.field && !excludeFields.has(item.field),
+ );
+}
+
const [Grid] = useVbenVxeGrid({
formOptions: {
- schema: [
- {
- fieldName: 'day',
- label: '签到天数',
- component: 'Input',
- componentProps: {
- placeholder: '请输入签到天数',
- clearable: true,
- },
- },
- {
- fieldName: 'createTime',
- label: '签到时间',
- component: 'RangePicker',
- componentProps: {
- ...getRangePickerDefaultProps(),
- clearable: true,
- },
- },
- ],
+ schema: useGridFormSchema(),
},
gridOptions: {
columns: useGridColumns(),
@@ -58,7 +57,6 @@ const [Grid] = useVbenVxeGrid({
search: true,
},
} as VxeTableGridOptions,
- separator: false,
});
diff --git a/apps/web-ele/src/views/member/user/detail/modules/user-address-list.vue b/apps/web-ele/src/views/member/user/detail/modules/user-address-list.vue
deleted file mode 100644
index a897234fd..000000000
--- a/apps/web-ele/src/views/member/user/detail/modules/user-address-list.vue
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
diff --git a/apps/web-ele/src/views/member/user/detail/modules/user-after-sale-list.vue b/apps/web-ele/src/views/member/user/detail/modules/user-after-sale-list.vue
deleted file mode 100644
index 08b815945..000000000
--- a/apps/web-ele/src/views/member/user/detail/modules/user-after-sale-list.vue
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/web-ele/src/views/member/user/detail/modules/user-brokerage-list.vue b/apps/web-ele/src/views/member/user/detail/modules/user-brokerage-list.vue
deleted file mode 100644
index f39a9f514..000000000
--- a/apps/web-ele/src/views/member/user/detail/modules/user-brokerage-list.vue
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
diff --git a/apps/web-ele/src/views/member/user/detail/modules/user-coupon-list.vue b/apps/web-ele/src/views/member/user/detail/modules/user-coupon-list.vue
deleted file mode 100644
index 8d644e7f4..000000000
--- a/apps/web-ele/src/views/member/user/detail/modules/user-coupon-list.vue
+++ /dev/null
@@ -1,183 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/web-ele/src/views/member/user/detail/modules/user-order-list.vue b/apps/web-ele/src/views/member/user/detail/modules/user-order-list.vue
deleted file mode 100644
index c00784265..000000000
--- a/apps/web-ele/src/views/member/user/detail/modules/user-order-list.vue
+++ /dev/null
@@ -1,264 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.spuName }}
-
- {{ property.propertyName }}: {{ property.valueName }}
-
-
-
-
- 原价:{{ fenToYuan(item.price) }} 元 / 数量:{{ item.count }} 个
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 204d6a872..654a6e56f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -174,6 +174,9 @@ catalogs:
'@vue/test-utils':
specifier: ^2.4.6
version: 2.4.6
+ '@vueuse/components':
+ specifier: ^13.4.0
+ version: 13.9.0
'@vueuse/core':
specifier: ^13.4.0
version: 13.9.0
@@ -669,10 +672,10 @@ importers:
version: link:scripts/vsh
'@vitejs/plugin-vue':
specifier: 'catalog:'
- version: 6.0.1(vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))
+ version: 6.0.1(vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))
'@vitejs/plugin-vue-jsx':
specifier: 'catalog:'
- version: 5.1.1(vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))
+ version: 5.1.1(vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))
'@vue/test-utils':
specifier: 'catalog:'
version: 2.4.6
@@ -714,10 +717,10 @@ importers:
version: 3.6.1(sass@1.93.2)(typescript@5.9.3)(vue-tsc@2.2.10(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))
vite:
specifier: 'catalog:'
- version: 7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ version: 7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
vitest:
specifier: 'catalog:'
- version: 3.2.4(@types/node@22.18.12)(happy-dom@17.6.3)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ version: 3.2.4(@types/node@22.18.12)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
vue:
specifier: ^3.5.17
version: 3.5.22(typescript@5.9.3)
@@ -798,8 +801,8 @@ importers:
specifier: workspace:*
version: link:../../packages/utils
'@vueuse/components':
- specifier: ^14.0.0
- version: 14.0.0(vue@3.5.22(typescript@5.9.3))
+ specifier: 'catalog:'
+ version: 13.9.0(vue@3.5.22(typescript@5.9.3))
'@vueuse/core':
specifier: 'catalog:'
version: 13.9.0(vue@3.5.22(typescript@5.9.3))
@@ -5310,8 +5313,8 @@ packages:
'@vue/test-utils@2.4.6':
resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==}
- '@vueuse/components@14.0.0':
- resolution: {integrity: sha512-0PFAbAzKo+Ipt45R0OVHvZwjTj9oDZJQ/lc77d020fKl9GrxEIRvVIzMW1CZVn1vwmGhXEZPIF3erjixW2yqpg==}
+ '@vueuse/components@13.9.0':
+ resolution: {integrity: sha512-0DDFpjG3hEEK+3YgSzE/OzOGqpo/KmxcXWzW2YdmgahZvaoUdegn68GmbdcHRJE7CH55dDj13Cz47iN8QoI3jQ==}
peerDependencies:
vue: ^3.5.17
@@ -5326,11 +5329,6 @@ packages:
peerDependencies:
vue: ^3.5.17
- '@vueuse/core@14.0.0':
- resolution: {integrity: sha512-d6tKRWkZE8IQElX2aHBxXOMD478fHIYV+Dzm2y9Ag122ICBpNKtGICiXKOhWU3L1kKdttDD9dCMS4bGP3jhCTQ==}
- peerDependencies:
- vue: ^3.5.17
-
'@vueuse/core@9.13.0':
resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
@@ -5426,9 +5424,6 @@ packages:
'@vueuse/metadata@13.9.0':
resolution: {integrity: sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==}
- '@vueuse/metadata@14.0.0':
- resolution: {integrity: sha512-6yoGqbJcMldVCevkFiHDBTB1V5Hq+G/haPlGIuaFZHpXC0HADB0EN1ryQAAceiW+ryS3niUwvdFbGiqHqBrfVA==}
-
'@vueuse/metadata@9.13.0':
resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
@@ -5448,11 +5443,6 @@ packages:
peerDependencies:
vue: ^3.5.17
- '@vueuse/shared@14.0.0':
- resolution: {integrity: sha512-mTCA0uczBgurRlwVaQHfG0Ja7UdGe4g9mwffiJmvLiTtp1G4AQyIjej6si/k8c8pUwTfVpNufck+23gXptPAkw==}
- peerDependencies:
- vue: ^3.5.17
-
'@vueuse/shared@9.13.0':
resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
@@ -15133,14 +15123,14 @@ snapshots:
dependencies:
vite-plugin-pwa: 1.1.0(vite@5.4.21(@types/node@24.9.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0)
- '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))':
+ '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@babel/core': 7.28.4
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
'@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4)
'@rolldown/pluginutils': 1.0.0-beta.44
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.4)
- vite: 7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
vue: 3.5.22(typescript@5.9.3)
transitivePeerDependencies:
- supports-color
@@ -15162,10 +15152,10 @@ snapshots:
vite: 5.4.21(@types/node@24.9.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)
vue: 3.5.22(typescript@5.9.3)
- '@vitejs/plugin-vue@6.0.1(vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))':
+ '@vitejs/plugin-vue@6.0.1(vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.29
- vite: 7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
vue: 3.5.22(typescript@5.9.3)
'@vitejs/plugin-vue@6.0.1(vite@7.1.11(@types/node@24.9.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))':
@@ -15182,13 +15172,13 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))':
+ '@vitest/mocker@3.2.4(vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.19
optionalDependencies:
- vite: 7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -15379,10 +15369,10 @@ snapshots:
js-beautify: 1.15.4
vue-component-type-helpers: 2.2.12
- '@vueuse/components@14.0.0(vue@3.5.22(typescript@5.9.3))':
+ '@vueuse/components@13.9.0(vue@3.5.22(typescript@5.9.3))':
dependencies:
- '@vueuse/core': 14.0.0(vue@3.5.22(typescript@5.9.3))
- '@vueuse/shared': 14.0.0(vue@3.5.22(typescript@5.9.3))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ '@vueuse/shared': 13.9.0(vue@3.5.22(typescript@5.9.3))
vue: 3.5.22(typescript@5.9.3)
'@vueuse/core@10.11.1(vue@3.5.22(typescript@5.9.3))':
@@ -15411,13 +15401,6 @@ snapshots:
'@vueuse/shared': 13.9.0(vue@3.5.22(typescript@5.9.3))
vue: 3.5.22(typescript@5.9.3)
- '@vueuse/core@14.0.0(vue@3.5.22(typescript@5.9.3))':
- dependencies:
- '@types/web-bluetooth': 0.0.21
- '@vueuse/metadata': 14.0.0
- '@vueuse/shared': 14.0.0(vue@3.5.22(typescript@5.9.3))
- vue: 3.5.22(typescript@5.9.3)
-
'@vueuse/core@9.13.0(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.16
@@ -15462,8 +15445,6 @@ snapshots:
'@vueuse/metadata@13.9.0': {}
- '@vueuse/metadata@14.0.0': {}
-
'@vueuse/metadata@9.13.0': {}
'@vueuse/motion@3.0.3(magicast@0.3.5)(vue@3.5.22(typescript@5.9.3))':
@@ -15497,10 +15478,6 @@ snapshots:
dependencies:
vue: 3.5.22(typescript@5.9.3)
- '@vueuse/shared@14.0.0(vue@3.5.22(typescript@5.9.3))':
- dependencies:
- vue: 3.5.22(typescript@5.9.3)
-
'@vueuse/shared@9.13.0(vue@3.5.22(typescript@5.9.3))':
dependencies:
vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3))
@@ -21627,13 +21604,13 @@ snapshots:
dependencies:
vite: 7.1.11(@types/node@24.9.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
- vite-node@3.2.4(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1):
+ vite-node@3.2.4(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -21802,7 +21779,7 @@ snapshots:
sass: 1.93.2
terser: 5.44.0
- vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1):
+ vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1):
dependencies:
esbuild: 0.25.3
fdir: 6.5.0(picomatch@4.0.3)
@@ -21813,7 +21790,7 @@ snapshots:
optionalDependencies:
'@types/node': 22.18.12
fsevents: 2.3.3
- jiti: 1.21.7
+ jiti: 2.6.1
less: 4.4.2
sass: 1.93.2
terser: 5.44.0
@@ -21895,11 +21872,11 @@ snapshots:
- typescript
- universal-cookie
- vitest@3.2.4(@types/node@22.18.12)(happy-dom@17.6.3)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1):
+ vitest@3.2.4(@types/node@22.18.12)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
+ '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -21917,8 +21894,8 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
+ vite-node: 3.2.4(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.18.12
@@ -21941,7 +21918,7 @@ snapshots:
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@22.18.12)(jiti@1.21.7)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
+ '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@22.18.12)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 53e1e50a3..5031b8161 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -73,6 +73,7 @@ catalog:
'@vue/reactivity': ^3.5.17
'@vue/shared': ^3.5.17
'@vue/test-utils': ^2.4.6
+ '@vueuse/components': ^13.4.0
'@vueuse/core': ^13.4.0
'@vueuse/integrations': ^13.4.0
'@vueuse/motion': ^3.0.3