fix(web-antdv-next): sync remaining upstream fixes

pull/355/head
XuZhiqiang 2026-06-04 16:22:52 +08:00
parent f6a8c6e652
commit 03f167b7d0
96 changed files with 294 additions and 190 deletions

View File

@ -13,6 +13,7 @@ export namespace MemberUserApi {
loginIp: string;
mark: string;
mobile: string;
email?: string;
name?: string;
nickname?: string;
registerIp: string;

View File

@ -105,9 +105,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
/** 解绑账号 */
function onUnbind(row: SystemSocialUserApi.SocialUser) {
confirm({
content: `确定解绑[${getDictLabel(DICT_TYPE.SYSTEM_SOCIAL_TYPE, row.type)}]平台的[${row.openid}]账号吗?`,
}).then(async () => {
confirm(`确定解绑[${getDictLabel(DICT_TYPE.SYSTEM_SOCIAL_TYPE, row.type)}]平台的[${row.openid}]账号吗?`).then(async () => {
await socialUnbind({ type: row.type, openid: row.openid });
//
message.success($t('ui.actionMessage.operationSuccess'));

View File

@ -17,7 +17,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'systemMessage',
label: '角色设定',
component: 'TextArea',
component: 'Textarea',
componentProps: {
rows: 4,
placeholder: '请输入角色设定',
@ -41,6 +41,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '温度参数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入温度参数',
precision: 2,
min: 0,
@ -53,6 +54,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '回复数 Token 数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入回复数 Token 数',
min: 0,
max: 8192,
@ -64,6 +66,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '上下文数量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入上下文数量',
min: 0,
max: 20,

View File

@ -39,9 +39,7 @@ async function handleUpdatePublicStatusChange(
): Promise<boolean | undefined> {
const text = newStatus ? '公开' : '私有';
try {
await confirm({
content: `确认要将该图片切换为【${text}】吗?`,
});
await confirm(`确认要将该图片切换为【${text}】吗?`);
} catch {
return false;
}

View File

@ -28,7 +28,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'description',
label: '知识库描述',
component: 'TextArea',
component: 'Textarea',
componentProps: {
rows: 3,
placeholder: '请输入知识库描述',
@ -52,6 +52,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '检索 topK',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入检索 topK',
min: 0,
max: 10,
@ -63,6 +64,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '检索相似度阈值',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入检索相似度阈值',
min: 0,
max: 1,

View File

@ -77,9 +77,7 @@ async function handleStatusChange(
row: AiKnowledgeDocumentApi.KnowledgeDocument,
): Promise<boolean | undefined> {
try {
await confirm({
content: `你要将${row.name}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`,
});
await confirm(`你要将${row.name}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`);
} catch {
return false;
}

View File

@ -31,7 +31,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'description',
label: '知识库描述',
component: 'TextArea',
component: 'Textarea',
componentProps: {
rows: 3,
placeholder: '请输入知识库描述',
@ -55,6 +55,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '检索 topK',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入检索 topK',
min: 0,
max: 10,
@ -66,6 +67,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '检索相似度阈值',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入检索相似度阈值',
min: 0,
max: 1,

View File

@ -65,9 +65,7 @@ async function handleStatusChange(
row: AiKnowledgeSegmentApi.KnowledgeSegment,
): Promise<boolean | undefined> {
try {
await confirm({
content: `你要将片段 ${row.id} 的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`,
});
await confirm(`你要将片段 ${row.id} 的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`);
} catch {
return false;
}

View File

@ -77,7 +77,7 @@ export function useFormSchema(): VbenFormSchema[] {
},
},
{
component: 'TextArea',
component: 'Textarea',
fieldName: 'description',
label: '角色描述',
componentProps: {
@ -88,7 +88,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'systemMessage',
label: '角色设定',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入角色设定',
},
@ -154,6 +154,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '角色排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入角色排序',
},
dependencies: {

View File

@ -84,6 +84,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '模型排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入模型排序',
},
rules: 'required',
@ -104,6 +105,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '温度参数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入温度参数',
min: 0,
max: 2,
@ -121,6 +123,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '回复数 Token 数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
max: 8192,
placeholder: '请输入回复数 Token 数',
@ -138,6 +141,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '上下文数量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
max: 20,
placeholder: '请输入上下文数量',

View File

@ -39,9 +39,7 @@ async function handleUpdatePublicStatusChange(
): Promise<boolean | undefined> {
const text = newStatus ? '公开' : '私有';
try {
await confirm({
content: `确认要将该音乐切换为【${text}】吗?`,
});
await confirm(`确认要将该音乐切换为【${text}】吗?`);
} catch {
return false;
}

View File

@ -39,7 +39,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'description',
label: '分类描述',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入分类描述',
},
@ -60,6 +60,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '分类排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入分类排序',
},

View File

@ -5,7 +5,7 @@ import { BpmProcessInstanceStatus, DICT_TYPE } from '@vben/constants';
import { UndoOutlined, ZoomInOutlined, ZoomOutOutlined } from '@vben/icons';
import { formatDate, formatPast2 } from '@vben/utils';
import { Button, Modal, Row, Space, Table } from 'antdv-next';
import { Button, Modal, Row, Table } from 'antdv-next';
import BpmnViewer from 'bpmn-js/lib/Viewer';
import MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas';
@ -13,6 +13,8 @@ import { DictTag } from '#/components/dict-tag';
import '../theme/index.scss';
const ButtonGroup = Button.Group;
const props = defineProps({
xml: {
type: String,
@ -437,7 +439,7 @@ onBeforeUnmount(() => {
<!-- Zoom放大缩小 -->
<div style="position: absolute; top: 0; left: 0; width: 100%">
<Row justify="end">
<Space key="scale-control">
<ButtonGroup key="scale-control">
<Button
:disabled="defaultZoom <= 0.3"
:icon="h(ZoomOutOutlined)"
@ -452,7 +454,7 @@ onBeforeUnmount(() => {
@click="processZoomIn()"
/>
<Button :icon="h(UndoOutlined)" @click="processReZoom()" />
</Space>
</ButtonGroup>
</Row>
</div>
</div>

View File

@ -45,6 +45,7 @@ const [Grid] = useVbenVxeGrid({
return await getCluePage({
pageNo: page.currentPage,
pageSize: page.pageSize,
sceneType: 1,
transformStatus: false,
...formValues,
});

View File

@ -75,9 +75,7 @@ async function handleDeleteContactBusinessList() {
return;
}
try {
await confirm({
content: `确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`,
});
await confirm(`确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`);
} catch {
return false;
}

View File

@ -118,6 +118,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '产品总金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
disabled: true,
@ -130,6 +131,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '整单折扣(%',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '请输入整单折扣',
@ -141,6 +143,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '折扣后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
disabled: true,

View File

@ -8,7 +8,7 @@ import { useRoute, useRouter } from 'vue-router';
import { confirm, Page, useVbenModal } from '@vben/common-ui';
import { useTabs } from '@vben/hooks';
import { Card, message, TabPane, Tabs } from 'antdv-next';
import { Card, message, Tabs } from 'antdv-next';
import { getClue, transformClue } from '#/api/crm/clue';
import { getOperateLogPage } from '#/api/crm/operateLog';
@ -84,9 +84,7 @@ function handleTransfer() {
/** 转化为客户 */
async function handleTransform(): Promise<boolean | undefined> {
try {
await confirm({
content: '确定将该线索转化为客户吗?',
});
await confirm('确定将该线索转化为客户吗?');
} catch {
return false;
}
@ -146,13 +144,13 @@ onMounted(() => {
</Card>
<Card class="mt-4 min-h-[60%]">
<Tabs :tab-bar-gutter="16">
<TabPane tab="跟进记录" key="1" :force-render="true">
<Tabs.TabPane tab="跟进记录" key="1" :force-render="true">
<FollowUp :biz-id="clueId" :biz-type="BizTypeEnum.CRM_CLUE" />
</TabPane>
<TabPane tab="基本信息" key="2" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="基本信息" key="2" :force-render="true">
<Info :clue="clue" />
</TabPane>
<TabPane tab="团队成员" key="3" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="团队成员" key="3" :force-render="true">
<PermissionList
ref="permissionListRef"
:biz-id="clueId"
@ -160,10 +158,10 @@ onMounted(() => {
:show-action="true"
@quit-team="handleBack"
/>
</TabPane>
<TabPane tab="操作日志" key="4" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="操作日志" key="4" :force-render="true">
<OperateLog :log-list="logList" />
</TabPane>
</Tabs.TabPane>
</Tabs>
</Card>
</Page>

View File

@ -72,9 +72,7 @@ async function handleDeleteContactBusinessList() {
return;
}
try {
await confirm({
content: `确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`,
});
await confirm(`确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`);
} catch {
return false;
}

View File

@ -17,6 +17,7 @@ export const schema: VbenFormSchema[] = [
component: 'InputNumber',
fieldName: 'notifyDays',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
},

View File

@ -181,7 +181,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 4,
@ -198,6 +198,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '产品总金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '请输入产品总金额',
@ -209,6 +210,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '整单折扣(%',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '请输入整单折扣',
@ -220,6 +222,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '折扣后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
disabled: true,

View File

@ -8,7 +8,7 @@ import { useRoute, useRouter } from 'vue-router';
import { confirm, Page, useVbenModal } from '@vben/common-ui';
import { useTabs } from '@vben/hooks';
import { Card, message, TabPane, Tabs } from 'antdv-next';
import { Card, message, Tabs } from 'antdv-next';
import {
getCustomer,
@ -102,9 +102,7 @@ function handleTransfer() {
/** 锁定客户 */
async function handleLock(lockStatus: boolean): Promise<boolean | undefined> {
try {
await confirm({
content: `确定锁定客户【${customer.value.name}】吗?`,
});
await confirm(`确定锁定客户【${customer.value.name}】吗?`);
} catch {
return false;
}
@ -118,9 +116,7 @@ async function handleLock(lockStatus: boolean): Promise<boolean | undefined> {
/** 领取客户 */
async function handleReceive(): Promise<boolean | undefined> {
try {
await confirm({
content: `确定领取客户【${customer.value.name}】吗?`,
});
await confirm(`确定领取客户【${customer.value.name}】吗?`);
} catch {
return false;
}
@ -139,9 +135,7 @@ function handleDistributeForm() {
/** 客户放入公海 */
async function handlePutPool(): Promise<boolean | undefined> {
try {
await confirm({
content: `确定将客户【${customer.value.name}】放入公海吗?`,
});
await confirm(`确定将客户【${customer.value.name}】放入公海吗?`);
} catch {
return false;
}
@ -156,9 +150,7 @@ async function handlePutPool(): Promise<boolean | undefined> {
async function handleUpdateDealStatus(): Promise<boolean | undefined> {
const dealStatus = !customer.value.dealStatus;
try {
await confirm({
content: `确定更新成交状态为【${dealStatus ? '已成交' : '未成交'}】吗?`,
});
await confirm(`确定更新成交状态为【${dealStatus ? '已成交' : '未成交'}】吗?`);
} catch {
return false;
}
@ -250,20 +242,20 @@ onMounted(() => {
</Card>
<Card class="mt-4 min-h-[60%]">
<Tabs>
<TabPane tab="跟进记录" key="1" :force-render="true">
<Tabs.TabPane tab="跟进记录" key="1" :force-render="true">
<FollowUp :biz-id="customerId" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
</TabPane>
<TabPane tab="基本信息" key="2" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="基本信息" key="2" :force-render="true">
<Info :customer="customer" />
</TabPane>
<TabPane tab="联系人" key="3" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="联系人" key="3" :force-render="true">
<ContactDetailsList
:biz-id="customerId"
:biz-type="BizTypeEnum.CRM_CUSTOMER"
:customer-id="customerId"
/>
</TabPane>
<TabPane tab="团队成员" key="4" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="团队成员" key="4" :force-render="true">
<PermissionList
ref="permissionListRef"
:biz-id="customerId"
@ -271,27 +263,27 @@ onMounted(() => {
:show-action="true"
@quit-team="handleBack"
/>
</TabPane>
<TabPane tab="商机" key="5" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="商机" key="5" :force-render="true">
<BusinessDetailsList
:biz-id="customerId"
:biz-type="BizTypeEnum.CRM_CUSTOMER"
:customer-id="customerId"
/>
</TabPane>
<TabPane tab="合同" key="6" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="合同" key="6" :force-render="true">
<ContractDetailsList
:biz-id="customerId"
:biz-type="BizTypeEnum.CRM_CUSTOMER"
/>
</TabPane>
<TabPane tab="回款" key="7" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="回款" key="7" :force-render="true">
<ReceivablePlanDetailsList :customer-id="customerId" />
<ReceivableDetailsList :customer-id="customerId" />
</TabPane>
<TabPane tab="操作日志" key="8" :force-render="true">
</Tabs.TabPane>
<Tabs.TabPane tab="操作日志" key="8" :force-render="true">
<OperateLog :log-list="logList" />
</TabPane>
</Tabs.TabPane>
</Tabs>
</Card>
</Page>

View File

@ -65,6 +65,7 @@ export function useFormSchema(confType: LimitConfType): VbenFormSchema[] {
: '锁定客户数上限',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: `请输入${
LimitConfType.CUSTOMER_QUANTITY_LIMIT === confType
? '拥有客户数上限'

View File

@ -16,6 +16,7 @@ export const schema: VbenFormSchema[] = [
component: 'InputNumber',
fieldName: 'contactExpireDays',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
},
@ -35,6 +36,7 @@ export const schema: VbenFormSchema[] = [
addonAfter: () => '天未成交',
}),
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
},
@ -63,6 +65,7 @@ export const schema: VbenFormSchema[] = [
component: 'InputNumber',
fieldName: 'notifyDays',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
},

View File

@ -100,9 +100,7 @@ async function handleDelete() {
return;
}
try {
await confirm({
content: `你要将${checkedRows.value.map((item) => item.nickname).join(',')}移出团队吗?`,
});
await confirm(`你要将${checkedRows.value.map((item) => item.nickname).join(',')}移出团队吗?`);
} catch {
return false;
}

View File

@ -100,7 +100,6 @@ const [Modal, modalApi] = useVbenModal({
},
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
await formApi.resetForm();
return;
}
//

View File

@ -92,6 +92,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '价格(元)',
rules: 'required',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
step: 0.1,
@ -99,7 +100,7 @@ export function useFormSchema(): VbenFormSchema[] {
},
},
{
component: 'TextArea',
component: 'Textarea',
fieldName: 'description',
label: '产品描述',
componentProps: {

View File

@ -141,6 +141,7 @@ export function useFormSchema(): VbenFormSchema[] {
component: 'InputNumber',
rules: 'required',
componentProps: {
class: '!w-full',
placeholder: '请输入回款金额',
min: 0,
precision: 2,
@ -161,7 +162,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 4,

View File

@ -96,6 +96,7 @@ export function useFormSchema(): VbenFormSchema[] {
component: 'InputNumber',
rules: 'required',
componentProps: {
class: '!w-full',
placeholder: '请输入计划回款金额',
min: 0,
precision: 2,
@ -119,6 +120,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '提前几天提醒',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入提前几天提醒',
min: 0,
},
@ -135,7 +137,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 4,

View File

@ -44,6 +44,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入排序',
precision: 0,
},
@ -81,7 +82,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 3,

View File

@ -67,9 +67,7 @@ async function handleDefaultStatusChange(
): Promise<boolean | undefined> {
const text = newStatus ? '设置' : '取消';
try {
await confirm({
content: `确认要${text}"${row.name}"默认吗?`,
});
await confirm(`确认要${text}"${row.name}"默认吗?`);
} catch {
return false;
}

View File

@ -77,7 +77,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -132,6 +132,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '合计付款',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '合计付款',
precision: 2,
formatter: erpPriceInputFormatter,
@ -143,6 +144,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
disabled: formType === 'detail',
placeholder: '请输入优惠金额',
precision: 2,
@ -154,6 +156,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '实际付款',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '实际付款',
precision: 2,
formatter: erpPriceInputFormatter,

View File

@ -77,7 +77,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -132,6 +132,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '合计收款',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '合计收款',
precision: 2,
formatter: erpPriceInputFormatter,
@ -143,6 +144,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
disabled: formType === 'detail',
placeholder: '请输入优惠金额',
precision: 2,
@ -154,6 +156,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '实际收款',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '实际收款',
precision: 2,
formatter: erpPriceInputFormatter,

View File

@ -65,6 +65,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入显示顺序',
},

View File

@ -92,6 +92,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '保质期天数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入保质期天数',
},
},
@ -100,6 +101,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '重量kg',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入重量kg',
},
},
@ -108,6 +110,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '采购价格',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入采购价格,单位:元',
precision: 2,
min: 0,
@ -119,6 +122,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '销售价格',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入销售价格,单位:元',
precision: 2,
min: 0,
@ -130,6 +134,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '最低价格',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入最低价格,单位:元',
precision: 2,
min: 0,
@ -139,7 +144,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
},

View File

@ -78,7 +78,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -120,6 +120,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入优惠率',
min: 0,
max: 100,
@ -132,6 +133,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '付款优惠',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '付款优惠',
precision: 2,
formatter: erpPriceInputFormatter,
@ -143,6 +145,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '优惠后金额',
precision: 2,
formatter: erpPriceInputFormatter,
@ -163,6 +166,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '其他费用',
component: 'InputNumber',
componentProps: {
class: '!w-full',
disabled: formType === 'detail',
placeholder: '请输入其他费用',
precision: 2,
@ -187,6 +191,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '应付金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
precision: 2,
min: 0,
disabled: true,

View File

@ -64,7 +64,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -106,6 +106,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入优惠率',
min: 0,
max: 100,
@ -118,6 +119,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '付款优惠',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '付款优惠',
precision: 2,
formatter: erpPriceInputFormatter,
@ -129,6 +131,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '优惠后金额',
precision: 2,
formatter: erpPriceInputFormatter,
@ -151,6 +154,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入支付订金',
precision: 2,
min: 0,

View File

@ -78,7 +78,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -120,6 +120,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入优惠率',
min: 0,
max: 100,
@ -132,6 +133,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '退款优惠',
component: 'InputNumber',
componentProps: {
class: '!w-full',
precision: 2,
formatter: erpPriceInputFormatter,
disabled: true,
@ -142,6 +144,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '优惠后金额',
precision: 2,
formatter: erpPriceInputFormatter,
@ -162,6 +165,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '其他费用',
component: 'InputNumber',
componentProps: {
class: '!w-full',
disabled: formType === 'detail',
placeholder: '请输入其他费用',
precision: 2,
@ -186,6 +190,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '应退金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
precision: 2,
min: 0,
disabled: true,

View File

@ -82,6 +82,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入排序',
},
rules: 'required',
@ -99,6 +100,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '税率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入税率',
min: 0,
precision: 2,
@ -131,7 +133,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 3,

View File

@ -82,6 +82,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入排序',
precision: 0,
},
@ -100,6 +101,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '税率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入税率',
precision: 2,
},
@ -132,7 +134,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 3,

View File

@ -77,7 +77,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -119,6 +119,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入优惠率',
min: 0,
max: 100,
@ -131,6 +132,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '付款优惠',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '收款优惠',
precision: 2,
formatter: erpPriceInputFormatter,
@ -142,6 +144,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '优惠后金额',
precision: 2,
formatter: erpPriceInputFormatter,
@ -164,6 +167,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入收取订金',
precision: 2,
min: 0,

View File

@ -95,7 +95,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -137,6 +137,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入优惠率',
min: 0,
max: 100,
@ -149,6 +150,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '收款优惠',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '付款优惠',
precision: 2,
formatter: erpPriceInputFormatter,
@ -160,6 +162,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '优惠后金额',
precision: 2,
formatter: erpPriceInputFormatter,
@ -180,6 +183,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '其他费用',
component: 'InputNumber',
componentProps: {
class: '!w-full',
disabled: formType === 'detail',
placeholder: '请输入其他费用',
precision: 2,
@ -207,6 +211,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '应收金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
precision: 2,
min: 0,
disabled: true,

View File

@ -91,7 +91,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },
@ -133,6 +133,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠率(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入优惠率',
min: 0,
max: 100,
@ -145,6 +146,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '退款优惠',
component: 'InputNumber',
componentProps: {
class: '!w-full',
precision: 2,
formatter: erpPriceInputFormatter,
disabled: true,
@ -155,6 +157,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '优惠后金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '优惠后金额',
precision: 2,
formatter: erpPriceInputFormatter,
@ -175,6 +178,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '其他费用',
component: 'InputNumber',
componentProps: {
class: '!w-full',
disabled: formType === 'detail',
placeholder: '请输入其他费用',
precision: 2,
@ -200,6 +204,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
label: '应收金额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
precision: 2,
min: 0,
disabled: true,

View File

@ -47,7 +47,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },

View File

@ -62,7 +62,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },

View File

@ -47,7 +47,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },

View File

@ -64,7 +64,7 @@ export function useFormSchema(formType: FormType): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
autoSize: { minRows: 1, maxRows: 1 },

View File

@ -51,6 +51,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '仓储费(元)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入仓储费,单位:元/天/KG',
min: 0,
precision: 2,
@ -61,6 +62,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '搬运费(元)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入搬运费,单位:元',
min: 0,
precision: 2,
@ -79,6 +81,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入排序',
precision: 0,
},
@ -87,7 +90,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
},

View File

@ -65,9 +65,7 @@ async function handleDefaultStatusChange(
): Promise<boolean | undefined> {
const text = newStatus ? '设置' : '取消';
try {
await confirm({
content: `确认要${text}"${row.name}"默认吗?`,
});
await confirm(`确认要${text}"${row.name}"默认吗?`);
} catch {
return false;
}

View File

@ -42,9 +42,7 @@ function handleDetail(row: InfraApiErrorLogApi.ApiErrorLog) {
/** 处理已处理 / 已忽略的操作 */
async function handleProcess(id: number, processStatus: number) {
await confirm({
content: `确认标记为${InfraApiErrorLogProcessStatusEnum.DONE ? '已处理' : '已忽略'}?`,
});
await confirm(`确认标记为${InfraApiErrorLogProcessStatusEnum.DONE ? '已处理' : '已忽略'}?`);
const hideLoading = message.loading({
content: '正在处理中...',
duration: 0,

View File

@ -43,7 +43,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
},
@ -82,6 +82,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '主机端口',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入主机端口',
},

View File

@ -8,7 +8,7 @@ import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { formatDateTime } from '@vben/utils';
import { Timeline, TimelineItem } from 'antdv-next';
import { Timeline } from 'antdv-next';
import { CronTab } from '#/components/cron-tab';
import { DictTag } from '#/components/dict-tag';
@ -68,6 +68,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '重试次数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入重试次数。设置为 0 时,不进行重试',
min: 0,
},
@ -78,6 +79,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '重试间隔',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入重试间隔,单位:毫秒。设置为 0 时,无需间隔',
min: 0,
},
@ -88,6 +90,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '监控超时时间',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入监控超时时间,单位:毫秒',
min: 0,
},
@ -236,7 +239,7 @@ export function useDetailSchema(): DescriptionItemSchema[] {
}
return h(Timeline, {}, () =>
val?.map((time: Date) =>
h(TimelineItem, {}, () => formatDateTime(time)),
h(Timeline.Item, {}, () => formatDateTime(time)),
),
);
},

View File

@ -41,6 +41,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '品牌排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入品牌排序',
},
@ -60,7 +61,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'description',
label: '品牌描述',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入品牌描述',
},

View File

@ -65,6 +65,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '分类排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入分类排序',
},

View File

@ -65,9 +65,7 @@ async function handleStatusChange(
): Promise<boolean | undefined> {
const text = newStatus ? '展示' : '隐藏';
try {
await confirm({
content: `确认要${text}该评论吗?`,
});
await confirm(`确认要${text}该评论吗?`);
} catch {
return false;
}

View File

@ -68,7 +68,7 @@ export function useInfoFormSchema(): VbenFormSchema[] {
{
fieldName: 'introduction',
label: '商品简介',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入商品简介',
autoSize: { minRows: 2, maxRows: 2 },
@ -281,6 +281,7 @@ export function useOtherFormSchema(): VbenFormSchema[] {
label: '商品排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
},
rules: 'required',
@ -290,6 +291,7 @@ export function useOtherFormSchema(): VbenFormSchema[] {
label: '赠送积分',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
},
rules: 'required',
@ -299,6 +301,7 @@ export function useOtherFormSchema(): VbenFormSchema[] {
label: '虚拟销量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
},
rules: 'required',

View File

@ -134,7 +134,6 @@ const [Modal, modalApi] = useVbenModal({
if (!isOpen) {
return;
}
await formApi.resetForm();
},
});
</script>

View File

@ -9,7 +9,7 @@ import { confirm, DocAlert, Page } from '@vben/common-ui';
import { ProductSpuStatusEnum } from '@vben/constants';
import { downloadFileFromBlobPart } from '@vben/utils';
import { message, TabPane, Tabs } from 'antdv-next';
import { message, Tabs } from 'antdv-next';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
@ -110,9 +110,7 @@ async function handleStatusChange(
//
const text = newStatus ? '上架' : '下架';
try {
await confirm({
content: `确认要${text + row.name}吗?`,
});
await confirm(`确认要${text + row.name}吗?`);
} catch {
return false;
}
@ -132,9 +130,7 @@ async function handleStatus02Change(row: MallSpuApi.Spu, newStatus: number) {
newStatus === ProductSpuStatusEnum.RECYCLE.status
? '加入到回收站'
: '恢复到仓库';
await confirm({
content: `确认要"${row.name}"${text}吗?`,
});
await confirm(`确认要"${row.name}"${text}吗?`);
const hideLoading = message.loading({
content: `正在${text}中...`,
duration: 0,
@ -213,7 +209,7 @@ onMounted(async () => {
<Grid>
<template #toolbar-actions>
<Tabs @change="onChangeTab" class="w-full">
<TabPane
<Tabs.TabPane
v-for="item in tabsData"
:key="item.type"
:tab="`${item.name} (${item.count})`"

View File

@ -40,6 +40,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入显示顺序',
},

View File

@ -106,6 +106,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入排序',
},

View File

@ -62,6 +62,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入排序',
},
@ -81,7 +82,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'memo',
label: '描述',
component: 'TextArea',
component: 'Textarea',
componentProps: {
rows: 4,
placeholder: '请输入描述',

View File

@ -55,6 +55,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '助力人数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 1,
placeholder: '达到该人数才能砍到低价',
},
@ -65,6 +66,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '砍价次数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 1,
placeholder: '最大帮砍次数',
},
@ -75,6 +77,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '购买限制',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 1,
placeholder: '最大购买次数',
},
@ -85,6 +88,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '最小砍价金额(元)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
step: 0.01,
@ -96,6 +100,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '最大砍价金额(元)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
step: 0.01,

View File

@ -55,6 +55,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '拼团人数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '达到该人数即成团',
min: 2,
},
@ -65,6 +66,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '限制时长',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '限制时长(小时)',
min: 0,
},
@ -75,6 +77,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '总限购数量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入总限购数量',
min: 0,
},
@ -84,6 +87,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '单次限购数量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入单次限购数量',
min: 0,
},

View File

@ -45,7 +45,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'description',
label: '优惠券描述',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入优惠券描述',
},
@ -122,6 +122,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '优惠券面额',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '请输入优惠金额,单位:元',
@ -139,6 +140,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '优惠券折扣',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 1,
max: 9.9,
precision: 1,
@ -157,6 +159,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '最多优惠',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '请输入最多优惠',
@ -174,6 +177,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '满多少元可以使用',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '无门槛请设为 0',
@ -196,6 +200,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '发放数量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: -1,
placeholder: '发放数量,没有之后不能领取或发放,-1 为不限制',
addonAfter: '张',
@ -212,6 +217,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '每人限领个数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: -1,
placeholder: '设置为 -1 时,可无限领取',
addonAfter: '张',
@ -255,6 +261,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '领取日期',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '第 0 为今天生效',
addonBefore: '第',
@ -271,6 +278,7 @@ export function useFormSchema(): VbenFormSchema[] {
fieldName: 'fixedEndTerm',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入结束天数',
addonBefore: '至',

View File

@ -61,9 +61,7 @@ async function handleStatusChange(
row: MallCouponTemplateApi.CouponTemplate,
): Promise<boolean | undefined> {
try {
await confirm({
content: `你要将${row.name}的状态切换为【${newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'}】吗?`,
});
await confirm(`你要将${row.name}的状态切换为【${newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'}】吗?`);
} catch {
return false;
}

View File

@ -7,7 +7,7 @@ import type {
SpuProperty,
} from '#/views/mall/product/spu/components';
import { computed, nextTick, ref } from 'vue';
import { computed, ref } from 'vue';
import { useVbenForm, useVbenModal } from '@vben/common-ui';
import { PromotionDiscountTypeEnum } from '@vben/constants';
@ -213,13 +213,11 @@ function handleSkuDiscountPercentChange(row: SkuExtension) {
}
/** 重置表单 */
async function resetForm() {
function resetForm() {
spuList.value = [];
spuPropertyList.value = [];
spuIdList.value = [];
formData.value = {};
await nextTick();
await formApi.resetForm();
}
// ================= =================
@ -264,7 +262,7 @@ const [Modal, modalApi] = useVbenModal({
},
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
await resetForm();
resetForm();
return;
}
//

View File

@ -125,9 +125,7 @@ async function updateConversationPinnedFn(pinned: boolean) {
/** 删除会话 */
async function deleteConversationFn() {
// 1.
confirm({
content: '您确定要删除该会话吗?',
}).then(async () => {
confirm('您确定要删除该会话吗?').then(async () => {
await deleteConversation(rightClickConversation.value.id);
// 2.
closeRightMenu();

View File

@ -169,7 +169,7 @@ async function handleSendMessage(event: any) {
}
// 1.
if (isEmpty(unref(message.value)?.trim())) {
notification.warning({ title: '请输入消息后再发送哦!' });
notification.warning({ message: '请输入消息后再发送哦!' });
message.value = '';
return;
}

View File

@ -109,9 +109,9 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入排序',
class: '!w-full',
},
defaultValue: 0,
rules: 'required',
@ -119,7 +119,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 4,

View File

@ -99,9 +99,9 @@ export function useFormSchema(): VbenFormSchema[] {
label: '总限购数量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入总限购数量',
min: 0,
class: 'w-full',
},
rules: z.number().min(0).default(0),
},
@ -110,9 +110,9 @@ export function useFormSchema(): VbenFormSchema[] {
label: '单次限购数量',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入单次限购数量',
min: 0,
class: 'w-full',
},
rules: z.number().min(0).default(0),
},
@ -121,16 +121,16 @@ export function useFormSchema(): VbenFormSchema[] {
label: '排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入排序',
min: 0,
class: 'w-full',
},
rules: z.number().min(0).default(0),
},
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
rows: 4,

View File

@ -62,9 +62,7 @@ async function handleStatusChange(
//
const text = row.status === 0 ? '启用' : '停用';
try {
await confirm({
content: `确认要${text + row.name}吗?`,
});
await confirm(`确认要${text + row.name}吗?`);
} catch {
return false;
}

View File

@ -104,9 +104,7 @@ async function loadProductStatisticsList() {
async function handleExport() {
try {
//
await confirm({
content: '确认导出商品状况数据吗?',
});
await confirm('确认导出商品状况数据吗?');
//
exportLoading.value = true;
const data = await exportProductStatisticsExcel({
@ -121,7 +119,7 @@ async function handleExport() {
</script>
<template>
<Card variant="borderless" title="商品概况" class="h-full">
<Card :bordered="false" title="商品概况" class="h-full">
<template #extra>
<!-- 查询条件 -->
<div class="flex items-center gap-2">

View File

@ -107,9 +107,7 @@ async function loadTradeStatisticsList() {
async function handleExport() {
try {
//
await confirm({
content: '确认导出交易状况数据吗?',
});
await confirm('确认导出交易状况数据吗?');
//
exportLoading.value = true;
const data = await exportTradeStatisticsExcel({
@ -124,7 +122,7 @@ async function handleExport() {
</script>
<template>
<Card variant="borderless" title="交易状况" class="h-full">
<Card :bordered="false" title="交易状况" class="h-full">
<template #extra>
<!-- 查询条件 -->
<div class="flex items-center gap-2">

View File

@ -89,9 +89,7 @@ async function handleBrokerageEnabledChange(
): Promise<boolean | undefined> {
const text = newEnabled ? '开通' : '关闭';
try {
await confirm({
content: `你要将${row.nickname}的推广资格切换为【${text}】吗?`,
});
await confirm(`你要将${row.nickname}的推广资格切换为【${text}】吗?`);
} catch {
return false;
}

View File

@ -63,10 +63,10 @@ export const schema: VbenFormSchema[] = [
label: '满额包邮',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '请输入满额包邮金额',
class: 'w-full',
},
rules: 'required',
dependencies: {
@ -145,10 +145,10 @@ export const schema: VbenFormSchema[] = [
label: '一级返佣比例(%',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
max: 100,
placeholder: '请输入一级返佣比例',
class: 'w-full',
},
rules: 'required',
dependencies: {
@ -162,10 +162,10 @@ export const schema: VbenFormSchema[] = [
label: '二级返佣比例(%',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
max: 100,
placeholder: '请输入二级返佣比例',
class: 'w-full',
},
rules: 'required',
dependencies: {
@ -179,9 +179,9 @@ export const schema: VbenFormSchema[] = [
label: '佣金冻结天数',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入佣金冻结天数',
class: 'w-full',
},
rules: 'required',
dependencies: {
@ -195,10 +195,10 @@ export const schema: VbenFormSchema[] = [
label: '提现最低金额(元)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
placeholder: '请输入提现最低金额',
class: 'w-full',
},
rules: 'required',
dependencies: {
@ -212,11 +212,11 @@ export const schema: VbenFormSchema[] = [
label: '提现手续费(%',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
max: 100,
precision: 2,
placeholder: '请输入提现手续费百分比',
class: 'w-full',
},
rules: 'required',
dependencies: {

View File

@ -47,6 +47,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入显示顺序',
},

View File

@ -140,6 +140,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入显示顺序',
min: 0,
},

View File

@ -306,6 +306,7 @@ export function usePriceFormSchema(): VbenFormSchema[] {
label: '订单调价',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入订单调价',
step: 0.1,
precision: 2,

View File

@ -21,9 +21,9 @@ export const schema: VbenFormSchema[] = [
label: '积分抵扣',
help: '积分抵用比例(1 积分抵多少金额),单位:元',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
class: 'w-full',
placeholder: '请输入积分抵扣单价',
},
},
@ -33,8 +33,8 @@ export const schema: VbenFormSchema[] = [
label: '积分抵扣最大值',
help: '单次下单积分使用上限0 不限制',
componentProps: {
class: '!w-full',
min: 0,
class: 'w-full',
placeholder: '请输入积分抵扣最大值',
},
},
@ -44,8 +44,8 @@ export const schema: VbenFormSchema[] = [
label: '1 元赠送多少分',
help: '下单支付金额按比例赠送积分(实际支付 1 元赠送多少积分)',
componentProps: {
class: '!w-full',
min: 0,
class: 'w-full',
placeholder: '请输入赠送积分比例',
},
},

View File

@ -32,6 +32,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '等级',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
placeholder: '请输入等级',
@ -43,6 +44,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '升级经验',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
placeholder: '请输入升级经验',
@ -54,6 +56,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '享受折扣(%)',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
max: 100,
precision: 0,

View File

@ -23,6 +23,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '签到天数',
help: '只允许设置 1-7默认签到 7 天为一个周期',
componentProps: {
class: '!w-full',
min: 1,
max: 7,
precision: 0,
@ -35,6 +36,7 @@ export function useFormSchema(): VbenFormSchema[] {
fieldName: 'point',
label: '获得积分',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
placeholder: '请输入获得积分',
@ -46,6 +48,7 @@ export function useFormSchema(): VbenFormSchema[] {
fieldName: 'experience',
label: '奖励经验',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
placeholder: '请输入奖励经验',

View File

@ -36,6 +36,17 @@ export function useFormSchema(): VbenFormSchema[] {
},
rules: 'required',
},
{
fieldName: 'email',
label: '邮箱',
component: 'Input',
componentProps: {
allowClear: true,
maxlength: 50,
placeholder: '请输入邮箱',
},
rules: z.string().email('邮箱格式不正确').or(z.literal('')).optional(),
},
{
fieldName: 'status',
label: '状态',
@ -124,7 +135,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'mark',
label: '会员备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入会员备注',
},
@ -153,6 +164,15 @@ export function useGridFormSchema(): VbenFormSchema[] {
allowClear: true,
},
},
{
fieldName: 'email',
label: '邮箱',
component: 'Input',
componentProps: {
placeholder: '请输入邮箱',
allowClear: true,
},
},
{
fieldName: 'loginDate',
label: '登录时间',
@ -236,6 +256,11 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
title: '手机号',
minWidth: 120,
},
{
field: 'email',
title: '邮箱',
minWidth: 180,
},
{
field: 'nickname',
title: '昵称',
@ -340,7 +365,7 @@ export function useLevelFormSchema(): VbenFormSchema[] {
{
fieldName: 'reason',
label: '修改原因',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入修改原因',
},
@ -396,6 +421,7 @@ export function useBalanceFormSchema(): VbenFormSchema[] {
component: 'InputNumber',
rules: 'required',
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
step: 0.1,
@ -471,6 +497,7 @@ export function usePointFormSchema(): VbenFormSchema[] {
component: 'InputNumber',
rules: 'required',
componentProps: {
class: '!w-full',
min: 0,
precision: 0,
placeholder: '请输入变动积分',

View File

@ -34,6 +34,10 @@ const [Descriptions] = useDescription({
field: 'mobile',
label: '手机号',
},
{
field: 'email',
label: '邮箱',
},
{
field: 'sex',
label: '性别',

View File

@ -247,7 +247,7 @@ export function useAppFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
rows: 3,
placeholder: '请输入备注',
@ -291,6 +291,7 @@ export function useChannelFormSchema(formType: string = ''): VbenFormSchema[] {
component: 'InputNumber',
rules: 'required',
componentProps: {
class: '!w-full',
placeholder: '请输入渠道费率',
addonAfter: '%',
},
@ -381,7 +382,7 @@ export function useChannelFormSchema(formType: string = ''): VbenFormSchema[] {
{
label: '应用私钥',
fieldName: 'config.privateKey',
component: 'TextArea',
component: 'Textarea',
rules: 'required',
componentProps: {
placeholder: '请输入应用私钥',
@ -391,7 +392,7 @@ export function useChannelFormSchema(formType: string = ''): VbenFormSchema[] {
{
label: '支付宝公钥',
fieldName: 'config.alipayPublicKey',
component: 'TextArea',
component: 'Textarea',
rules: 'required',
componentProps: {
placeholder: '请输入支付宝公钥',

View File

@ -67,9 +67,7 @@ async function handleStatusChange(
): Promise<boolean | undefined> {
const text = newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用';
try {
await confirm({
content: `确认要${text + row.name}应用吗?`,
});
await confirm(`确认要${text + row.name}应用吗?`);
} catch {
return false;
}

View File

@ -29,6 +29,7 @@ export function useFormSchema(): VbenFormSchema[] {
component: 'InputNumber',
rules: 'required',
componentProps: {
class: '!w-full',
min: 1,
precision: 2,
step: 0.01,

View File

@ -33,6 +33,7 @@ export function useFormSchema(): VbenFormSchema[] {
component: 'InputNumber',
rules: z.number().min(0, '支付金额不能小于0'),
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
step: 0.01,
@ -45,6 +46,7 @@ export function useFormSchema(): VbenFormSchema[] {
component: 'InputNumber',
rules: z.number().min(0, '赠送金额不能小于0'),
componentProps: {
class: '!w-full',
min: 0,
precision: 2,
step: 0.01,

View File

@ -62,6 +62,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入显示顺序',
},

View File

@ -58,7 +58,7 @@ export function useTypeFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
},
@ -222,6 +222,7 @@ export function useDataFormSchema(): VbenFormSchema[] {
label: '显示排序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入显示排序',
},
rules: 'required',
@ -259,7 +260,7 @@ export function useDataFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
},

View File

@ -58,6 +58,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: 'SMTP 服务器端口',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入 SMTP 服务器端口',
min: 0,
max: 65_535,
@ -89,7 +90,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
},

View File

@ -201,6 +201,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入显示顺序',
},

View File

@ -53,7 +53,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'description',
label: '应用描述',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入应用描述',
},
@ -74,6 +74,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '访问令牌的有效期',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入访问令牌的有效期,单位:秒',
min: 0,
},
@ -84,6 +85,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '刷新令牌的有效期',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入刷新令牌的有效期,单位:秒',
min: 0,
},
@ -161,7 +163,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'additionalInformation',
label: '附加信息',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入附加信息JSON 格式数据',
},

View File

@ -40,6 +40,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入显示顺序',
},
@ -59,7 +60,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '岗位备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入岗位备注',
},

View File

@ -45,6 +45,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '显示顺序',
component: 'InputNumber',
componentProps: {
class: '!w-full',
min: 0,
placeholder: '请输入显示顺序',
},
@ -64,7 +65,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '角色备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入角色备注',
},

View File

@ -78,7 +78,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'content',
label: '模板内容',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入模板内容',
rows: 4,
@ -97,7 +97,7 @@ export function useFormSchema(): VbenFormSchema[] {
{
fieldName: 'remark',
label: '备注',
component: 'TextArea',
component: 'Textarea',
componentProps: {
placeholder: '请输入备注',
},
@ -176,7 +176,7 @@ export function useSendSmsFormSchema(): VbenFormSchema[] {
{
fieldName: 'content',
label: '模板内容',
component: 'TextArea',
component: 'Textarea',
componentProps: {
disabled: true,
},

View File

@ -91,6 +91,7 @@ export function useFormSchema(): VbenFormSchema[] {
fieldName: 'accountCount',
component: 'InputNumber',
componentProps: {
class: '!w-full',
placeholder: '请输入账号额度',
},
rules: 'required',

View File

@ -21,10 +21,10 @@ import {
updateUserStatus,
} from '#/api/system/user';
import { $t } from '#/locales';
import { DeptTreeSelect } from '#/views/system/dept/components';
import { useGridColumns, useGridFormSchema } from './data';
import AssignRoleForm from './modules/assign-role-form.vue';
import DeptTree from './modules/dept-tree.vue';
import Form from './modules/form.vue';
import ImportForm from './modules/import-form.vue';
import ResetPasswordForm from './modules/reset-password-form.vue';
@ -62,8 +62,8 @@ async function handleExport() {
/** 选择部门 */
const searchDeptId = ref<number | undefined>(undefined);
async function handleDeptSelect(dept: SystemDeptApi.Dept) {
searchDeptId.value = dept.id;
async function handleDeptSelect(dept?: SystemDeptApi.Dept) {
searchDeptId.value = dept?.id;
handleRefresh();
}
@ -139,9 +139,7 @@ async function handleStatusChange(
row: SystemUserApi.User,
): Promise<boolean | undefined> {
try {
await confirm({
content: `你要将${row.username}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`,
});
await confirm(`你要将${row.username}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`);
} catch {
return false;
}
@ -207,7 +205,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
<div class="flex h-full w-full">
<!-- 左侧部门树 -->
<Card class="mr-4 h-full w-1/6">
<DeptTree @select="handleDeptSelect" />
<DeptTreeSelect @select="handleDeptSelect" />
</Card>
<!-- 右侧用户列表 -->
<div class="w-5/6">