improve layout

This commit is contained in:
2024-02-18 20:23:32 +08:00
parent 767ef270fe
commit e4c8839491
4 changed files with 25 additions and 9 deletions

View File

@@ -104,8 +104,12 @@ const orderColumn: DataTableColumns<ResponsePointOrder2UserModel | ResponsePoint
title: '时间', title: '时间',
key: 'time', key: 'time',
sorter: 'default', sorter: 'default',
minWidth: 80,
render: (row: ResponsePointOrder2UserModel | ResponsePointOrder2OwnerModel) => { render: (row: ResponsePointOrder2UserModel | ResponsePointOrder2OwnerModel) => {
return h(NTime, { time: row.createAt }) return h(NTooltip, null, {
trigger: () => h(NTime, { time: row.createAt, type: 'relative' }),
default: () => h(NTime, { time: row.createAt }),
})
}, },
}, },
{ {
@@ -171,6 +175,7 @@ const orderColumn: DataTableColumns<ResponsePointOrder2UserModel | ResponsePoint
{ {
title: '地址', title: '地址',
key: 'address', key: 'address',
minWidth: 250,
render: (row: ResponsePointOrder2UserModel | ResponsePointOrder2OwnerModel) => { render: (row: ResponsePointOrder2UserModel | ResponsePointOrder2OwnerModel) => {
const collectUrl = const collectUrl =
row.instanceOf == 'user' ? row.goods.collectUrl : props.goods?.find((g) => g.id == row.goodsId)?.collectUrl row.instanceOf == 'user' ? row.goods.collectUrl : props.goods?.find((g) => g.id == row.goodsId)?.collectUrl
@@ -188,6 +193,7 @@ const orderColumn: DataTableColumns<ResponsePointOrder2UserModel | ResponsePoint
{ {
title: '快递信息', title: '快递信息',
key: 'express', key: 'express',
minWidth: 150,
render: (row: ResponsePointOrder2UserModel | ResponsePointOrder2OwnerModel) => { render: (row: ResponsePointOrder2UserModel | ResponsePointOrder2OwnerModel) => {
if (row.type == GoodsTypes.Physical) { if (row.type == GoodsTypes.Physical) {
return row.trackingNumber return row.trackingNumber
@@ -304,6 +310,7 @@ onMounted(() => {
:columns="orderColumn" :columns="orderColumn"
:data="order" :data="order"
:pagination="{ showSizePicker: true, pageSizes: [10, 25, 50, 100], defaultPageSize: 10, size: 'small' }" :pagination="{ showSizePicker: true, pageSizes: [10, 25, 50, 100], defaultPageSize: 10, size: 'small' }"
size="small"
> >
</NDataTable> </NDataTable>
<NModal <NModal

View File

@@ -426,7 +426,7 @@ onMounted(() => {})
<PointOrderManage :goods="goods" /> <PointOrderManage :goods="goods" />
</NTabPane> </NTabPane>
<NTabPane name="users" tab="用户" display-directive="show:lazy"> <NTabPane name="users" tab="用户" display-directive="show:lazy">
<PointUserManage /> <PointUserManage :goods="goods" />
</NTabPane> </NTabPane>
<NTabPane name="settings" tab="设置" display-directive="show:lazy"> <NTabPane name="settings" tab="设置" display-directive="show:lazy">
<PointSettings /> <PointSettings />

View File

@@ -1,7 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
import { ResponsePointHisrotyModel, ResponsePointOrder2OwnerModel, ResponsePointUserModel } from '@/api/api-models' import {
ResponsePointGoodModel,
ResponsePointHisrotyModel,
ResponsePointOrder2OwnerModel,
ResponsePointUserModel,
} from '@/api/api-models'
import { QueryGetAPI } from '@/api/query' import { QueryGetAPI } from '@/api/query'
import PointHistoryCard from '@/components/manage/PointHistoryCard.vue' import PointHistoryCard from '@/components/manage/PointHistoryCard.vue'
import PointOrderCard from '@/components/manage/PointOrderCard.vue'
import { POINT_API_URL } from '@/data/constants' import { POINT_API_URL } from '@/data/constants'
import { useAuthStore } from '@/store/useAuthStore' import { useAuthStore } from '@/store/useAuthStore'
import { import {
@@ -30,6 +36,7 @@ import { h, onMounted, ref } from 'vue'
const props = defineProps<{ const props = defineProps<{
user: ResponsePointUserModel user: ResponsePointUserModel
goods: ResponsePointGoodModel[]
}>() }>()
const message = useMessage() const message = useMessage()
@@ -174,9 +181,7 @@ onMounted(async () => {
<template v-if="orders.length == 0"> <template v-if="orders.length == 0">
<NEmpty description="暂无订单" /> <NEmpty description="暂无订单" />
</template> </template>
<NList v-else> <PointOrderCard v-else :order="orders" type="owner" :goods="goods" />
<NListItem v-for="order in orders" v-bind:key="order.id"> </NListItem>
</NList>
</NSpin> </NSpin>
<NDivider> 积分历史 </NDivider> <NDivider> 积分历史 </NDivider>
<NSpin :show="isLoading"> <NSpin :show="isLoading">

View File

@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { ResponsePointUserModel } from '@/api/api-models' import { ResponsePointGoodModel, ResponsePointUserModel } from '@/api/api-models'
import { QueryGetAPI } from '@/api/query' import { QueryGetAPI } from '@/api/query'
import { POINT_API_URL } from '@/data/constants' import { POINT_API_URL } from '@/data/constants'
import { import {
@@ -26,6 +26,10 @@ import { computed, h, onMounted, ref } from 'vue'
import PointUserDetailCard from './PointUserDetailCard.vue' import PointUserDetailCard from './PointUserDetailCard.vue'
import { useStorage } from '@vueuse/core' import { useStorage } from '@vueuse/core'
const props = defineProps<{
goods: ResponsePointGoodModel[]
}>()
type PointUserSettings = { type PointUserSettings = {
onlyAuthed: boolean onlyAuthed: boolean
} }
@@ -171,12 +175,12 @@ onMounted(async () => {
<NModal <NModal
v-model:show="showModal" v-model:show="showModal"
preset="card" preset="card"
style="max-width: 600px; min-width: 400px" style="max-width: 1000px; min-width: 400px"
title="用户详情" title="用户详情"
content-style="padding: 0" content-style="padding: 0"
> >
<NScrollbar style="max-height: 80vh"> <NScrollbar style="max-height: 80vh">
<PointUserDetailCard v-if="currentUser" :user="currentUser" :authInfo="currentUser.info" /> <PointUserDetailCard v-if="currentUser" :user="currentUser" :authInfo="currentUser.info" :goods="goods" />
</NScrollbar> </NScrollbar>
</NModal> </NModal>
</template> </template>