diff --git a/apps/web-antd/src/components/area/area-cascader.vue b/apps/web-antd/src/components/area/area-cascader.vue
new file mode 100644
index 000000000..d015cc922
--- /dev/null
+++ b/apps/web-antd/src/components/area/area-cascader.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
diff --git a/apps/web-antd/src/components/area/index.ts b/apps/web-antd/src/components/area/index.ts
new file mode 100644
index 000000000..013c0735a
--- /dev/null
+++ b/apps/web-antd/src/components/area/index.ts
@@ -0,0 +1 @@
+export { default as AreaCascader } from './area-cascader.vue';
diff --git a/apps/web-antd/src/views/crm/clue/data.ts b/apps/web-antd/src/views/crm/clue/data.ts
index 2cd328dde..018c0791d 100644
--- a/apps/web-antd/src/views/crm/clue/data.ts
+++ b/apps/web-antd/src/views/crm/clue/data.ts
@@ -1,12 +1,14 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -119,11 +121,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ class: '!w-full',
placeholder: '请选择地址',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antd/src/views/crm/contact/data.ts b/apps/web-antd/src/views/crm/contact/data.ts
index 61a68c44c..b798a1227 100644
--- a/apps/web-antd/src/views/crm/contact/data.ts
+++ b/apps/web-antd/src/views/crm/contact/data.ts
@@ -1,14 +1,16 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
import { getSimpleContactList } from '#/api/crm/contact';
import { getCustomerSimpleList } from '#/api/crm/customer';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
/** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] {
@@ -143,11 +145,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ class: '!w-full',
placeholder: '请选择地址',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antd/src/views/crm/customer/data.ts b/apps/web-antd/src/views/crm/customer/data.ts
index baabb5685..199eac0d9 100644
--- a/apps/web-antd/src/views/crm/customer/data.ts
+++ b/apps/web-antd/src/views/crm/customer/data.ts
@@ -1,13 +1,15 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { z } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -128,12 +130,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
- placeholder: '请选择地址',
allowClear: true,
+ class: '!w-full',
+ placeholder: '请选择地址',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/data.ts b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/data.ts
index 666db4f8f..ab6c04ba9 100644
--- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/data.ts
+++ b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/data.ts
@@ -1,12 +1,14 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { z } from '#/adapter/form';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -62,12 +64,13 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '门店所在地区',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
rules: 'required',
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ class: '!w-full',
placeholder: '请选择省市区',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antd/src/views/mall/trade/order/data.ts b/apps/web-antd/src/views/mall/trade/order/data.ts
index 9b38da130..de2716f99 100644
--- a/apps/web-antd/src/views/mall/trade/order/data.ts
+++ b/apps/web-antd/src/views/mall/trade/order/data.ts
@@ -2,13 +2,15 @@ import type { VbenFormSchema } from '#/adapter/form';
import type { VxeGridPropTypes } from '#/adapter/vxe-table';
import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore';
+import { markRaw } from 'vue';
+
import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { convertToInteger, formatToFraction } from '@vben/utils';
import { getSimpleDeliveryExpressList } from '#/api/mall/trade/delivery/express';
import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore';
-import { getAreaTree } from '#/api/system/area';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 关联数据 */
@@ -368,14 +370,13 @@ export function useAddressFormSchema(): VbenFormSchema[] {
{
fieldName: 'receiverAreaId',
label: '所在地',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ allowClear: true,
+ changeOnSelect: true,
+ class: '!w-full',
placeholder: '请选择收件人所在地',
- treeDefaultExpandAll: true,
+ showSearch: true,
},
rules: 'required',
},
diff --git a/apps/web-antd/src/views/member/user/data.ts b/apps/web-antd/src/views/member/user/data.ts
index 414227f46..155b7f5aa 100644
--- a/apps/web-antd/src/views/member/user/data.ts
+++ b/apps/web-antd/src/views/member/user/data.ts
@@ -1,7 +1,7 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
-import { h } from 'vue';
+import { h, markRaw } from 'vue';
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
@@ -13,7 +13,7 @@ import { z } from '#/adapter/form';
import { getSimpleGroupList } from '#/api/member/group';
import { getSimpleLevelList } from '#/api/member/level';
import { getSimpleTagList } from '#/api/member/tag';
-import { getAreaTree } from '#/api/system/area';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -102,11 +102,13 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '所在地',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ changeOnSelect: true,
+ class: '!w-full',
placeholder: '请选择所在地',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antdv-next/src/components/area/area-cascader.vue b/apps/web-antdv-next/src/components/area/area-cascader.vue
new file mode 100644
index 000000000..d015cc922
--- /dev/null
+++ b/apps/web-antdv-next/src/components/area/area-cascader.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
diff --git a/apps/web-antdv-next/src/components/area/index.ts b/apps/web-antdv-next/src/components/area/index.ts
new file mode 100644
index 000000000..013c0735a
--- /dev/null
+++ b/apps/web-antdv-next/src/components/area/index.ts
@@ -0,0 +1 @@
+export { default as AreaCascader } from './area-cascader.vue';
diff --git a/apps/web-antdv-next/src/views/crm/clue/data.ts b/apps/web-antdv-next/src/views/crm/clue/data.ts
index 0cef1f17a..896439ca4 100644
--- a/apps/web-antdv-next/src/views/crm/clue/data.ts
+++ b/apps/web-antdv-next/src/views/crm/clue/data.ts
@@ -1,12 +1,14 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -119,11 +121,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ class: '!w-full',
placeholder: '请选择地址',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antdv-next/src/views/crm/contact/data.ts b/apps/web-antdv-next/src/views/crm/contact/data.ts
index 584ad0ead..f6e49e07e 100644
--- a/apps/web-antdv-next/src/views/crm/contact/data.ts
+++ b/apps/web-antdv-next/src/views/crm/contact/data.ts
@@ -1,14 +1,16 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
import { getSimpleContactList } from '#/api/crm/contact';
import { getCustomerSimpleList } from '#/api/crm/customer';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
/** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] {
@@ -143,11 +145,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ class: '!w-full',
placeholder: '请选择地址',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antdv-next/src/views/crm/customer/data.ts b/apps/web-antdv-next/src/views/crm/customer/data.ts
index 3dc41570b..cb2ca7528 100644
--- a/apps/web-antdv-next/src/views/crm/customer/data.ts
+++ b/apps/web-antdv-next/src/views/crm/customer/data.ts
@@ -1,13 +1,15 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { z } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -128,12 +130,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
- placeholder: '请选择地址',
allowClear: true,
+ class: '!w-full',
+ placeholder: '请选择地址',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antdv-next/src/views/mall/trade/delivery/pickUpStore/data.ts b/apps/web-antdv-next/src/views/mall/trade/delivery/pickUpStore/data.ts
index fadb062ad..4af395e1b 100644
--- a/apps/web-antdv-next/src/views/mall/trade/delivery/pickUpStore/data.ts
+++ b/apps/web-antdv-next/src/views/mall/trade/delivery/pickUpStore/data.ts
@@ -1,12 +1,14 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { z } from '#/adapter/form';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -62,12 +64,13 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '门店所在地区',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
rules: 'required',
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ class: '!w-full',
placeholder: '请选择省市区',
+ showSearch: true,
},
},
{
diff --git a/apps/web-antdv-next/src/views/mall/trade/order/data.ts b/apps/web-antdv-next/src/views/mall/trade/order/data.ts
index 9b38da130..de2716f99 100644
--- a/apps/web-antdv-next/src/views/mall/trade/order/data.ts
+++ b/apps/web-antdv-next/src/views/mall/trade/order/data.ts
@@ -2,13 +2,15 @@ import type { VbenFormSchema } from '#/adapter/form';
import type { VxeGridPropTypes } from '#/adapter/vxe-table';
import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore';
+import { markRaw } from 'vue';
+
import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { convertToInteger, formatToFraction } from '@vben/utils';
import { getSimpleDeliveryExpressList } from '#/api/mall/trade/delivery/express';
import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore';
-import { getAreaTree } from '#/api/system/area';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 关联数据 */
@@ -368,14 +370,13 @@ export function useAddressFormSchema(): VbenFormSchema[] {
{
fieldName: 'receiverAreaId',
label: '所在地',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ allowClear: true,
+ changeOnSelect: true,
+ class: '!w-full',
placeholder: '请选择收件人所在地',
- treeDefaultExpandAll: true,
+ showSearch: true,
},
rules: 'required',
},
diff --git a/apps/web-antdv-next/src/views/member/user/data.ts b/apps/web-antdv-next/src/views/member/user/data.ts
index 9b49c8d6b..7baf28deb 100644
--- a/apps/web-antdv-next/src/views/member/user/data.ts
+++ b/apps/web-antdv-next/src/views/member/user/data.ts
@@ -1,7 +1,7 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
-import { h } from 'vue';
+import { h, markRaw } from 'vue';
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
@@ -13,7 +13,7 @@ import { z } from '#/adapter/form';
import { getSimpleGroupList } from '#/api/member/group';
import { getSimpleLevelList } from '#/api/member/level';
import { getSimpleTagList } from '#/api/member/tag';
-import { getAreaTree } from '#/api/system/area';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -102,11 +102,13 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '所在地',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- fieldNames: { label: 'name', value: 'id', children: 'children' },
+ allowClear: true,
+ changeOnSelect: true,
+ class: '!w-full',
placeholder: '请选择所在地',
+ showSearch: true,
},
},
{
diff --git a/apps/web-ele/src/components/area/area-cascader.vue b/apps/web-ele/src/components/area/area-cascader.vue
new file mode 100644
index 000000000..8850b6e00
--- /dev/null
+++ b/apps/web-ele/src/components/area/area-cascader.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
diff --git a/apps/web-ele/src/components/area/index.ts b/apps/web-ele/src/components/area/index.ts
new file mode 100644
index 000000000..013c0735a
--- /dev/null
+++ b/apps/web-ele/src/components/area/index.ts
@@ -0,0 +1 @@
+export { default as AreaCascader } from './area-cascader.vue';
diff --git a/apps/web-ele/src/views/crm/clue/data.ts b/apps/web-ele/src/views/crm/clue/data.ts
index 36dab785b..af6f906b8 100644
--- a/apps/web-ele/src/views/crm/clue/data.ts
+++ b/apps/web-ele/src/views/crm/clue/data.ts
@@ -1,12 +1,14 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -119,12 +121,11 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ class: '!w-full',
+ clearable: true,
+ filterable: true,
placeholder: '请选择地址',
},
},
diff --git a/apps/web-ele/src/views/crm/contact/data.ts b/apps/web-ele/src/views/crm/contact/data.ts
index 6b3a2f9d6..a3631d915 100644
--- a/apps/web-ele/src/views/crm/contact/data.ts
+++ b/apps/web-ele/src/views/crm/contact/data.ts
@@ -1,14 +1,16 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
import { getSimpleContactList } from '#/api/crm/contact';
import { getCustomerSimpleList } from '#/api/crm/customer';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
/** 新增/修改的表单 */
export function useFormSchema(): VbenFormSchema[] {
@@ -141,12 +143,11 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ class: '!w-full',
+ clearable: true,
+ filterable: true,
placeholder: '请选择地址',
},
},
diff --git a/apps/web-ele/src/views/crm/customer/data.ts b/apps/web-ele/src/views/crm/customer/data.ts
index 322352e76..098c2deb6 100644
--- a/apps/web-ele/src/views/crm/customer/data.ts
+++ b/apps/web-ele/src/views/crm/customer/data.ts
@@ -1,13 +1,15 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { z } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { useUserStore } from '@vben/stores';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -128,14 +130,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '地址',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ class: '!w-full',
+ clearable: true,
+ filterable: true,
placeholder: '请选择地址',
- allowClear: true,
},
},
{
diff --git a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/data.ts b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/data.ts
index 19922a003..6a061196c 100644
--- a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/data.ts
+++ b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/data.ts
@@ -1,12 +1,14 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import { markRaw } from 'vue';
+
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { z } from '#/adapter/form';
-import { getAreaTree } from '#/api/system/area';
import { getSimpleUserList } from '#/api/system/user';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -62,13 +64,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '门店所在地区',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
rules: 'required',
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ class: '!w-full',
+ clearable: true,
+ filterable: true,
placeholder: '请选择省市区',
},
},
diff --git a/apps/web-ele/src/views/mall/trade/order/data.ts b/apps/web-ele/src/views/mall/trade/order/data.ts
index e94a07b4e..15a592672 100644
--- a/apps/web-ele/src/views/mall/trade/order/data.ts
+++ b/apps/web-ele/src/views/mall/trade/order/data.ts
@@ -2,13 +2,15 @@ import type { VbenFormSchema } from '#/adapter/form';
import type { VxeGridPropTypes } from '#/adapter/vxe-table';
import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore';
+import { markRaw } from 'vue';
+
import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { convertToInteger, formatToFraction } from '@vben/utils';
import { getSimpleDeliveryExpressList } from '#/api/mall/trade/delivery/express';
import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore';
-import { getAreaTree } from '#/api/system/area';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 关联数据 */
@@ -369,14 +371,13 @@ export function useAddressFormSchema(): VbenFormSchema[] {
{
fieldName: 'receiverAreaId',
label: '所在地',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ checkStrictly: true,
+ class: '!w-full',
+ clearable: true,
+ filterable: true,
placeholder: '请选择收件人所在地',
- defaultExpandAll: true,
},
rules: 'required',
},
diff --git a/apps/web-ele/src/views/member/user/data.ts b/apps/web-ele/src/views/member/user/data.ts
index 5099ddf92..424fd1ac0 100644
--- a/apps/web-ele/src/views/member/user/data.ts
+++ b/apps/web-ele/src/views/member/user/data.ts
@@ -1,7 +1,7 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
-import { h } from 'vue';
+import { h, markRaw } from 'vue';
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
@@ -13,7 +13,7 @@ import { z } from '#/adapter/form';
import { getSimpleGroupList } from '#/api/member/group';
import { getSimpleLevelList } from '#/api/member/level';
import { getSimpleTagList } from '#/api/member/tag';
-import { getAreaTree } from '#/api/system/area';
+import { AreaCascader } from '#/components/area';
import { getRangePickerDefaultProps } from '#/utils';
/** 新增/修改的表单 */
@@ -99,12 +99,12 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'areaId',
label: '所在地',
- component: 'ApiTreeSelect',
+ component: markRaw(AreaCascader),
componentProps: {
- api: getAreaTree,
- labelField: 'name',
- valueField: 'id',
- childrenField: 'children',
+ checkStrictly: true,
+ class: '!w-full',
+ clearable: true,
+ filterable: true,
placeholder: '请选择所在地',
},
},