diff --git a/apps/web-antd/src/components/dict-tag/dict-tag.vue b/apps/web-antd/src/components/dict-tag/dict-tag.vue index fb26b4ae..7d9a5f1f 100644 --- a/apps/web-antd/src/components/dict-tag/dict-tag.vue +++ b/apps/web-antd/src/components/dict-tag/dict-tag.vue @@ -23,6 +23,11 @@ interface DictTagProps { const props = defineProps(); +function isHexColor(color: string) { + const reg = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i; + return reg.test(color); +} + /** 获取字典标签 */ const dictTag = computed(() => { // 校验参数有效性 @@ -66,7 +71,16 @@ const dictTag = computed(() => { diff --git a/apps/web-antd/src/components/table-action/table-action.vue b/apps/web-antd/src/components/table-action/table-action.vue index 7595b87c..fe0bfe8f 100644 --- a/apps/web-antd/src/components/table-action/table-action.vue +++ b/apps/web-antd/src/components/table-action/table-action.vue @@ -43,28 +43,27 @@ const { hasAccessByCodes } = useAccess(); function isIfShow(action: ActionItem): boolean { const ifShow = action.ifShow; - let isIfShow = true; - if (isBoolean(ifShow)) { isIfShow = ifShow; } if (isFunction(ifShow)) { isIfShow = ifShow(action); } + if (isIfShow) { + isIfShow = + hasAccessByCodes(action.auth || []) || (action.auth || []).length === 0; + } return isIfShow; } const getActions = computed(() => { - return (toRaw(props.actions) || []) - .filter((action) => { - return ( - (hasAccessByCodes(action.auth || []) || - (action.auth || []).length === 0) && - isIfShow(action) - ); + const actions = toRaw(props.actions) || []; + return actions + .filter((action: ActionItem) => { + return isIfShow(action); }) - .map((action) => { + .map((action: ActionItem) => { const { popConfirm } = action; return { type: action.type || 'link', @@ -78,24 +77,21 @@ const getActions = computed(() => { }); const getDropdownList = computed((): any[] => { - return (toRaw(props.dropDownActions) || []) - .filter((action) => { - return ( - (hasAccessByCodes(action.auth || []) || - (action.auth || []).length === 0) && - isIfShow(action) - ); + const dropDownActions = toRaw(props.dropDownActions) || []; + return dropDownActions + .filter((action: ActionItem) => { + return isIfShow(action); }) - .map((action, index) => { + .map((action: ActionItem, index: number) => { const { label, popConfirm } = action; + delete action.icon; return { ...action, ...popConfirm, onConfirm: popConfirm?.confirm, onCancel: popConfirm?.cancel, text: label, - divider: - index < props.dropDownActions.length - 1 ? props.divider : false, + divider: index < dropDownActions.length - 1 ? props.divider : false, }; }); }); diff --git a/apps/web-antd/src/views/crm/business/data.ts b/apps/web-antd/src/views/crm/business/data.ts index 34b04a09..6993b9af 100644 --- a/apps/web-antd/src/views/crm/business/data.ts +++ b/apps/web-antd/src/views/crm/business/data.ts @@ -1,10 +1,11 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import { erpPriceMultiply } from '@vben/utils'; + import { getBusinessStatusTypeSimpleList } from '#/api/crm/business/status'; import { getCustomerSimpleList } from '#/api/crm/customer'; import { getSimpleUserList } from '#/api/system/user'; -import { erpPriceMultiply } from '#/utils'; /** 新增/修改的表单 */ export function useFormSchema(): VbenFormSchema[] { diff --git a/apps/web-antd/src/views/crm/business/modules/form.vue b/apps/web-antd/src/views/crm/business/modules/form.vue index 3a25fb66..b4ed6593 100644 --- a/apps/web-antd/src/views/crm/business/modules/form.vue +++ b/apps/web-antd/src/views/crm/business/modules/form.vue @@ -4,6 +4,7 @@ import type { CrmBusinessApi } from '#/api/crm/business'; import { computed, ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; +import { erpPriceMultiply } from '@vben/utils'; import { message } from 'ant-design-vue'; @@ -15,7 +16,6 @@ import { } from '#/api/crm/business'; import { BizTypeEnum } from '#/api/crm/permission'; import { $t } from '#/locales'; -import { erpPriceMultiply } from '#/utils'; import { ProductEditTable } from '#/views/crm/product'; import { useFormSchema } from '../data'; diff --git a/apps/web-antd/src/views/crm/contract/data.ts b/apps/web-antd/src/views/crm/contract/data.ts index 062823c6..651ddb08 100644 --- a/apps/web-antd/src/views/crm/contract/data.ts +++ b/apps/web-antd/src/views/crm/contract/data.ts @@ -1,12 +1,14 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import { erpPriceMultiply, floatToFixed2 } from '@vben/utils'; + import { z } from '#/adapter/form'; import { getSimpleBusinessList } from '#/api/crm/business'; import { getSimpleContactList } from '#/api/crm/contact'; import { getCustomerSimpleList } from '#/api/crm/customer'; import { getSimpleUserList } from '#/api/system/user'; -import { DICT_TYPE, erpPriceMultiply, floatToFixed2 } from '#/utils'; +import { DICT_TYPE } from '#/utils'; /** 新增/修改的表单 */ export function useFormSchema(): VbenFormSchema[] { diff --git a/apps/web-antd/src/views/crm/contract/modules/detail-data.ts b/apps/web-antd/src/views/crm/contract/modules/detail-data.ts index 5090cd3e..2421459a 100644 --- a/apps/web-antd/src/views/crm/contract/modules/detail-data.ts +++ b/apps/web-antd/src/views/crm/contract/modules/detail-data.ts @@ -3,11 +3,14 @@ import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; -import { formatDateTime } from '@vben/utils'; +import { + erpPriceInputFormatter, + floatToFixed2, + formatDateTime, +} from '@vben/utils'; import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE, erpPriceInputFormatter, floatToFixed2 } from '#/utils'; - +import { DICT_TYPE } from '#/utils'; /** 详情头部的配置 */ export function useDetailSchema(): DescriptionItemSchema[] { return [ diff --git a/apps/web-antd/src/views/crm/contract/modules/form.vue b/apps/web-antd/src/views/crm/contract/modules/form.vue index b96f22c0..3cc291a1 100644 --- a/apps/web-antd/src/views/crm/contract/modules/form.vue +++ b/apps/web-antd/src/views/crm/contract/modules/form.vue @@ -4,6 +4,7 @@ import type { CrmContractApi } from '#/api/crm/contract'; import { computed, ref } from 'vue'; import { useVbenForm, useVbenModal } from '@vben/common-ui'; +import { erpPriceMultiply } from '@vben/utils'; import { message } from 'ant-design-vue'; @@ -14,7 +15,6 @@ import { } from '#/api/crm/contract'; import { BizTypeEnum } from '#/api/crm/permission'; import { $t } from '#/locales'; -import { erpPriceMultiply } from '#/utils'; import { ProductEditTable } from '#/views/crm/product'; import { useFormSchema } from '../data'; diff --git a/apps/web-antd/src/views/crm/permission/modules/permission-list.vue b/apps/web-antd/src/views/crm/permission/modules/permission-list.vue index 68181af9..f240c365 100644 --- a/apps/web-antd/src/views/crm/permission/modules/permission-list.vue +++ b/apps/web-antd/src/views/crm/permission/modules/permission-list.vue @@ -140,7 +140,7 @@ async function handleQuit() { message.warning('你不是团队成员!'); return; } - await deleteSelfPermission(userPermission.id); + await deleteSelfPermission(userPermission.id as number); message.success('退出团队成员成功!'); emits('quitTeam'); } diff --git a/apps/web-antd/src/views/crm/product/modules/detail-data.ts b/apps/web-antd/src/views/crm/product/modules/detail-data.ts index c317444a..609612d4 100644 --- a/apps/web-antd/src/views/crm/product/modules/detail-data.ts +++ b/apps/web-antd/src/views/crm/product/modules/detail-data.ts @@ -3,8 +3,10 @@ import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; +import { erpPriceInputFormatter } from '@vben/utils'; + import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE, erpPriceInputFormatter } from '#/utils'; +import { DICT_TYPE } from '#/utils'; /** 详情页的字段 */ export function useDetailSchema(): DescriptionItemSchema[] { diff --git a/apps/web-antd/src/views/crm/product/modules/detail-list.vue b/apps/web-antd/src/views/crm/product/modules/detail-list.vue index 9dfb52ed..fe840fb6 100644 --- a/apps/web-antd/src/views/crm/product/modules/detail-list.vue +++ b/apps/web-antd/src/views/crm/product/modules/detail-list.vue @@ -4,11 +4,12 @@ import type { CrmProductApi } from '#/api/crm/product'; import { ref } from 'vue'; +import { erpPriceInputFormatter } from '@vben/utils'; + import { useVbenVxeGrid } from '#/adapter/vxe-table'; import { getBusiness } from '#/api/crm/business'; import { getContract } from '#/api/crm/contract'; import { BizTypeEnum } from '#/api/crm/permission'; -import { erpPriceInputFormatter } from '#/utils'; import { useDetailListColumns } from './detail-data'; diff --git a/apps/web-antd/src/views/crm/product/modules/product-table.vue b/apps/web-antd/src/views/crm/product/modules/product-table.vue index 6ef20635..a9083b61 100644 --- a/apps/web-antd/src/views/crm/product/modules/product-table.vue +++ b/apps/web-antd/src/views/crm/product/modules/product-table.vue @@ -5,12 +5,13 @@ import type { CrmProductApi } from '#/api/crm/product'; import { nextTick, onMounted, ref, watch } from 'vue'; +import { erpPriceMultiply } from '@vben/utils'; + import { InputNumber, Select } from 'ant-design-vue'; import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { BizTypeEnum } from '#/api/crm/permission'; import { getProductSimpleList } from '#/api/crm/product'; -import { erpPriceMultiply } from '#/utils'; import { useProductEditTableColumns } from '../data'; diff --git a/apps/web-antd/src/views/crm/receivable/plan/data.ts b/apps/web-antd/src/views/crm/receivable/plan/data.ts index 6f6eec23..2ae3fe87 100644 --- a/apps/web-antd/src/views/crm/receivable/plan/data.ts +++ b/apps/web-antd/src/views/crm/receivable/plan/data.ts @@ -1,8 +1,10 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import { floatToFixed2 } from '@vben/utils'; + import { getCustomerSimpleList } from '#/api/crm/customer'; -import { DICT_TYPE, floatToFixed2, getDictOptions } from '#/utils'; +import { DICT_TYPE, getDictOptions } from '#/utils'; /** 新增/修改的表单 */ export function useFormSchema(): VbenFormSchema[] { diff --git a/apps/web-antd/src/views/pay/demo/withdraw/index.vue b/apps/web-antd/src/views/pay/demo/withdraw/index.vue index f92e408c..5243bd4e 100644 --- a/apps/web-antd/src/views/pay/demo/withdraw/index.vue +++ b/apps/web-antd/src/views/pay/demo/withdraw/index.vue @@ -3,6 +3,7 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { DemoWithdrawApi } from '#/api/pay/demo/withdraw'; import { DocAlert, Page, useVbenModal } from '@vben/common-ui'; +import { floatToFixed2 } from '@vben/utils'; import { message, Tag } from 'ant-design-vue'; @@ -12,7 +13,6 @@ import { transferDemoWithdraw, } from '#/api/pay/demo/withdraw'; import { $t } from '#/locales'; -import { floatToFixed2 } from '#/utils'; import { useGridColumns } from './data'; import Form from './modules/form.vue'; diff --git a/apps/web-antd/src/views/pay/order/modules/detail.vue b/apps/web-antd/src/views/pay/order/modules/detail.vue index d91fc9d1..a7b604fe 100644 --- a/apps/web-antd/src/views/pay/order/modules/detail.vue +++ b/apps/web-antd/src/views/pay/order/modules/detail.vue @@ -4,13 +4,13 @@ import type { PayOrderApi } from '#/api/pay/order'; import { ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; -import { formatDateTime } from '@vben/utils'; +import { floatToFixed2, formatDateTime } from '@vben/utils'; import { Descriptions, Divider, Tag } from 'ant-design-vue'; import { getOrder } from '#/api/pay/order'; import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE, floatToFixed2 } from '#/utils'; +import { DICT_TYPE } from '#/utils'; const detailData = ref(); diff --git a/apps/web-antd/src/views/pay/transfer/data.ts b/apps/web-antd/src/views/pay/transfer/data.ts index 06f875b6..6b74bde2 100644 --- a/apps/web-antd/src/views/pay/transfer/data.ts +++ b/apps/web-antd/src/views/pay/transfer/data.ts @@ -4,17 +4,12 @@ import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; -import { formatDateTime } from '@vben/utils'; +import { floatToFixed2, formatDateTime } from '@vben/utils'; import { Tag } from 'ant-design-vue'; import { DictTag } from '#/components/dict-tag'; -import { - DICT_TYPE, - floatToFixed2, - getDictOptions, - getRangePickerDefaultProps, -} from '#/utils'; +import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; /** 列表的搜索表单 */ export function useGridFormSchema(): VbenFormSchema[] {