- 新建
+
+ 新建
+
+ 批量操作
+
+
+
+ 代理商划拨
+
+
+ 代理商回收
+
+
+ 商户应用绑定
+
+
+ 商户应用解绑
+
+
+ 应用绑定
+
+
+ 应用解绑
+
+
+
+
+
@@ -33,9 +53,11 @@
ref="xTable"
:data="pagination.records"
:loading="loading"
+ @checkbox-all="selectAllEvent"
+ @checkbox-change="selectChangeEvent"
@sort-change="sortChange"
>
-
+
@@ -55,12 +77,28 @@
{{ row.gps ? '支持' : '不支持' }}
-
-
-
+
+
+ {{ row.agentName }}
+
+
+
+
+ {{ row.mchName || '未绑定' }}
+
+
+
+
+ {{ row.appName || '未绑定' }}
+
+
+
+
编辑
+ 通道报送
+
删除
@@ -76,12 +114,16 @@
/>
-
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+ {{ dictConvert('channel', row.channel) }}
+
+
+ {{ dictConvert('channel', row.channel) }}
+
+
+
+
+
+ {{ dictConvert('terminal_type', row.type) }}
+
+
+
+
+ {{ dictConvert('channel_terminal_status', row.status) || '未创建' }}
+
+
+
+
+
+
+
+ 报送
+
+
+
+ 注销
+
+
+ 生成配置
+
+ 信息修改
+
+ 信息同步
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
- 新建
-
-
-
-
-
-
-
- {{ dictConvert('cashier_type', row.cashierType) }}
-
-
-
-
-
- {{ dictConvert('channel', row.channel) }}
-
-
-
-
- {{ dictConvert('pay_method', row.payMethod) }}
-
-
-
-
- 开启
- 关闭
-
-
-
-
- 开启
- 关闭
-
-
-
-
-
-
- 查看
-
- 编辑
-
- 删除
-
-
-
-
-
-
-
-
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"
/>
-
+
+
@@ -79,7 +80,7 @@
+
+
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 @@
+
+
+
+
我的应用
+
+
+
+
+
+
{{ item.appName }}
+
修改
+
+
应用ID: {{ item.appId }}
+
+
{{ dictConvert('mch_app_status', item.status) || '空' }}
+
通道配置
+
+
+ 更多
+
+
+
+ 订阅配置
+
+
+ 网关支付
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+

+
添加新应用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+

+
+
+
{{ infoData.mchName }}
+
+
商户编号:{{ infoData.mchNo || '暂无配置' }}
+
+
状态:{{
+ infoData.status === MerchantStatusEnum.ENABLED ? '启用' : '禁用'
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
退款订单
+
+
+
+
+

+
+
+
+
+
+

+
+
+
+
+

+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
通知公告
+
+
+
公告{{ item }}
+
2025-06-01
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+ {{ form.mchName }}
+
+
+
+
+ {{ form.mchNo }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 更新
+ 编辑信息
+
+
+
+
+
+
+
+
+
+
+
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 @@
支付系统