refactor(admin): 终端台账入口归位基础管理分组并暂时禁用

- 新增 TerminalCardPlaceholder 公共禁用卡片(灰色半透明 + 「开发中」角标 + Tooltip)
- 14 个产品 MchManage 的基础管理分组下追加终端台账占位卡片
- channelMerchant.json 10 语种补 cardTerminalBadge / cardTerminalTooltip
- 通道终端差异化字段方案待定, 暂不接入; 底层终端代码保留后续复用
This commit is contained in:
DaxPay Dev
2026-07-18 22:59:16 +08:00
parent 127b640bd1
commit 098320eb94
25 changed files with 147 additions and 13 deletions

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "Please enter sub-merchant no.",
"wechatSubMerchantNo": "Sub-merchant No.",
"wechatSubMerchantNoPlaceholder": "Please enter WeChat sub-merchant no.",
"wechatSubMerchantNoRequired": "Please enter sub-merchant no."
"wechatSubMerchantNoRequired": "Please enter sub-merchant no.",
"groupTerminal": "Terminal Ledger",
"cardTerminal": "Terminal Ledger",
"cardTerminalDesc": "Register channel-side terminal numbers and bind system terminals",
"cardTerminalBadge": "In Dev",
"cardTerminalTooltip": "Channel-specific terminal fields design in progress, not yet available"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "Silakan masukkan nomor sub-pedagang.",
"wechatSubMerchantNo": "Sub-pedagang No.",
"wechatSubMerchantNoPlaceholder": "Silakan masukkan nomor sub-pedagang WeChat.",
"wechatSubMerchantNoRequired": "Silakan masukkan nomor sub-pedagang."
"wechatSubMerchantNoRequired": "Silakan masukkan nomor sub-pedagang.",
"groupTerminal": "Buku Terminal",
"cardTerminal": "Buku Terminal",
"cardTerminalDesc": "Daftarkan nomor terminal saluran dan tautkan ke terminal sistem",
"cardTerminalBadge": "Dalam Pengembangan",
"cardTerminalTooltip": "Desain field terminal per saluran sedang berjalan, belum tersedia"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "サブマーチャント番号を入力してください。",
"wechatSubMerchantNo": "サブマーチャントNo.",
"wechatSubMerchantNoPlaceholder": "WeChat サブマーチャント番号を入力してください。",
"wechatSubMerchantNoRequired": "サブマーチャント番号を入力してください。"
"wechatSubMerchantNoRequired": "サブマーチャント番号を入力してください。",
"groupTerminal": "端末台帳",
"cardTerminal": "端末台帳",
"cardTerminalDesc": "本チャネル加盟店の端末番号を登録し、システム端末と紐付けます",
"cardTerminalBadge": "開発中",
"cardTerminalTooltip": "チャネル固有の端末フィールド設計中、未公開"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "하위 판매자 번호를 입력하세요.",
"wechatSubMerchantNo": "하위 판매자 번호",
"wechatSubMerchantNoPlaceholder": "WeChat 하위 판매자 번호를 입력하세요.",
"wechatSubMerchantNoRequired": "하위 판매자 번호를 입력하세요."
"wechatSubMerchantNoRequired": "하위 판매자 번호를 입력하세요.",
"groupTerminal": "단말 대장",
"cardTerminal": "단말 대장",
"cardTerminalDesc": "본 채널 가맹점의 단말 번호를 등록하고 시스템 단말에 연결합니다",
"cardTerminalBadge": "개발 중",
"cardTerminalTooltip": "채널별 단말 필드 설계 중, 미오픈"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "Sila masukkan no sub-peniaga.",
"wechatSubMerchantNo": "Sub-peniaga No.",
"wechatSubMerchantNoPlaceholder": "Sila masukkan no sub-peniaga WeChat.",
"wechatSubMerchantNoRequired": "Sila masukkan no sub-peniaga."
"wechatSubMerchantNoRequired": "Sila masukkan no sub-peniaga.",
"groupTerminal": "Lejar Terminal",
"cardTerminal": "Lejar Terminal",
"cardTerminalDesc": "Daftar nombor terminal saluran dan ikat ke terminal sistem",
"cardTerminalBadge": "Dalam Pembangunan",
"cardTerminalTooltip": "Reka bentuk field terminal per saluran sedang berjalan, belum tersedia"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "กรุณากรอกหมายเลขร้านค้าย่อย",
"wechatSubMerchantNo": "ผู้ค้ารายย่อยเลขที่",
"wechatSubMerchantNoPlaceholder": "กรุณากรอกหมายเลขร้านค้าย่อย WeChat",
"wechatSubMerchantNoRequired": "กรุณากรอกหมายเลขร้านค้าย่อย"
"wechatSubMerchantNoRequired": "กรุณากรอกหมายเลขร้านค้าย่อย",
"groupTerminal": "บัญชีเทอร์มินัล",
"cardTerminal": "บัญชีเทอร์มินัล",
"cardTerminalDesc": "ลงทะเบียนหมายเลขเทอร์มินัลช่องทางและผูกกับเทอร์มินัลระบบ",
"cardTerminalBadge": "กำลังพัฒนา",
"cardTerminalTooltip": "กำลังออกแบบ field terminal ตามช่องทาง ยังไม่เปิดให้ใช้งาน"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "Vui lòng nhập số người bán phụ.",
"wechatSubMerchantNo": "Số người bán phụ",
"wechatSubMerchantNoPlaceholder": "Vui lòng nhập số người bán phụ WeChat.",
"wechatSubMerchantNoRequired": "Vui lòng nhập số người bán phụ."
"wechatSubMerchantNoRequired": "Vui lòng nhập số người bán phụ.",
"groupTerminal": "Sổ thiết bị",
"cardTerminal": "Sổ thiết bị",
"cardTerminalDesc": "Đăng ký số thiết bị kênh và liên kết với thiết bị hệ thống",
"cardTerminalBadge": "Đang phát triển",
"cardTerminalTooltip": "Đang thiết kế trường terminal theo kênh, chưa mở"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "请输入子商户号",
"wechatSubMerchantNo": "特约商户号",
"wechatSubMerchantNoPlaceholder": "请输入微信特约商户号",
"wechatSubMerchantNoRequired": "请输入特约商户号"
"wechatSubMerchantNoRequired": "请输入特约商户号",
"groupTerminal": "终端台账",
"cardTerminal": "终端台账",
"cardTerminalDesc": "登记本通道商户下的通道侧终端号, 并可绑定系统终端",
"cardTerminalBadge": "开发中",
"cardTerminalTooltip": "终端差异化字段设计中,暂未开放"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "請輸入子商户號",
"wechatSubMerchantNo": "特約商户號",
"wechatSubMerchantNoPlaceholder": "請輸入微信特約商户號",
"wechatSubMerchantNoRequired": "請輸入特約商户號"
"wechatSubMerchantNoRequired": "請輸入特約商户號",
"groupTerminal": "終端台帳",
"cardTerminal": "終端台帳",
"cardTerminalDesc": "登記本通道商戶下的通道側終端號, 並可綁定系統終端",
"cardTerminalBadge": "開發中",
"cardTerminalTooltip": "終端差異化欄位設計中,暫未開放"
}

View File

@@ -111,5 +111,10 @@
"alipaySubMerchantNoRequired": "請輸入子商戶號",
"wechatSubMerchantNo": "特約商戶號",
"wechatSubMerchantNoPlaceholder": "請輸入微信特約商戶號",
"wechatSubMerchantNoRequired": "請輸入特約商戶號"
"wechatSubMerchantNoRequired": "請輸入特約商戶號",
"groupTerminal": "終端台帳",
"cardTerminal": "終端台帳",
"cardTerminalDesc": "登記本通道商戶下的通道側終端號, 並可綁定系統終端",
"cardTerminalBadge": "開發中",
"cardTerminalTooltip": "終端差異化欄位設計中,暫未開放"
}

View File

@@ -7,6 +7,7 @@
import { IconifyIcon } from '@vben-core/icons';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import AdapayDirectChannelMerchantBasicInfo from './AdapayDirectChannelMerchantBasicInfo.vue';
@@ -138,6 +139,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>
</div>

View File

@@ -7,6 +7,7 @@
import { IconifyIcon } from '@vben-core/icons';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import AlipayAppAuthTokenUpdate from './AlipayAppAuthTokenUpdate.vue';
@@ -134,6 +135,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -8,6 +8,7 @@
import { IconifyIcon } from '@vben-core/icons';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import AlipayChannelMerchantBasicInfo from './AlipayChannelMerchantBasicInfo.vue';
@@ -165,6 +166,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>
</div>

View File

@@ -9,11 +9,11 @@
import { IconifyIcon } from '@vben-core/icons';
import { DougongChannelMerchantApi } from '#/api/payment/channel/dougong/channel-merchant.api';
import DougongMchConfigEdit from '#/views/payment/channel/dougong/config/DougongMchConfigEdit.vue';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import CommonChannelMerchantBasicInfo from '#/views/payment/merchant/channel-merchant/detail/CommonChannelMerchantBasicInfo.vue';
import DougongMchConfigEdit from '#/views/payment/channel/dougong/config/DougongMchConfigEdit.vue';
defineOptions({ name: 'DougongMchManage' });
const emit = defineEmits<{
@@ -146,6 +146,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -8,6 +8,7 @@
import { IconifyIcon } from '@vben-core/icons';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import DouyinDirectChannelMerchantBasicInfo from './DouyinDirectChannelMerchantBasicInfo.vue';
@@ -175,6 +176,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>
</div>

View File

@@ -9,6 +9,7 @@
import { IconifyIcon } from '@vben-core/icons';
import { FuyouChannelMerchantApi } from '#/api/payment/channel/fuyou/channel-merchant.api';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import CommonChannelMerchantBasicInfo from '#/views/payment/merchant/channel-merchant/detail/CommonChannelMerchantBasicInfo.vue';
@@ -133,6 +134,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -8,6 +8,7 @@
import { IconifyIcon } from '@vben-core/icons';
import { HkrtChannelMerchantApi } from '#/api/payment/channel/hkrt/channel-merchant.api';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import HkrtChannelMerchantBasicInfo from './HkrtChannelMerchantBasicInfo.vue';
@@ -137,6 +138,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -10,6 +10,7 @@
import { HmpayChannelMerchantApi } from '#/api/payment/channel/hmpay/channel-merchant.api';
import HmpayMchConfigEdit from '#/views/payment/channel/hmpay/config/HmpayMchConfigEdit.vue';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import CommonChannelMerchantBasicInfo from '#/views/payment/merchant/channel-merchant/detail/CommonChannelMerchantBasicInfo.vue';
@@ -35,7 +36,7 @@
/**
* 功能卡片配置
* 河马付(杉德)服务商模式, 商户有杉德商户号/门店号等配置, 创建后可查看/配置
* 河马付(杉德)服务商模式, 商户有杉德商户号/门店号等配置, 创建后可查看/配置
*/
const functionCards = computed(() => [
{
@@ -156,6 +157,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -8,6 +8,7 @@
import { IconifyIcon } from '@vben-core/icons';
import { LakalaChannelMerchantApi } from '#/api/payment/channel/lakala/channel-merchant.api';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import LakalaChannelMerchantBasicInfo from './LakalaChannelMerchantBasicInfo.vue';
@@ -137,6 +138,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -9,6 +9,7 @@
import { IconifyIcon } from '@vben-core/icons';
import { LeshuaChannelMerchantApi } from '#/api/payment/channel/leshua/channel-merchant.api';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import CommonChannelMerchantBasicInfo from '#/views/payment/merchant/channel-merchant/detail/CommonChannelMerchantBasicInfo.vue';
@@ -132,6 +133,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -7,6 +7,7 @@
import { IconifyIcon } from '@vben-core/icons';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import UmsDirectChannelMerchantBasicInfo from './UmsDirectChannelMerchantBasicInfo.vue';
@@ -138,6 +139,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>
</div>

View File

@@ -9,6 +9,7 @@
import { IconifyIcon } from '@vben-core/icons';
import { VbillChannelMerchantApi } from '#/api/payment/channel/vbill/channel-merchant.api';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import CommonChannelMerchantBasicInfo from '#/views/payment/merchant/channel-merchant/detail/CommonChannelMerchantBasicInfo.vue';
@@ -132,6 +133,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -10,6 +10,7 @@
import { ProductEnum } from '#/enums/payment/productEnum';
import { useMessage } from '#/hooks/useMessage';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import WechatChannelMerchantBasicInfo from './WechatChannelMerchantBasicInfo.vue';
@@ -176,6 +177,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -9,6 +9,7 @@
import { IconifyIcon } from '@vben-core/icons';
import { ProductEnum } from '#/enums/payment/productEnum';
import TerminalCardPlaceholder from '#/views/payment/device/terminal/channel/TerminalCardPlaceholder.vue';
import ChannelMerchantNameEditModal from '#/views/payment/merchant/channel-merchant/detail/ChannelMerchantNameEditModal.vue';
import WechatDirectChannelMerchantBasicInfo from './WechatDirectChannelMerchantBasicInfo.vue';
@@ -168,6 +169,7 @@
:class="getGroupColorClass(group.color)"
></div>
</a-card>
<TerminalCardPlaceholder v-if="group.group === $t('payment.merchant.channelMerchant.groupBasic')" />
</div>
</div>

View File

@@ -0,0 +1,57 @@
<script lang="ts" setup>
import { $t } from '@vben/locales';
import { IconifyIcon } from '@vben-core/icons';
defineOptions({ name: 'TerminalCardPlaceholder' });
</script>
<template>
<!-- 终端台账占位卡片(通道差异化字段设计未定, 暂不接入, 详见 cardTerminalTooltip) -->
<a-tooltip :title="$t('payment.merchant.channelMerchant.cardTerminalTooltip')" placement="bottom">
<div
class="terminal-placeholder relative flex w-[220px] cursor-not-allowed flex-col items-center overflow-hidden rounded-2xl border-none bg-card px-5 py-6 text-center shadow-md"
>
<!-- 开发中角标 -->
<div
class="absolute right-2 top-2 rounded-full bg-muted-foreground/15 px-2 py-0.5 text-[10px] font-medium text-muted-foreground"
>
{{ $t('payment.merchant.channelMerchant.cardTerminalBadge') }}
</div>
<!-- 图标(灰度) -->
<div class="mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-muted text-muted-foreground shadow-sm">
<IconifyIcon icon="lucide:monitor-smartphone" class="h-7 w-7" />
</div>
<!-- 标题 -->
<div class="mb-1.5 text-base font-bold text-muted-foreground">
{{ $t('payment.merchant.channelMerchant.cardTerminal') }}
</div>
<!-- 描述 -->
<div class="card-desc line-clamp-1 text-xs leading-relaxed text-muted-foreground/80">
{{ $t('payment.merchant.channelMerchant.cardTerminalDesc') }}
</div>
</div>
</a-tooltip>
</template>
<style scoped>
.terminal-placeholder {
opacity: 0.6;
max-height: 200px;
}
.card-desc {
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.line-clamp-1 {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
</style>