diff --git a/apps/web-antd/src/api/mall/trade/config/index.ts b/apps/web-antd/src/api/mall/trade/config/index.ts
index f72eeab47..de419d290 100644
--- a/apps/web-antd/src/api/mall/trade/config/index.ts
+++ b/apps/web-antd/src/api/mall/trade/config/index.ts
@@ -3,24 +3,22 @@ import { requestClient } from '#/api/request';
export namespace MallTradeConfigApi {
/** 交易中心配置 */
export interface Config {
- /** 是否启用分销 */
- brokerageEnabled: boolean;
- /** 分销资格条件 */
- brokerageEnabledCondition: number;
- /** 分销绑定模式 */
- brokerageBindMode: number;
- /** 分销海报图 */
- brokeragePosterUrls: string;
- /** 一级分销比例 */
- brokerageFirstPercent: number;
- /** 二级分销比例 */
- brokerageSecondPercent: number;
- /** 最小提现金额,单位:分 */
- brokerageWithdrawMinPrice: number;
- /** 冻结天数 */
- brokerageFrozenDays: number;
- /** 提现类型 */
- brokerageWithdrawTypes: string;
+ id?: number;
+ afterSaleRefundReasons?: string[];
+ afterSaleReturnReasons?: string[];
+ deliveryExpressFreeEnabled?: boolean;
+ deliveryExpressFreePrice?: number;
+ deliveryPickUpEnabled?: boolean;
+ brokerageEnabled?: boolean;
+ brokerageEnabledCondition?: number;
+ brokerageBindMode?: number;
+ brokeragePosterUrls?: string;
+ brokerageFirstPercent?: number;
+ brokerageSecondPercent?: number;
+ brokerageWithdrawMinPrice?: number;
+ brokerageFrozenDays?: number;
+ brokerageWithdrawTypes?: string;
+ tencentLbsKey?: string;
}
}
diff --git a/apps/web-antd/src/views/mall/trade/config/data.ts b/apps/web-antd/src/views/mall/trade/config/data.ts
new file mode 100644
index 000000000..a66e44959
--- /dev/null
+++ b/apps/web-antd/src/views/mall/trade/config/data.ts
@@ -0,0 +1,246 @@
+import type { VbenFormSchema } from '#/adapter/form';
+
+import { DICT_TYPE, getDictOptions } from '#/utils';
+
+/** 售后表单 */
+export function useFormSchema(): VbenFormSchema[] {
+ return [
+ {
+ component: 'Input',
+ fieldName: 'id',
+ dependencies: {
+ triggerFields: [''],
+ show: () => false,
+ },
+ },
+ {
+ component: 'Input',
+ fieldName: 'type',
+ dependencies: {
+ triggerFields: [''],
+ show: () => false,
+ },
+ },
+ {
+ fieldName: 'afterSaleRefundReasons',
+ label: '退款理由',
+ component: 'Select',
+ componentProps: {
+ mode: 'tags',
+ placeholder: '请直接输入退款理由',
+ class: 'w-full',
+ },
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'afterSale',
+ },
+ },
+ {
+ fieldName: 'afterSaleReturnReasons',
+ label: '退货理由',
+ component: 'Select',
+ componentProps: {
+ mode: 'tags',
+ placeholder: '请直接输入退货理由',
+ class: 'w-full',
+ },
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'afterSale',
+ },
+ },
+ {
+ fieldName: 'deliveryExpressFreeEnabled',
+ label: '启用包邮',
+ component: 'Switch',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'delivery',
+ },
+ description: '商城是否启用全场包邮',
+ },
+ {
+ fieldName: 'deliveryExpressFreePrice',
+ label: '满额包邮',
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2,
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'delivery',
+ },
+ description: '商城商品满多少金额即可包邮,单位:元',
+ },
+ {
+ fieldName: 'deliveryPickUpEnabled',
+ label: '启用门店自提',
+ component: 'Switch',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'delivery',
+ },
+ },
+ {
+ fieldName: 'brokerageEnabled',
+ label: '启用分佣',
+ component: 'Switch',
+ description: '商城是否开启分销模式',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ },
+ {
+ fieldName: 'brokerageEnabledCondition',
+ label: '分佣模式',
+ component: 'RadioGroup',
+ componentProps: {
+ options: getDictOptions(
+ DICT_TYPE.BROKERAGE_ENABLED_CONDITION,
+ 'number',
+ ),
+ buttonStyle: 'solid',
+ optionType: 'button',
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description:
+ '人人分销:每个用户都可以成为推广员 \n 单级分销:每个用户只能有一个上级推广员',
+ },
+ {
+ fieldName: 'brokerageBindMode',
+ label: '分销关系绑定',
+ component: 'RadioGroup',
+ componentProps: {
+ options: getDictOptions(DICT_TYPE.BROKERAGE_BIND_MODE, 'number'),
+ buttonStyle: 'solid',
+ optionType: 'button',
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description:
+ '首次绑定:只要用户没有推广人,随时都可以绑定推广关系 \n 注册绑定:只有新用户注册时或首次进入系统时才可以绑定推广关系',
+ },
+ {
+ fieldName: 'brokeragePosterUrls',
+ label: '分销海报图',
+ component: 'ImageUpload',
+ componentProps: {
+ maxSize: 1,
+ },
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description: '个人中心分销海报图片,建议尺寸 600x1000',
+ },
+ {
+ fieldName: 'brokerageFirstPercent',
+ label: '一级返佣比例',
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ max: 100,
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description: '订单交易成功后给推广人返佣的百分比',
+ },
+ {
+ fieldName: 'brokerageSecondPercent',
+ label: '二级返佣比例',
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ max: 100,
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description: '订单交易成功后给推广人的推荐人返佣的百分比',
+ },
+ {
+ fieldName: 'brokerageFrozenDays',
+ label: '佣金冻结天数',
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description:
+ '防止用户退款,佣金被提现了,所以需要设置佣金冻结时间,单位:天',
+ },
+ {
+ fieldName: 'brokerageWithdrawMinPrice',
+ label: '提现最低金额',
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2,
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description: '用户提现最低金额限制,单位:元',
+ },
+ {
+ fieldName: 'brokerageWithdrawFeePercent',
+ label: '提现手续费',
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ max: 100,
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description:
+ '提现手续费百分比,范围 0-100,0 为无提现手续费。例:设置 10,即收取 10% 手续费,提现10 元,到账 9 元,1 元手续费',
+ },
+ {
+ fieldName: 'brokerageWithdrawTypes',
+ label: '提现方式',
+ component: 'CheckboxGroup',
+ componentProps: {
+ options: getDictOptions(DICT_TYPE.BROKERAGE_WITHDRAW_TYPE, 'number'),
+ class: 'w-full',
+ },
+ rules: 'required',
+ dependencies: {
+ triggerFields: ['type'],
+ show: (values) => values.type === 'brokerage',
+ },
+ description: '商城开通提现的付款方式',
+ },
+ ];
+}
diff --git a/apps/web-antd/src/views/mall/trade/config/index.vue b/apps/web-antd/src/views/mall/trade/config/index.vue
index f33c73328..6ca832a66 100644
--- a/apps/web-antd/src/views/mall/trade/config/index.vue
+++ b/apps/web-antd/src/views/mall/trade/config/index.vue
@@ -1,38 +1,99 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+