diff --git a/.env b/.env.admin similarity index 89% rename from .env rename to .env.admin index 39225ca2..d06d0835 100644 --- a/.env +++ b/.env.admin @@ -1,5 +1,5 @@ # 名称 -VITE_GLOB_APP_TITLE=DaxPay服务端 +VITE_GLOB_APP_TITLE=DaxPay运营端 # 压缩方式 'gzip' | 'brotli' | 'none' VITE_BUILD_COMPRESS='none' diff --git a/.env.build b/.env.admin-build similarity index 89% rename from .env.build rename to .env.admin-build index 39225ca2..d06d0835 100644 --- a/.env.build +++ b/.env.admin-build @@ -1,5 +1,5 @@ # 名称 -VITE_GLOB_APP_TITLE=DaxPay服务端 +VITE_GLOB_APP_TITLE=DaxPay运营端 # 压缩方式 'gzip' | 'brotli' | 'none' VITE_BUILD_COMPRESS='none' diff --git a/.env.merchant b/.env.merchant new file mode 100644 index 00000000..cd693606 --- /dev/null +++ b/.env.merchant @@ -0,0 +1,20 @@ +# 名称 +VITE_GLOB_APP_TITLE=DaxPay商户端 + +# 压缩方式 'gzip' | 'brotli' | 'none' +VITE_BUILD_COMPRESS='none' + +# 发布路径 +VITE_PUBLIC_PATH=/ + +# 接口地址 +VITE_GLOB_API_URL=/server + +# 接口前缀 +VITE_GLOB_API_URL_PREFIX= + +# 终端类型 +VITE_GLOB_APP_CLIENT=dax-pay-merchant + +# 超时时间 +VITE_GLOB_API_TIMEOUT=30000 diff --git a/.env.merchant-build b/.env.merchant-build new file mode 100644 index 00000000..cd693606 --- /dev/null +++ b/.env.merchant-build @@ -0,0 +1,20 @@ +# 名称 +VITE_GLOB_APP_TITLE=DaxPay商户端 + +# 压缩方式 'gzip' | 'brotli' | 'none' +VITE_BUILD_COMPRESS='none' + +# 发布路径 +VITE_PUBLIC_PATH=/ + +# 接口地址 +VITE_GLOB_API_URL=/server + +# 接口前缀 +VITE_GLOB_API_URL_PREFIX= + +# 终端类型 +VITE_GLOB_APP_CLIENT=dax-pay-merchant + +# 超时时间 +VITE_GLOB_API_TIMEOUT=30000 diff --git a/package.json b/package.json index d2d4a99b..8b64a218 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,17 @@ { - "name": "daxpay-multi-ui", + "name": "daxpay-ui", "version": "2.11.5", "homepage": "", "license": "Apache License v2", "type": "module", "scripts": { "bootstrap": "pnpm install", - "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pnpm vite build --mode build", "build:analyze": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pnpm vite build --mode analyze", "build:no-cache": "pnpm store prune && npm run build", - "dev": "pnpm vite --port=13333", + "build:admin": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pnpm vite build --mode admin-build", + "build:merchant": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pnpm vite build --mode merchant-build", + "dev:admin": "pnpm vite --mode admin --port=13333", + "dev:merchant": "pnpm vite --mode merchant --port=14444", "preinstall": "npx only-allow pnpm", "postinstall": "turbo run stub", "lint": "turbo run lint", diff --git a/src/enums/daxpay/daxpayEnum.ts b/src/enums/daxpay/daxpayEnum.ts index 7622ea6f..4588256e 100644 --- a/src/enums/daxpay/daxpayEnum.ts +++ b/src/enums/daxpay/daxpayEnum.ts @@ -85,16 +85,6 @@ export enum CashierTypeEnum { ALIPAY = 'alipay', } -/** - * 商户类型 - */ -export enum MerchantTypeEnum { - /** 普通商户 */ - COMMON = 'common', - /** 特约商户 */ - PARTNER = 'partner', -} - /** * 服务商状态枚举 */ diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts index fb841e4c..d16cc6a0 100644 --- a/src/router/routes/index.ts +++ b/src/router/routes/index.ts @@ -22,9 +22,6 @@ const redirectPage = () => { if (VITE_GLOB_APP_CLIENT === DaxPayClientEnum.ADMIN) { return PageEnum.ADMIN_HOME } - if (VITE_GLOB_APP_CLIENT === DaxPayClientEnum.AGENT) { - return PageEnum.AGENT_HOME - } return PageEnum.MERCHANT_HOME } diff --git a/src/router/routes/modules/dashboard.ts b/src/router/routes/modules/dashboard.ts index 3d08d703..804e14d8 100644 --- a/src/router/routes/modules/dashboard.ts +++ b/src/router/routes/modules/dashboard.ts @@ -20,6 +20,14 @@ const Dashboard: AppRouteModule = { title: '主页', }, }, + { + path: '/merchant/dashboard', + name: 'MerchantDashboard', + component: () => import('@/views/daxpay/merchant/dashboard/index.vue'), + meta: { + title: '主页', + }, + }, ], } diff --git a/src/views/daxpay/admin/config/platform/PlatformBasicConfig.vue b/src/views/daxpay/admin/config/platform/PlatformBasicConfig.vue new file mode 100644 index 00000000..a58931bd --- /dev/null +++ b/src/views/daxpay/admin/config/platform/PlatformBasicConfig.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts b/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts index c1ca9f6b..1badb04e 100644 --- a/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts +++ b/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts @@ -1,25 +1,129 @@ import { defHttp } from '@/utils/http/axios' import { Result } from '#/axios' -import { BaseEntity } from '#/web' /** - * 获取配置 + * 获取基础配置 */ -export function get(){ - return defHttp.get>({ url: '/platform/config/get' }) +export function getBasic() { + return defHttp.get>({ url: '/platform/config/basic/get' }) } -export function update(data: PlatformConfig) { - return defHttp.post({ url: '/platform/config/update', data }) +/** + * 修改基础配置 + */ +export function updateBasic(data: PlatformBasicConfig) { + return defHttp.post({ url: '/platform/config/basic/update', data }) } + +/** + * 获取访问地址配置 + */ +export function getUrls() { + return defHttp.get>({ url: '/platform/config/url/get' }) +} +/** + * 修改访问地址配置 + */ +export function updateUrls(data: PlatformUrlConfig) { + return defHttp.post({ url: '/platform/config/url/update', data }) +} + +/** + * 获取站点显示内容配置 + */ +export function getWebsite() { + return defHttp.get>({ url: '/platform/config/website/get' }) +} + +/** + * 修改站点显示内容配置 + */ +export function updateWebsite(data: PlatformWebsiteConfig) { + return defHttp.post({ url: '/platform/config/website/update', data }) +} + /** * 平台配置 */ -export interface PlatformConfig extends BaseEntity { - // 网关服务地址 - gatewayServiceUrl?: string - // 网关移动端地址 - gatewayMobileUrl?: string - // 全局支付限额 - limitAmount?: number +export interface PlatformBasicConfig { + /** 全局单笔限额 */ + singleLimitAmount?: number + /** 每月累计限额 */ + monthlyLimitAmount?: number + /** 每日限额 */ + dailyLimitAmount?: number +} + +/** + * 平台提现规则配置 + */ +export interface PlatformCashoutsConfig { + /** 起始提现额度 */ + startAmount?: number + /** 手续费计算公式 */ + feeFormula?: string + /** 单笔固定 */ + fixedFee?: number + /** 单笔费率 */ + fixedRate?: number + /** 组合 固定手续费 */ + fixedFeeCombined?: number + /** 组合 费率 */ + fixedRateCombined?: number + /** 冻结金额 */ + freezeAmount?: number +} + +/** + * 平台访问地址配置 + */ +export interface PlatformUrlConfig { + /** 运营端网址 */ + adminWebUrl?: string + /** 商户端网址 */ + mchWebUrl?: string + /** 支付网关地址 */ + gatewayServiceUrl?: string + /** 网关h5地址 */ + gatewayH5Url?: string +} + +/** + * 站点显示内容配置 + * @author xxm + * @since 2025/6/29 + */ +export interface PlatformWebsiteConfig { + /** 系统名称 */ + systemName?: string + /** 公司全称 */ + companyName?: string + /** 公司电话 */ + companyPhone?: string + /** 公司邮箱 */ + companyEmail?: string + /** 系统完整logo */ + wholeLogo?: string + /** 系统简化Logo */ + simpleLogo?: string + /** 工信部ICP备案信息 */ + icpInfo?: string + /** 工信部ICP链接地址 */ + icpLink?: string + /** 公网安备案信息 */ + mpsInfo?: string + /** 公网安备案链接地址 */ + mpsLink?: string + /** 中国支付清算协会备案信息 */ + pcacInfo?: string + /** 中国支付清算协会备案链接地址 */ + pcacLink?: string + /** 电信增值业务许可信息 */ + icpPlusInfo?: string + /** 电信增值业务许可链接地址 */ + icpPlusLink?: string + /** 版权信息 */ + copyright?: string + /** 版权信息链接 */ + copyrightLink?: string } diff --git a/src/views/daxpay/admin/config/platform/PlatformConfig.vue b/src/views/daxpay/admin/config/platform/PlatformConfig.vue index 0259492f..66748b85 100644 --- a/src/views/daxpay/admin/config/platform/PlatformConfig.vue +++ b/src/views/daxpay/admin/config/platform/PlatformConfig.vue @@ -1,120 +1,28 @@ diff --git a/src/views/daxpay/admin/config/platform/PlatformUrlConfig.vue b/src/views/daxpay/admin/config/platform/PlatformUrlConfig.vue new file mode 100644 index 00000000..30f62086 --- /dev/null +++ b/src/views/daxpay/admin/config/platform/PlatformUrlConfig.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/views/daxpay/admin/config/platform/PlatformWebsiteConfig.vue b/src/views/daxpay/admin/config/platform/PlatformWebsiteConfig.vue new file mode 100644 index 00000000..8d9f878f --- /dev/null +++ b/src/views/daxpay/admin/config/platform/PlatformWebsiteConfig.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/daxpay/admin/dashboard/IndexRepot.api.ts b/src/views/daxpay/admin/dashboard/IndexRepot.api.ts index efeac376..cf8d9baa 100644 --- a/src/views/daxpay/admin/dashboard/IndexRepot.api.ts +++ b/src/views/daxpay/admin/dashboard/IndexRepot.api.ts @@ -6,7 +6,7 @@ import { Result } from '#/axios' */ export function payTradeReport(params) { return defHttp.get>({ - url: '/report/index/pay', + url: '/admin/report/index/pay', params, }) } @@ -16,7 +16,7 @@ export function payTradeReport(params) { */ export function rfdTradeReport(params) { return defHttp.get>({ - url: '/report/index/refund', + url: '/admin/report/index/refund', params, }) } @@ -26,7 +26,7 @@ export function rfdTradeReport(params) { */ export function payChannelReport(params) { return defHttp.get>({ - url: '/report/index/payChannel', + url: '/admin/report/index/payChannel', params, }) } @@ -36,7 +36,7 @@ export function payChannelReport(params) { */ export function refundChannelReport(params) { return defHttp.get>({ - url: '/report/index/refundChannel', + url: '/admin/report/index/refundChannel', params, }) } @@ -46,14 +46,33 @@ export function refundChannelReport(params) { */ export function payMethodReport(params) { return defHttp.get>({ - url: '/report/index/payMethod', + url: '/admin/report/index/payMethod', params, }) } +/** + * 商户统计 + */ +export function merchantCountReport(params) { + return defHttp.get>({ + url: '/admin/report/index/merchantCount', + params, + }) +} /** - * 首页交易报表 + * 交易统计报表 + */ +export function tradeStatisticsReport(params) { + return defHttp.get>({ + url: '/admin/report/index/tradeStatisticsReport', + params, + }) +} + +/** + * 交易报表 */ export interface TradeReportResult { /** 标题 */ @@ -71,3 +90,31 @@ export interface TradeReportResult { /** 平均单笔金额 */ avgAmount?: number } + +/** + * 交易统计报表 + */ +export interface TradeStatisticsReport { + /** 日期 */ + date?: string + /** 交易金额 */ + payAmount?: number + /** 交易笔数 */ + payCount?: number + /** 退款金额 */ + refundAmount?: number + /** 退款笔数 */ + refundCount?: number +} + +/** + * 商户统计 + */ +export interface MerchantReportResult { + /** 商户数量 */ + normalCount?: number + + /** 商户应用数量 */ + normalAppCount?: number + +} diff --git a/src/views/daxpay/admin/dashboard/components/GrowCard.vue b/src/views/daxpay/admin/dashboard/components/GrowCard.vue index 38867834..fb8dcba4 100644 --- a/src/views/daxpay/admin/dashboard/components/GrowCard.vue +++ b/src/views/daxpay/admin/dashboard/components/GrowCard.vue @@ -1,68 +1,197 @@ + diff --git a/src/views/daxpay/admin/dashboard/components/VisitSource.vue b/src/views/daxpay/admin/dashboard/components/VisitSource.vue index 8211d12c..bc8c0268 100644 --- a/src/views/daxpay/admin/dashboard/components/VisitSource.vue +++ b/src/views/daxpay/admin/dashboard/components/VisitSource.vue @@ -1,51 +1,95 @@ + diff --git a/src/views/daxpay/admin/dashboard/index.vue b/src/views/daxpay/admin/dashboard/index.vue index e7ed2f96..e3130585 100644 --- a/src/views/daxpay/admin/dashboard/index.vue +++ b/src/views/daxpay/admin/dashboard/index.vue @@ -1,21 +1,82 @@ + + + diff --git a/src/views/daxpay/admin/isv/config/IsvChannelConfig.api.ts b/src/views/daxpay/admin/isv/config/IsvChannelConfig.api.ts new file mode 100644 index 00000000..9379ed99 --- /dev/null +++ b/src/views/daxpay/admin/isv/config/IsvChannelConfig.api.ts @@ -0,0 +1,27 @@ +import { defHttp } from '@/utils/http/axios' +import { Result } from '#/axios' +import { MchEntity } from '#/web' + +/** + * 配置列表 + */ +export function findAll() { + return defHttp.get>({ + url: '/isv/channel/config/findAll', + }) +} + +/** + * 服务商通道配置 + */ +export interface IsvChannelConfig extends MchEntity { + channel?: string + // 通道名称 + name?: string + // 是否启用 + enable?: boolean + // 通道服务商号 + outIsvNo?: string + // 服务商号 + isvNo?: string +} diff --git a/src/views/daxpay/admin/isv/config/IsvChannelConfigEdit.vue b/src/views/daxpay/admin/isv/config/IsvChannelConfigEdit.vue new file mode 100644 index 00000000..562c964a --- /dev/null +++ b/src/views/daxpay/admin/isv/config/IsvChannelConfigEdit.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/daxpay/admin/isv/config/IsvChannelConfigList.vue b/src/views/daxpay/admin/isv/config/IsvChannelConfigList.vue new file mode 100644 index 00000000..11507fee --- /dev/null +++ b/src/views/daxpay/admin/isv/config/IsvChannelConfigList.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/views/daxpay/admin/isv/gateway/GatewayConfig.api.ts b/src/views/daxpay/admin/isv/gateway/GatewayConfig.api.ts new file mode 100644 index 00000000..509a58c8 --- /dev/null +++ b/src/views/daxpay/admin/isv/gateway/GatewayConfig.api.ts @@ -0,0 +1,54 @@ +import { defHttp } from '@/utils/http/axios' +import { Result } from '#/axios' +import { MchEntity } from '#/web' + +/** + * 获取网关支付配置 + */ +export function getConfig() { + return defHttp.get>({ + url: '/isv/gateway/config/getConfig', + }) +} + +/** + * 保存网关支付配置 + */ +export function saveConfig(data: GatewayConfig) { + return defHttp.post>({ + url: '/isv/gateway/config/save', + data, + }) +} + +/** + * 更新网关支付配置 + */ +export function updateConfig(data: GatewayConfig) { + return defHttp.post>({ + url: '/isv/gateway/config/update', + data, + }) +} + +/** + * 收银台配置 + */ +export interface GatewayConfig extends MchEntity { + /** 收银台名称 */ + name?: string + /** PC收银台是否同时显示聚合收银码 */ + aggregateShow?: boolean + /** PC收银台是否显示聚合条码支付 */ + barPayShow?: boolean + /** h5收银台自动升级聚合支付 */ + h5AutoUpgrade?: boolean + /** 小程序开启分账 */ + miniAppAllocation?: boolean + /** 小程序自动分账 */ + miniAppAutoAllocation?: boolean + /** 限制小程序支付方式 */ + miniAppLimitPay?: string + /** 小程序关联终端号 */ + miniAppTerminalNo?: string +} diff --git a/src/views/daxpay/admin/isv/gateway/GatewayConfigEdit.vue b/src/views/daxpay/admin/isv/gateway/GatewayConfigEdit.vue new file mode 100644 index 00000000..bbe33b0d --- /dev/null +++ b/src/views/daxpay/admin/isv/gateway/GatewayConfigEdit.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/views/daxpay/admin/isv/gateway/GatewayConfigModel.vue b/src/views/daxpay/admin/isv/gateway/GatewayConfigModel.vue new file mode 100644 index 00000000..6d7cf88d --- /dev/null +++ b/src/views/daxpay/admin/isv/gateway/GatewayConfigModel.vue @@ -0,0 +1,41 @@ + + + + diff --git a/src/views/daxpay/admin/isv/gateway/aggregate/Aggregate.api.ts b/src/views/daxpay/admin/isv/gateway/aggregate/Aggregate.api.ts new file mode 100644 index 00000000..f3ac7fa4 --- /dev/null +++ b/src/views/daxpay/admin/isv/gateway/aggregate/Aggregate.api.ts @@ -0,0 +1,194 @@ +import { defHttp } from '@/utils/http/axios' +import { Result } from '#/axios' +import { MchEntity } from '#/web' + +/** + * 获取聚合支付配置(列表) + */ +export function getAggregateConfigs() { + return defHttp.get>({ + url: '/isv/aggregate/config/listByPay', + }) +} +/** + * 获取聚合支付配置(根据Id) + */ +export function getAggregateConfig(id) { + return defHttp.get>({ + url: '/isv/aggregate/config/findPayById', + params: { + id, + }, + }) +} + +/** + * 聚合支付配置是否存在 + */ +export function existsAggregateConfig(type) { + return defHttp.get>({ + url: '/isv/aggregate/config/existsPay', + params: { + type, + }, + }) +} + +/** + * 聚合支付配置是否存在(不包含自身) + */ +export function existsAggregateConfigNotId(type, id) { + return defHttp.get>({ + url: '/isv/aggregate/config/existsPayNotId', + params: { + type, + id, + }, + }) +} + +/** + * 保存聚合支付配置 + */ +export function saveAggregateConfig(data: AggregateConfig) { + return defHttp.post>({ + url: '/isv/aggregate/config/savePay', + data, + }) +} + +/** + * 更新聚合支付配置 + */ +export function updateAggregateConfig(data: AggregateConfig) { + return defHttp.post>({ + url: '/isv/aggregate/config/updatePay', + data, + }) +} + +/** + * 删除聚合支付配置 + */ +export function delAggregateConfig(id) { + return defHttp.post({ + url: '/isv/aggregate/config/deletePay', + params: { id }, + }) +} + +/** + * 获取聚合付款码支付配置(列表) + */ +export function getAggregatePayCodeConfigs() { + return defHttp.get>({ + url: '/isv/aggregate/config/listByBar', + }) +} + +/** + * 获取聚合付款码支付配置(根据ID) + */ +export function getAggregatePayCodeConfig(id) { + return defHttp.get>({ + url: '/isv/aggregate/config/findBarById', + params: { + id, + }, + }) +} + +/** + * 聚合付款码支付配置是否存在 + */ +export function existsAggregatePayCodeConfig(type) { + return defHttp.get>({ + url: '/isv/aggregate/config/existsBar', + params: { + type, + }, + }) +} + +/** + * 聚合付款码支付配置是否存在(不包含自身) + */ +export function existsAggregatePayCodeConfigNotId(type, id) { + return defHttp.get>({ + url: '/isv/aggregate/config/existsBarNotId', + params: { + type, + id, + }, + }) +} + +/** + * 保存聚合付款码支付配置 + */ +export function saveAggregatePayCodeConfig(data: AggregateConfig) { + return defHttp.post>({ + url: '/isv/aggregate/config/saveBar', + data, + }) +} + +/** + * 更新聚合付款码支付配置 + */ +export function updateAggregatePayCodeConfig(data: AggregateConfig) { + return defHttp.post>({ + url: '/isv/aggregate/config/updateBar', + data, + }) +} + +/** + * 删除聚合付款码支付配置 + */ +export function delAggregatePayCodeConfig(id) { + return defHttp.post({ + url: '/isv/aggregate/config/deleteBar', + params: { id }, + }) +} + +/** + * 收银台聚合扫码支付配置 + */ +export interface AggregateConfig extends MchEntity { + /** 支付类型 */ + type?: string + /** 支付类型 */ + aggregateType?: string + /** 通道 */ + channel?: string + /** 支付方式 */ + payMethod?: string + /** 自动拉起支付 */ + autoLaunch?: boolean + /** 需要获取OpenId */ + needOpenId?: boolean + /** 其他支付方式 */ + otherMethod?: string + /** 发起调用的类型 */ + callType?: string +} + +/** + * 收银台聚合付款码支付配置 + */ +export interface AggregatePayCodeConfig extends MchEntity { + /** 付款码类型 */ + barPayType?: string + /** 通道 */ + channel?: string + /** 支付方式 */ + payMethod?: string + /** 其他支付方式 */ + otherMethod?: string + /** 自动拉起支付 */ + autoLaunch?: boolean + /** 需要获取OpenId */ + needOpenId?: boolean +} diff --git a/src/views/daxpay/admin/isv/gateway/aggregate/AggregateCodeEdit.vue b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateCodeEdit.vue new file mode 100644 index 00000000..59091318 --- /dev/null +++ b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateCodeEdit.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/src/views/daxpay/admin/isv/gateway/aggregate/AggregateCodeList.vue b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateCodeList.vue new file mode 100644 index 00000000..28145272 --- /dev/null +++ b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateCodeList.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/daxpay/admin/isv/gateway/aggregate/AggregateConfigEdit.vue b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateConfigEdit.vue new file mode 100644 index 00000000..f3f7b303 --- /dev/null +++ b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateConfigEdit.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/daxpay/common/merchant/gateway/codeCard/CodeCardTypeConfigList.vue b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateConfigList.vue similarity index 53% rename from src/views/daxpay/common/merchant/gateway/codeCard/CodeCardTypeConfigList.vue rename to src/views/daxpay/admin/isv/gateway/aggregate/AggregateConfigList.vue index 30be3cba..dcce1b71 100644 --- a/src/views/daxpay/common/merchant/gateway/codeCard/CodeCardTypeConfigList.vue +++ b/src/views/daxpay/admin/isv/gateway/aggregate/AggregateConfigList.vue @@ -1,12 +1,5 @@ + + diff --git a/src/views/daxpay/common/device/terminal/channel/ChannelTerminalEdit.vue b/src/views/daxpay/common/device/terminal/channel/ChannelTerminalEdit.vue new file mode 100644 index 00000000..5c6cf2d2 --- /dev/null +++ b/src/views/daxpay/common/device/terminal/channel/ChannelTerminalEdit.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/views/daxpay/common/device/terminal/channel/ChannelTerminalList.vue b/src/views/daxpay/common/device/terminal/channel/ChannelTerminalList.vue new file mode 100644 index 00000000..70a2531c --- /dev/null +++ b/src/views/daxpay/common/device/terminal/channel/ChannelTerminalList.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/daxpay/common/merchant/cashier/ChannelCashierConfig.api.ts b/src/views/daxpay/common/merchant/cashier/ChannelCashierConfig.api.ts deleted file mode 100644 index 5643998d..00000000 --- a/src/views/daxpay/common/merchant/cashier/ChannelCashierConfig.api.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { defHttp } from '@/utils/http/axios' -import { Result } from '#/axios' -import { MchEntity } from '#/web' - -/** - * 配置列表 - */ -export function findAll(appId) { - return defHttp.get>({ - url: '/channel/cashier/config/findByAppId', - params: { appId }, - }) -} - -/** - * 配置详情 - */ -export function get(id) { - return defHttp.get>({ - url: '/channel/cashier/config/findById', - params: { id }, - }) -} - -/** - * 配置是否存在 - */ -export function existsByType(appId, type) { - return defHttp.get>({ - url: '/channel/cashier/config/existsByType', - params: { appId, type }, - }) -} - -/** - * 配置是否存在 - */ -export function existsByTypeNotId(appId, type, id) { - return defHttp.get>({ - url: '/channel/cashier/config/existsByTypeNotId', - params: { appId, type, id }, - }) -} - -/** - * 配置保存 - */ -export function add(data: ChannelCashierConfig) { - return defHttp.post>({ - url: '/channel/cashier/config/save', - data, - }) -} - -/** - * 配置更新 - */ -export function update(data: ChannelCashierConfig) { - return defHttp.post>({ - url: '/channel/cashier/config/update', - data, - }) -} - -/** - * 配置删除 - */ -export function remove(id) { - return defHttp.post>({ - url: '/channel/cashier/config/delete', - params: { id }, - }) -} - -/** - * 获取码牌地址 - */ -export function getQrCodeUrl(appId) { - return defHttp.get>({ - url: '/channel/cashier/config/qrCodeUrl', - params: { appId }, - }) -} - -/** - * 通道收银台配置 - */ -export interface ChannelCashierConfig extends MchEntity { - // 收银台类型 - cashierType?: string - // 收银台名称 - cashierName?: string - // 支付通道 - channel?: string - // 支付方式 - payMethod?: string - // 是否开启分账 - allocation?: boolean - // 自动分账 - autoAllocation?: boolean - // 备注 - remark?: string -} diff --git a/src/views/daxpay/common/merchant/cashier/ChannelCashierConfigEdit.vue b/src/views/daxpay/common/merchant/cashier/ChannelCashierConfigEdit.vue deleted file mode 100644 index 0efd88d3..00000000 --- a/src/views/daxpay/common/merchant/cashier/ChannelCashierConfigEdit.vue +++ /dev/null @@ -1,230 +0,0 @@ - - - - - diff --git a/src/views/daxpay/common/merchant/cashier/ChannelCashierConfigList.vue b/src/views/daxpay/common/merchant/cashier/ChannelCashierConfigList.vue deleted file mode 100644 index 80b308a4..00000000 --- a/src/views/daxpay/common/merchant/cashier/ChannelCashierConfigList.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - diff --git a/src/views/daxpay/common/merchant/cashier/ChannelCashierQrCode.vue b/src/views/daxpay/common/merchant/cashier/ChannelCashierQrCode.vue deleted file mode 100644 index 59cfc922..00000000 --- a/src/views/daxpay/common/merchant/cashier/ChannelCashierQrCode.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - - diff --git a/src/views/daxpay/common/merchant/config/ChannelConfig.api.ts b/src/views/daxpay/common/merchant/config/ChannelConfig.api.ts index 42918090..2d76e42b 100644 --- a/src/views/daxpay/common/merchant/config/ChannelConfig.api.ts +++ b/src/views/daxpay/common/merchant/config/ChannelConfig.api.ts @@ -2,6 +2,7 @@ import { defHttp } from '@/utils/http/axios' import { Result } from '#/axios' import { MchEntity } from '#/web' import { unref } from 'vue' +import { LabeledValue } from 'ant-design-vue/lib/select' /** * 列表 @@ -15,6 +16,16 @@ export function findAll(appId) { }) } +/** + * 根据应用AppId获取启用的通道 + */ +export function dropdownByEnable(appId) { + return defHttp.get>({ + url: '/channel/config/dropdownByEnable', + params: { appId }, + }) +} + /** * 支付通道配置 */ diff --git a/src/views/daxpay/common/merchant/config/ChannelConfigEdit.vue b/src/views/daxpay/common/merchant/config/ChannelConfigEdit.vue index 55819a96..66b9003f 100644 --- a/src/views/daxpay/common/merchant/config/ChannelConfigEdit.vue +++ b/src/views/daxpay/common/merchant/config/ChannelConfigEdit.vue @@ -1,24 +1,28 @@ - - diff --git a/src/views/daxpay/common/notice/callback/CallbackTaskInfo.vue b/src/views/daxpay/common/notice/callback/CallbackTaskInfo.vue index 7a4190c9..3462e720 100644 --- a/src/views/daxpay/common/notice/callback/CallbackTaskInfo.vue +++ b/src/views/daxpay/common/notice/callback/CallbackTaskInfo.vue @@ -38,6 +38,9 @@ {{ task.createTime }} + + {{ task.mchNo }} + {{ task.appId }} diff --git a/src/views/daxpay/common/notice/callback/CallbackTaskList.vue b/src/views/daxpay/common/notice/callback/CallbackTaskList.vue index a1a3f9c6..6877ab81 100644 --- a/src/views/daxpay/common/notice/callback/CallbackTaskList.vue +++ b/src/views/daxpay/common/notice/callback/CallbackTaskList.vue @@ -49,7 +49,8 @@ align="center" /> - + + + + diff --git a/src/views/daxpay/merchant/app/MchAppList.vue b/src/views/daxpay/merchant/app/MchAppList.vue new file mode 100644 index 00000000..aea09f2f --- /dev/null +++ b/src/views/daxpay/merchant/app/MchAppList.vue @@ -0,0 +1,250 @@ + + + + + diff --git a/src/views/daxpay/merchant/dashboard/IndexRepot.api.ts b/src/views/daxpay/merchant/dashboard/IndexRepot.api.ts new file mode 100644 index 00000000..f1eea00a --- /dev/null +++ b/src/views/daxpay/merchant/dashboard/IndexRepot.api.ts @@ -0,0 +1,107 @@ +import { defHttp } from '@/utils/http/axios' +import { Result } from '#/axios' + +/** + * 获取商户信息 + */ +export function getShopInfo() { + return defHttp.get({ + url: '/merchant/get', + }) +} + +/** + * 支付交易信息统计 + */ +export function payTradeReport(params) { + return defHttp.get>({ + url: '/merchant/report/index/pay', + params, + }) +} + +/** + * 退款交易信息统计 + */ +export function rfdTradeReport(params) { + return defHttp.get>({ + url: '/merchant/report/index/refund', + params, + }) +} + +/** + * 支付交易通道统计 + */ +export function payChannelReport(params) { + return defHttp.get>({ + url: '/merchant/report/index/payChannel', + params, + }) +} + +/** + * 退款交易通道统计 + */ +export function refundChannelReport(params) { + return defHttp.get>({ + url: '/merchant/report/index/refundChannel', + params, + }) +} + +/** + * 支付方式统计 + */ +export function payMethodReport(params) { + return defHttp.get>({ + url: '/merchant/report/index/payMethod', + params, + }) +} + +/** + * 交易统计报表 + */ +export function tradeStatisticsReport(params) { + return defHttp.get>({ + url: '/merchant/report/index/tradeStatisticsReport', + params, + }) +} + +/** + * 交易报表 + */ +export interface TradeReportResult { + /** 标题 */ + title?: string + + /** 交易金额 */ + tradeAmount?: number + + /** 交易笔数 */ + tradeCount?: number + + /** 最大单笔金额 */ + maxAmount?: number + + /** 平均单笔金额 */ + avgAmount?: number +} + +/** + * 交易统计报表 + */ +export interface TradeStatisticsReport { + /** 日期 */ + date?: string + /** 交易金额 */ + payAmount?: number + /** 交易笔数 */ + payCount?: number + /** 退款金额 */ + refundAmount?: number + /** 退款笔数 */ + refundCount?: number +} diff --git a/src/views/daxpay/merchant/dashboard/components/GrowCard.vue b/src/views/daxpay/merchant/dashboard/components/GrowCard.vue new file mode 100644 index 00000000..1ba72205 --- /dev/null +++ b/src/views/daxpay/merchant/dashboard/components/GrowCard.vue @@ -0,0 +1,374 @@ + + + diff --git a/src/views/daxpay/merchant/dashboard/components/SiteAnalysis.vue b/src/views/daxpay/merchant/dashboard/components/SiteAnalysis.vue new file mode 100644 index 00000000..2a78de59 --- /dev/null +++ b/src/views/daxpay/merchant/dashboard/components/SiteAnalysis.vue @@ -0,0 +1,44 @@ + + diff --git a/src/views/daxpay/merchant/dashboard/components/VisitAnalysis.vue b/src/views/daxpay/merchant/dashboard/components/VisitAnalysis.vue new file mode 100644 index 00000000..0da2a5eb --- /dev/null +++ b/src/views/daxpay/merchant/dashboard/components/VisitAnalysis.vue @@ -0,0 +1,83 @@ + + diff --git a/src/views/daxpay/merchant/dashboard/components/VisitSource.vue b/src/views/daxpay/merchant/dashboard/components/VisitSource.vue new file mode 100644 index 00000000..bc8c0268 --- /dev/null +++ b/src/views/daxpay/merchant/dashboard/components/VisitSource.vue @@ -0,0 +1,278 @@ + + + diff --git a/src/views/daxpay/merchant/dashboard/index.vue b/src/views/daxpay/merchant/dashboard/index.vue new file mode 100644 index 00000000..e790e6be --- /dev/null +++ b/src/views/daxpay/merchant/dashboard/index.vue @@ -0,0 +1,81 @@ + + + + diff --git a/src/views/daxpay/merchant/info/MerchantInfo.api.ts b/src/views/daxpay/merchant/info/MerchantInfo.api.ts new file mode 100644 index 00000000..ef69b22b --- /dev/null +++ b/src/views/daxpay/merchant/info/MerchantInfo.api.ts @@ -0,0 +1,22 @@ +import { defHttp } from '@/utils/http/axios' +import { Result } from '#/axios' +import { Merchant } from '@/views/daxpay/admin/merchant/info/Merchant.api' + +/** + * 获取商户信息 + */ +export const get = () => { + return defHttp.get>({ + url: '/merchant/get', + }) +} + +/** + * 更新 + */ +export const update = (data: Merchant) => { + return defHttp.post>({ + url: '/merchant/update', + data, + }) +} diff --git a/src/views/daxpay/merchant/info/MerchantInfo.vue b/src/views/daxpay/merchant/info/MerchantInfo.vue new file mode 100644 index 00000000..fa467226 --- /dev/null +++ b/src/views/daxpay/merchant/info/MerchantInfo.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/src/views/sys/login/Login.vue b/src/views/sys/login/Login.vue index 863d7a15..d9a8a17c 100644 --- a/src/views/sys/login/Login.vue +++ b/src/views/sys/login/Login.vue @@ -18,7 +18,7 @@ 支付系统
支持聚合支付、分账、商户进件、代理商、商户管理等功能 + >支持聚合支付、服务商模式等功能
diff --git a/types/web.d.ts b/types/web.d.ts index a3c9bc26..b5d200ae 100644 --- a/types/web.d.ts +++ b/types/web.d.ts @@ -34,6 +34,10 @@ export interface BaseEntity { * 商户应用基础实体对象 */ export interface MchEntity extends BaseEntity { + // 商户号 + mchNo?: string + // 商户名称 + mchName?: string // 应用号 appId?: string // 应用名称