feat:统一两端 data.ts 关联数据的加载逻辑(写法)

This commit is contained in:
YunaiV
2025-10-18 17:14:28 +08:00
parent 2288748ca8
commit 769510c4f6
12 changed files with 29 additions and 60 deletions

View File

@@ -9,12 +9,9 @@ import { z } from '#/adapter/form';
import { getSimpleArticleCategoryList } from '#/api/mall/promotion/articleCategory'; import { getSimpleArticleCategoryList } from '#/api/mall/promotion/articleCategory';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
/** 关联数据 */
let categoryList: MallArticleCategoryApi.ArticleCategory[] = []; let categoryList: MallArticleCategoryApi.ArticleCategory[] = [];
async function getCategoryData() { getSimpleArticleCategoryList().then((data) => (categoryList = data));
categoryList = await getSimpleArticleCategoryList();
}
getCategoryData();
/** 新增/修改的表单 */ /** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] { export function useFormSchema(): VbenFormSchema[] {

View File

@@ -10,11 +10,9 @@ import { useUserStore } from '@vben/stores';
import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore'; import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
// TODO @芋艿:统一风格; /** 关联数据 **/
const userStore = useUserStore(); const userStore = useUserStore();
const pickUpStoreList = ref<MallDeliveryPickUpStoreApi.PickUpStore[]>([]); const pickUpStoreList = ref<MallDeliveryPickUpStoreApi.PickUpStore[]>([]);
/** 自提门店列表 */
getSimpleDeliveryPickUpStoreList().then((res) => { getSimpleDeliveryPickUpStoreList().then((res) => {
pickUpStoreList.value = res; pickUpStoreList.value = res;
// 移除自己无法核销的门店 // 移除自己无法核销的门店

View File

@@ -86,7 +86,6 @@ export function useFormSchema(): VbenFormSchema[] {
rules: 'required', rules: 'required',
componentProps: { componentProps: {
format: 'HH:mm', format: 'HH:mm',
placeholder: ['开始时间', '结束时间'],
}, },
}, },
{ {
@@ -195,7 +194,6 @@ export function useGridFormSchema(): VbenFormSchema[] {
componentProps: { componentProps: {
...getRangePickerDefaultProps(), ...getRangePickerDefaultProps(),
allowClear: true, allowClear: true,
placeholder: ['开始时间', '结束时间'],
}, },
}, },
]; ];

View File

@@ -2,8 +2,6 @@ import type { VbenFormSchema } from '#/adapter/form';
import type { VxeGridPropTypes } from '#/adapter/vxe-table'; import type { VxeGridPropTypes } from '#/adapter/vxe-table';
import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore'; import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore';
import { ref } from 'vue';
import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants'; import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks'; import { getDictOptions } from '@vben/hooks';
import { convertToInteger, formatToFraction } from '@vben/utils'; import { convertToInteger, formatToFraction } from '@vben/utils';
@@ -13,10 +11,10 @@ import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pick
import { getAreaTree } from '#/api/system/area'; import { getAreaTree } from '#/api/system/area';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
const pickUpStoreList = ref<MallDeliveryPickUpStoreApi.PickUpStore[]>([]); /** 关联数据 */
let pickUpStoreList: MallDeliveryPickUpStoreApi.PickUpStore[] = [];
getSimpleDeliveryPickUpStoreList().then((res) => { getSimpleDeliveryPickUpStoreList().then((data) => {
pickUpStoreList.value = res; pickUpStoreList = data;
}); });
/** 列表的搜索表单 */ /** 列表的搜索表单 */
@@ -227,9 +225,9 @@ export function useGridColumns(): VxeGridPropTypes.Columns {
return `买家:${row.user?.nickname} / 收货人: ${row.receiverName} ${row.receiverMobile}${row.receiverAreaName}${row.receiverDetailAddress}`; return `买家:${row.user?.nickname} / 收货人: ${row.receiverName} ${row.receiverMobile}${row.receiverAreaName}${row.receiverDetailAddress}`;
} }
if (row.deliveryType === DeliveryTypeEnum.PICK_UP.type) { if (row.deliveryType === DeliveryTypeEnum.PICK_UP.type) {
return `门店名称:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.name} / return `门店名称:${pickUpStoreList.find((item) => item.id === row.pickUpStoreId)?.name} /
门店手机:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.phone} / 门店手机:${pickUpStoreList.find((item) => item.id === row.pickUpStoreId)?.phone} /
自提门店:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.detailAddress} 自提门店:${pickUpStoreList.find((item) => item.id === row.pickUpStoreId)?.detailAddress}
`; `;
} }
return ''; return '';

View File

@@ -11,12 +11,9 @@ import { z } from '#/adapter/form';
import { getDeptList } from '#/api/system/dept'; import { getDeptList } from '#/api/system/dept';
import { getSimpleUserList } from '#/api/system/user'; import { getSimpleUserList } from '#/api/system/user';
/** 关联数据 */
let userList: SystemUserApi.User[] = []; let userList: SystemUserApi.User[] = [];
async function getUserData() { getSimpleUserList().then((data) => (userList = data));
userList = await getSimpleUserList();
}
getUserData();
/** 新增/修改的表单 */ /** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] { export function useFormSchema(): VbenFormSchema[] {

View File

@@ -9,14 +9,9 @@ import { z } from '#/adapter/form';
import { getTenantPackageList } from '#/api/system/tenant-package'; import { getTenantPackageList } from '#/api/system/tenant-package';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
// TODO @xingyu这个不用 ref 么? /** 关联数据 */
let tenantPackageList: SystemTenantPackageApi.TenantPackage[] = []; let tenantPackageList: SystemTenantPackageApi.TenantPackage[] = [];
getTenantPackageList().then((data) => (tenantPackageList = data));
async function getTenantPackageData() {
tenantPackageList = await getTenantPackageList();
}
getTenantPackageData();
/** 新增/修改的表单 */ /** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] { export function useFormSchema(): VbenFormSchema[] {

View File

@@ -9,12 +9,9 @@ import { z } from '#/adapter/form';
import { getSimpleArticleCategoryList } from '#/api/mall/promotion/articleCategory'; import { getSimpleArticleCategoryList } from '#/api/mall/promotion/articleCategory';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
/** 关联数据 */
let categoryList: MallArticleCategoryApi.ArticleCategory[] = []; let categoryList: MallArticleCategoryApi.ArticleCategory[] = [];
async function getCategoryData() { getSimpleArticleCategoryList().then((data) => (categoryList = data));
categoryList = await getSimpleArticleCategoryList();
}
getCategoryData();
/** 新增/修改的表单 */ /** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] { export function useFormSchema(): VbenFormSchema[] {

View File

@@ -10,11 +10,9 @@ import { useUserStore } from '@vben/stores';
import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore'; import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
// TODO @芋艿:统一风格; /** 关联数据 */
const userStore = useUserStore(); const userStore = useUserStore();
const pickUpStoreList = ref<MallDeliveryPickUpStoreApi.PickUpStore[]>([]); const pickUpStoreList = ref<MallDeliveryPickUpStoreApi.PickUpStore[]>([]);
/** 自提门店列表 */
getSimpleDeliveryPickUpStoreList().then((res) => { getSimpleDeliveryPickUpStoreList().then((res) => {
pickUpStoreList.value = res; pickUpStoreList.value = res;
// 移除自己无法核销的门店 // 移除自己无法核销的门店

View File

@@ -2,8 +2,6 @@ import type { VbenFormSchema } from '#/adapter/form';
import type { VxeGridPropTypes } from '#/adapter/vxe-table'; import type { VxeGridPropTypes } from '#/adapter/vxe-table';
import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore'; import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore';
import { ref } from 'vue';
import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants'; import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks'; import { getDictOptions } from '@vben/hooks';
import { convertToInteger, formatToFraction } from '@vben/utils'; import { convertToInteger, formatToFraction } from '@vben/utils';
@@ -13,10 +11,10 @@ import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pick
import { getAreaTree } from '#/api/system/area'; import { getAreaTree } from '#/api/system/area';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
const pickUpStoreList = ref<MallDeliveryPickUpStoreApi.PickUpStore[]>([]); /** 关联数据 */
let pickUpStoreList: MallDeliveryPickUpStoreApi.PickUpStore[] = [];
getSimpleDeliveryPickUpStoreList().then((res) => { getSimpleDeliveryPickUpStoreList().then((data) => {
pickUpStoreList.value = res; pickUpStoreList = data;
}); });
/** 列表的搜索表单 */ /** 列表的搜索表单 */
@@ -225,9 +223,9 @@ export function useGridColumns(): VxeGridPropTypes.Columns {
return `买家:${row.user?.nickname} / 收货人: ${row.receiverName} ${row.receiverMobile}${row.receiverAreaName}${row.receiverDetailAddress}`; return `买家:${row.user?.nickname} / 收货人: ${row.receiverName} ${row.receiverMobile}${row.receiverAreaName}${row.receiverDetailAddress}`;
} }
if (row.deliveryType === DeliveryTypeEnum.PICK_UP.type) { if (row.deliveryType === DeliveryTypeEnum.PICK_UP.type) {
return `门店名称:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.name} / return `门店名称:${pickUpStoreList.find((item) => item.id === row.pickUpStoreId)?.name} /
门店手机:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.phone} / 门店手机:${pickUpStoreList.find((item) => item.id === row.pickUpStoreId)?.phone} /
自提门店:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.detailAddress} 自提门店:${pickUpStoreList.find((item) => item.id === row.pickUpStoreId)?.detailAddress}
`; `;
} }
return ''; return '';

View File

@@ -11,12 +11,9 @@ import { z } from '#/adapter/form';
import { getDeptList } from '#/api/system/dept'; import { getDeptList } from '#/api/system/dept';
import { getSimpleUserList } from '#/api/system/user'; import { getSimpleUserList } from '#/api/system/user';
/** 关联数据 */
let userList: SystemUserApi.User[] = []; let userList: SystemUserApi.User[] = [];
async function getUserData() { getSimpleUserList().then((data) => (userList = data));
userList = await getSimpleUserList();
}
getUserData();
/** 新增/修改的表单 */ /** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] { export function useFormSchema(): VbenFormSchema[] {

View File

@@ -74,6 +74,7 @@ export function useFormSchema(): VbenFormSchema[] {
component: 'Textarea', component: 'Textarea',
componentProps: { componentProps: {
placeholder: '请输入模板内容', placeholder: '请输入模板内容',
rows: 4,
}, },
rules: 'required', rules: 'required',
}, },

View File

@@ -9,14 +9,9 @@ import { z } from '#/adapter/form';
import { getTenantPackageList } from '#/api/system/tenant-package'; import { getTenantPackageList } from '#/api/system/tenant-package';
import { getRangePickerDefaultProps } from '#/utils'; import { getRangePickerDefaultProps } from '#/utils';
// TODO @xingyu这个不用 ref 么? /** 关联数据 */
let tenantPackageList: SystemTenantPackageApi.TenantPackage[] = []; let tenantPackageList: SystemTenantPackageApi.TenantPackage[] = [];
getTenantPackageList().then((data) => (tenantPackageList = data));
async function getTenantPackageData() {
tenantPackageList = await getTenantPackageList();
}
getTenantPackageData();
/** 新增/修改的表单 */ /** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] { export function useFormSchema(): VbenFormSchema[] {