diff --git a/index.html b/index.html
index 4ad6edd..85901d7 100644
--- a/index.html
+++ b/index.html
@@ -15,7 +15,7 @@
;(() => {
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')
const darkMode = mediaQuery.matches ? 'light' : 'light'
- const { appTheme = '#5d9dfe' } =
+ const { appTheme = '#f8d03b' } =
JSON.parse(window.localStorage.getItem('DESIGN-SETTING')) || {}
let htmlRoot = document.getElementById('htmlRoot')
diff --git a/src/router/daxpay.ts b/src/router/daxpay.ts
index 9bb5d37..fdcd5fc 100644
--- a/src/router/daxpay.ts
+++ b/src/router/daxpay.ts
@@ -218,6 +218,14 @@ export const DaxPayAgentMiniRoute: RouteRecordRaw = {
title: '结算信息',
},
},
+ {
+ path: '/mini/agent/wallet/cashouts',
+ name: 'AgentCashoutsApply',
+ component: () => import('@/views/daxpay/miniapp/agent/wallet/cashouts/CashoutsApply.vue'),
+ meta: {
+ title: '提现申请',
+ },
+ },
],
}
diff --git a/src/settings/designSetting.ts b/src/settings/designSetting.ts
index 87779cf..bb92f01 100644
--- a/src/settings/designSetting.ts
+++ b/src/settings/designSetting.ts
@@ -35,7 +35,7 @@ export const appThemeList: string[] = [
const setting: DesignSettingState = {
// 系统主题色
- appTheme: '#5d9dfe',
+ appTheme: '#f2d15a',
// 系统内置主题色列表
appThemeList,
// 是否开启路由动画
diff --git a/src/styles/vant.less b/src/styles/vant.less
index 7f36ed6..2621d2a 100644
--- a/src/styles/vant.less
+++ b/src/styles/vant.less
@@ -4,6 +4,9 @@
// 详情:https: //vant-contrib.gitee.io/vant/v4/#/zh-CN/config-provider#bian-liang-lie-biao
body {
--van-primary-color: @primaryColor;
+ --van-button-default-color: #777777;
+ --van-button-primary-color: #777777;
+ --van-button-normal-font-size: 14px;
}
.van-action-sheet__cancel {
@@ -16,3 +19,6 @@ body {
justify-content: center;
height: 100%;
}
+.van-button__text{
+ //color: #777777;
+}
diff --git a/src/styles/var.less b/src/styles/var.less
index 59743ee..69e3850 100644
--- a/src/styles/var.less
+++ b/src/styles/var.less
@@ -1,4 +1,4 @@
// 这里定义全局变量
-@primaryColor: #5d9dfe;
+@primaryColor: #f8d03b;
@header-height: 46px;
@footer-height: 50px;
diff --git a/src/views/daxpay/h5/onboarded/hkrt/HkrtApply.vue b/src/views/daxpay/h5/onboarded/hkrt/HkrtApply.vue
index 0338ad4..d51aa6d 100644
--- a/src/views/daxpay/h5/onboarded/hkrt/HkrtApply.vue
+++ b/src/views/daxpay/h5/onboarded/hkrt/HkrtApply.vue
@@ -777,7 +777,7 @@
-
+
暂存
@@ -904,16 +904,16 @@ function initData() {
pca.value = data
})
- // 获取权限配置和费率配置
- Promise.all([
- getAgentPermConfig(),
- getConfig(),
- ]).then(([permRes, rateRes]) => {
- agentPerm.value = permRes.data
- agentRate.value = rateRes.data
- }).catch(() => {
- showNotify({ type: 'danger', message: '获取权限或费率配置失败' })
- })
+ // 只有在dax-pay-agent客户端才获取权限配置和费率配置
+ if (clientCode === 'dax-pay-agent') {
+ Promise.all([
+ getAgentPermConfig(),
+ getConfig(),
+ ]).then(([permRes, rateRes]) => {
+ agentPerm.value = permRes.data
+ agentRate.value = rateRes.data
+ })
+ }
}
/**
@@ -1154,7 +1154,7 @@ async function readMchData() {
font-weight: 600;
letter-spacing: 2px;
.current {
- color: #448ef7;
+ color: #ff8a00;
}
}
.formBox {
@@ -1171,7 +1171,7 @@ async function readMchData() {
align-items: center;
padding: 0 1.25rem;
background-color: #f7f7f7;
- color: #448ef7;
+ color: #5C4B37;
letter-spacing: 1px;
position: relative;
font-weight: 600;
@@ -1183,7 +1183,7 @@ async function readMchData() {
content: '';
width: 0.3125rem;
height: 1.25rem;
- background-color: #448ef7;
+ background-color: #ff8a00;
}
}
}
diff --git a/src/views/daxpay/h5/onboarded/leshua/LeshuaApply.vue b/src/views/daxpay/h5/onboarded/leshua/LeshuaApply.vue
index c8650f6..1f5ef67 100644
--- a/src/views/daxpay/h5/onboarded/leshua/LeshuaApply.vue
+++ b/src/views/daxpay/h5/onboarded/leshua/LeshuaApply.vue
@@ -631,7 +631,7 @@
-
+
暂存
@@ -970,7 +970,7 @@ async function readMchData() {
font-weight: 600;
letter-spacing: 2px;
.current {
- color: #448ef7;
+ color: #ff8a00;
}
}
.formBox {
@@ -987,7 +987,7 @@ async function readMchData() {
align-items: center;
padding: 0 1.25rem;
background-color: #f7f7f7;
- color: #448ef7;
+ color: #5C4B37;
letter-spacing: 1px;
position: relative;
font-weight: 600;
@@ -999,7 +999,7 @@ async function readMchData() {
content: '';
width: 0.3125rem;
height: 1.25rem;
- background-color: #448ef7;
+ background-color: #ff8a00;
}
}
}
diff --git a/src/views/daxpay/h5/onboarded/sand/SandApply.vue b/src/views/daxpay/h5/onboarded/sand/SandApply.vue
index 2d65a29..3052d43 100644
--- a/src/views/daxpay/h5/onboarded/sand/SandApply.vue
+++ b/src/views/daxpay/h5/onboarded/sand/SandApply.vue
@@ -507,7 +507,7 @@
-
+
暂存
@@ -813,7 +813,7 @@ async function readMchData() {
font-weight: 600;
letter-spacing: 2px;
.current {
- color: #448ef7;
+ color: #ff8a00;
}
}
.formBox {
@@ -830,7 +830,7 @@ async function readMchData() {
align-items: center;
padding: 0 1.25rem;
background-color: #f7f7f7;
- color: #448ef7;
+ color: #5C4B37;
letter-spacing: 1px;
position: relative;
font-weight: 600;
@@ -842,7 +842,7 @@ async function readMchData() {
content: '';
width: 0.3125rem;
height: 1.25rem;
- background-color: #448ef7;
+ background-color: #ff8a00;
}
}
}
diff --git a/src/views/daxpay/h5/onboarded/vbill/VbillApply.vue b/src/views/daxpay/h5/onboarded/vbill/VbillApply.vue
index be6eba4..c400f08 100644
--- a/src/views/daxpay/h5/onboarded/vbill/VbillApply.vue
+++ b/src/views/daxpay/h5/onboarded/vbill/VbillApply.vue
@@ -951,7 +951,7 @@
-
+
暂存
@@ -1356,7 +1356,7 @@ async function readMchData() {
font-weight: 600;
letter-spacing: 2px;
.current {
- color: #448ef7;
+ color: #ff8a00;
}
}
.formBox {
@@ -1373,7 +1373,7 @@ async function readMchData() {
align-items: center;
padding: 0 1.25rem;
background-color: #f7f7f7;
- color: #448ef7;
+ color: #5C4B37;
letter-spacing: 1px;
position: relative;
font-weight: 600;
@@ -1385,7 +1385,7 @@ async function readMchData() {
content: '';
width: 0.3125rem;
height: 1.25rem;
- background-color: #448ef7;
+ background-color: #ff8a00;
}
}
}
diff --git a/src/views/daxpay/miniapp/agent/merchant/profile/MchMainBody.vue b/src/views/daxpay/miniapp/agent/merchant/profile/MchMainBody.vue
index 0ee090a..e471b54 100644
--- a/src/views/daxpay/miniapp/agent/merchant/profile/MchMainBody.vue
+++ b/src/views/daxpay/miniapp/agent/merchant/profile/MchMainBody.vue
@@ -653,11 +653,11 @@ onMounted(() => {
}
.form-content {
+ /* 主体内容滚动 */
flex: 1;
- overflow-y: scroll;
+ overflow-y: auto;
-webkit-overflow-scrolling: touch;
- padding: 20px 0;
- padding-bottom: 80px; /* 为底部按钮留出空间 */
+ padding-bottom: 12px;
}
.loading-wrapper {
@@ -672,44 +672,26 @@ onMounted(() => {
/* 卡片样式 */
.status-card,
.info-card {
- margin-bottom: 16px;
- background: #fff;
- border-radius: 0;
+ margin: 12px 8px;
+ border-radius: 8px;
overflow: hidden;
- box-shadow: none;
+ background: #fff;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.card-header {
- height: 50px;
- width: 100%;
display: flex;
align-items: center;
- padding: 0 20px;
- background-color: #f7f7f7;
- color: #448ef7;
- letter-spacing: 1px;
- position: relative;
- font-weight: 600;
- border-bottom: none;
-
- &::before {
- position: absolute;
- top: 50%;
- left: 5px;
- transform: translateY(-50%);
- content: '';
- width: 5px;
- height: 20px;
- background-color: #448ef7;
- }
+ height: 34px;
+ padding: 0 14px;
+ background-color: #fff4c5;
}
.card-title {
- display: flex;
- align-items: center;
- gap: 8px;
font-size: 14px;
- color: #448ef7;
+ font-weight: 500;
+ color: #5c4b37;
+ line-height: 1.2;
}
/* 认证状态样式优化 */
@@ -758,10 +740,6 @@ onMounted(() => {
}
.bottom-btn {
- position: fixed;
- bottom: 0;
- left: 0;
- right: 0;
background: white;
padding: 15px 20px;
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
diff --git a/src/views/daxpay/miniapp/agent/merchant/profile/MchSettleInfo.vue b/src/views/daxpay/miniapp/agent/merchant/profile/MchSettleInfo.vue
index 2ecec56..29b1b10 100644
--- a/src/views/daxpay/miniapp/agent/merchant/profile/MchSettleInfo.vue
+++ b/src/views/daxpay/miniapp/agent/merchant/profile/MchSettleInfo.vue
@@ -318,14 +318,16 @@ onMounted(() => {
.card-header {
display: flex;
align-items: center;
- height: 40px;
+ height: 34px;
padding: 0 14px;
- background-color: #ecf5ff;
+ background-color: #fff4c5;
}
.card-title {
- font-size: 16px;
- color: #409eff;
+ font-size: 14px;
+ font-weight: 500;
+ color: #5c4b37;
+ line-height: 1.2;
}
/* 让内嵌面板去掉默认边距,卡片白底由容器负责 */
diff --git a/src/views/daxpay/miniapp/agent/merchant/profile/MchShopInfo.vue b/src/views/daxpay/miniapp/agent/merchant/profile/MchShopInfo.vue
index e0f4d07..f6735e9 100644
--- a/src/views/daxpay/miniapp/agent/merchant/profile/MchShopInfo.vue
+++ b/src/views/daxpay/miniapp/agent/merchant/profile/MchShopInfo.vue
@@ -242,14 +242,14 @@ onMounted(() => {
.card-header {
display: flex;
align-items: center;
- height: 40px;
+ height: 34px;
padding: 0 14px;
- background-color: #ecf5ff;
+ background-color: #fff4c5;
}
.card-title {
- font-size: 16px;
- color: #409eff;
+ font-size: 14px;
+ color: #5c4b37;
}
.bottom-btn {
diff --git a/src/views/daxpay/miniapp/agent/wallet/cashouts/Cashouts.api.ts b/src/views/daxpay/miniapp/agent/wallet/cashouts/Cashouts.api.ts
new file mode 100644
index 0000000..eb96009
--- /dev/null
+++ b/src/views/daxpay/miniapp/agent/wallet/cashouts/Cashouts.api.ts
@@ -0,0 +1,160 @@
+import { http } from '@/utils/http/axios'
+import type { MchEntity, Result } from '#/axios'
+
+/**
+ * 查询钱包
+ */
+export function getWallet() {
+ return http.request>({
+ method: 'get',
+ url: '/agent/wallet/get',
+ })
+}
+
+/**
+ * 创建提现申请
+ */
+export function createApply(params: AgentCashouts) {
+ return http.request>({
+ method: 'post',
+ url: '/agent/cashouts/create',
+ data: params,
+ })
+}
+
+/**
+ * 获取提现配置
+ */
+export function getConfig() {
+ return http.request>({
+ method: 'get',
+ url: '/agent/cashouts/config/get',
+ })
+}
+
+/**
+ * 提现手续费金额计算
+ */
+export function calcCashoutsFee(cashoutsAmount: number) {
+ return http.request>({
+ method: 'get',
+ url: '/agent/cashouts/calcCashoutsFee',
+ params: { cashoutsAmount },
+ })
+}
+
+/**
+ * 提现申请分页
+ */
+export function pageCashouts(params: any) {
+ return http.request>({
+ method: 'get',
+ url: '/agent/cashouts/page',
+ params,
+ })
+}
+
+/**
+ * 提现申请详情
+ */
+export function getCashouts(id: number) {
+ return http.request>({
+ method: 'get',
+ url: '/agent/cashouts/findById',
+ params: { id },
+ })
+}
+
+/**
+ * 修改提现申请
+ */
+export function updateCashouts(params: AgentCashouts) {
+ return http.request>({
+ method: 'post',
+ url: '/agent/cashouts/update',
+ data: params,
+ })
+}
+
+/**
+ * 关闭提现申请
+ */
+export function closeCashouts(id: number) {
+ return http.request>({
+ method: 'post',
+ url: '/agent/cashouts/close',
+ params: { id },
+ })
+}
+
+/**
+ * 钱包
+ */
+export interface AgentWallet extends MchEntity {
+ /** 余额 */
+ balance?: number
+ /** 可用余额 */
+ availableBalance?: number
+ /** 冻结金额 */
+ freezeBalance?: number
+ /** 提现中金额 */
+ withdrawBalance?: number
+ /** 在途金额 */
+ onWayBalance?: number
+}
+
+/**
+ * 提现申请
+ */
+export interface AgentCashouts extends MchEntity {
+ /** 申请名称 */
+ name?: string
+ /** 提现方式 */
+ type?: string
+ /** 提现金额 */
+ amount?: number
+ /** 到账金额 */
+ arriveAmount?: number
+ /** 提现手续费 */
+ feeAmount?: number
+ /** 收款人 */
+ receiver?: string
+ /** 收款方手机号 */
+ receiverMobile?: string
+ /** 提现备注 */
+ reason?: string
+ /** 申请资料 */
+ applyDataUrl?: string
+ /** 对公账户名称 */
+ companyName?: string
+ /** 对公账户号码 */
+ companyAccount?: string
+ /** 开户银行 */
+ bankName?: string
+ /** 开户行支行编码 */
+ bankBranchNo?: string
+ /** 状态 */
+ status?: string
+ /** 外部状态 */
+ outStatus?: string
+}
+
+/**
+ * 提现配置
+ */
+export interface AgentCashoutsConfig extends MchEntity {
+ /** 起提金额 */
+ startAmount?: number
+ /** 单笔限额 */
+ singleLimit?: number
+ /** 每日限额 */
+ dailyLimit?: number
+ /** 费率 */
+ feeRate?: number
+ /** 固定费用 */
+ fixedFee?: number
+ /** 到账金额 */
+ arriveAmount?: number
+ /** 提现手续费 */
+ feeAmount?: number
+}
diff --git a/src/views/daxpay/miniapp/agent/wallet/cashouts/CashoutsApply.vue b/src/views/daxpay/miniapp/agent/wallet/cashouts/CashoutsApply.vue
new file mode 100644
index 0000000..93942e8
--- /dev/null
+++ b/src/views/daxpay/miniapp/agent/wallet/cashouts/CashoutsApply.vue
@@ -0,0 +1,429 @@
+
+
+
+
+
+ 加载中...
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/daxpay/miniapp/merchant/profile/MchMainBody.vue b/src/views/daxpay/miniapp/merchant/profile/MchMainBody.vue
index 9dec306..23e2c26 100644
--- a/src/views/daxpay/miniapp/merchant/profile/MchMainBody.vue
+++ b/src/views/daxpay/miniapp/merchant/profile/MchMainBody.vue
@@ -647,11 +647,11 @@ onMounted(() => {
}
.form-content {
+ /* 主体内容滚动 */
flex: 1;
- overflow-y: scroll;
+ overflow-y: auto;
-webkit-overflow-scrolling: touch;
- padding: 20px 0;
- padding-bottom: 80px; /* 为底部按钮留出空间 */
+ padding-bottom: 12px;
}
.loading-wrapper {
@@ -666,44 +666,26 @@ onMounted(() => {
/* 卡片样式 */
.status-card,
.info-card {
- margin-bottom: 16px;
- background: #fff;
- border-radius: 0;
+ margin: 12px 8px;
+ border-radius: 8px;
overflow: hidden;
- box-shadow: none;
+ background: #fff;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.card-header {
- height: 50px;
- width: 100%;
display: flex;
align-items: center;
- padding: 0 20px;
- background-color: #f7f7f7;
- color: #448ef7;
- letter-spacing: 1px;
- position: relative;
- font-weight: 600;
- border-bottom: none;
-
- &::before {
- position: absolute;
- top: 50%;
- left: 5px;
- transform: translateY(-50%);
- content: '';
- width: 5px;
- height: 20px;
- background-color: #448ef7;
- }
+ height: 34px;
+ padding: 0 14px;
+ background-color: #fff4c5;
}
.card-title {
- display: flex;
- align-items: center;
- gap: 8px;
font-size: 14px;
- color: #448ef7;
+ font-weight: 500;
+ color: #5c4b37;
+ line-height: 1.2;
}
/* 认证状态样式优化 */
@@ -752,10 +734,6 @@ onMounted(() => {
}
.bottom-btn {
- position: fixed;
- bottom: 0;
- left: 0;
- right: 0;
background: white;
padding: 15px 20px;
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
diff --git a/src/views/daxpay/miniapp/merchant/profile/MchSettleInfo.vue b/src/views/daxpay/miniapp/merchant/profile/MchSettleInfo.vue
index 8e9948f..3b8948f 100644
--- a/src/views/daxpay/miniapp/merchant/profile/MchSettleInfo.vue
+++ b/src/views/daxpay/miniapp/merchant/profile/MchSettleInfo.vue
@@ -314,14 +314,16 @@ onMounted(() => {
.card-header {
display: flex;
align-items: center;
- height: 40px;
+ height: 34px;
padding: 0 14px;
- background-color: #ecf5ff;
+ background-color: #fff4c5;
}
.card-title {
- font-size: 16px;
- color: #409eff;
+ font-size: 14px;
+ font-weight: 500;
+ color: #5c4b37;
+ line-height: 1.2;
}
/* 让内嵌面板去掉默认边距,卡片白底由容器负责 */
diff --git a/src/views/daxpay/miniapp/merchant/profile/MchShopInfo.vue b/src/views/daxpay/miniapp/merchant/profile/MchShopInfo.vue
index b0a5aea..840de67 100644
--- a/src/views/daxpay/miniapp/merchant/profile/MchShopInfo.vue
+++ b/src/views/daxpay/miniapp/merchant/profile/MchShopInfo.vue
@@ -237,14 +237,14 @@ onMounted(() => {
.card-header {
display: flex;
align-items: center;
- height: 40px;
+ height: 34px;
padding: 0 14px;
- background-color: #ecf5ff;
+ background-color: #fff4c5;
}
.card-title {
- font-size: 16px;
- color: #409eff;
+ font-size: 14px;
+ color: #5c4b37;
}
.bottom-btn {