From 638cd9fe1b9ca8370e4aba4ea300dc70d599bf6d Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Sun, 19 Jul 2026 00:07:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E7=BB=88=E7=AB=AF=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E9=9D=A2=E4=B8=8E=E8=8F=9C=E5=8D=95=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E8=87=B3=E5=95=86=E6=88=B7=E5=B7=A5=E4=BD=9C=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 系统终端页面移至 merchant/terminal/(照搬门店模式: 强制 mchNo 路由参数+返回按钮+商户名) - 通道终端面板(device/terminal/channel)嵌入通道商户详情抽屉, 复用 channel:merchant 权限 - 商户工作台基础管理组新增系统终端卡片入口 - 权限码 device:terminal:system → merchant:terminal(perm-codes.ts) - menu-titles/workbench 10语种同步(cardTerminal + menu.payment.merchant.terminal) --- .../src/api/payment/device/terminal.api.ts | 174 ++++++++++ apps/daxpay-admin/src/constants/perm-codes.ts | 5 + .../langs/en-US/payment/device/terminal.json | 45 +++ .../en-US/payment/merchant/workbench.json | 4 +- .../langs/id-ID/payment/device/terminal.json | 45 +++ .../id-ID/payment/merchant/workbench.json | 4 +- .../langs/ja-JP/payment/device/terminal.json | 45 +++ .../ja-JP/payment/merchant/workbench.json | 4 +- .../langs/ko-KR/payment/device/terminal.json | 45 +++ .../ko-KR/payment/merchant/workbench.json | 4 +- .../langs/ms-MY/payment/device/terminal.json | 45 +++ .../ms-MY/payment/merchant/workbench.json | 4 +- .../langs/th-TH/payment/device/terminal.json | 45 +++ .../th-TH/payment/merchant/workbench.json | 4 +- .../langs/vi-VN/payment/device/terminal.json | 45 +++ .../vi-VN/payment/merchant/workbench.json | 4 +- .../langs/zh-CN/payment/device/terminal.json | 45 +++ .../zh-CN/payment/merchant/workbench.json | 4 +- .../langs/zh-HK/payment/device/terminal.json | 45 +++ .../zh-HK/payment/merchant/workbench.json | 4 +- .../langs/zh-TW/payment/device/terminal.json | 45 +++ .../zh-TW/payment/merchant/workbench.json | 4 +- .../src/locales/menu-titles/en-US.json | 2 +- .../src/locales/menu-titles/id-ID.json | 2 +- .../src/locales/menu-titles/ja-JP.json | 2 +- .../src/locales/menu-titles/ko-KR.json | 2 +- .../src/locales/menu-titles/ms-MY.json | 2 +- .../src/locales/menu-titles/th-TH.json | 2 +- .../src/locales/menu-titles/vi-VN.json | 2 +- .../src/locales/menu-titles/zh-CN.json | 2 +- .../src/locales/menu-titles/zh-HK.json | 2 +- .../src/locales/menu-titles/zh-TW.json | 2 +- .../channel/ChannelTerminalBindDrawer.vue | 148 +++++++++ .../terminal/channel/ChannelTerminalEdit.vue | 178 ++++++++++ .../terminal/channel/ChannelTerminalPanel.vue | 234 ++++++++++++++ .../manage/workbench/MerchantManage.vue | 9 + .../terminal/SystemTerminalBindDrawer.vue | 152 +++++++++ .../merchant/terminal/SystemTerminalEdit.vue | 163 ++++++++++ .../merchant/terminal/SystemTerminalList.vue | 304 ++++++++++++++++++ 39 files changed, 1857 insertions(+), 20 deletions(-) create mode 100644 apps/daxpay-admin/src/api/payment/device/terminal.api.ts create mode 100644 apps/daxpay-admin/src/locales/langs/en-US/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/id-ID/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/ja-JP/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/ko-KR/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/ms-MY/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/th-TH/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/vi-VN/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/zh-CN/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/zh-HK/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/locales/langs/zh-TW/payment/device/terminal.json create mode 100644 apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalBindDrawer.vue create mode 100644 apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalEdit.vue create mode 100644 apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalPanel.vue create mode 100644 apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalBindDrawer.vue create mode 100644 apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalEdit.vue create mode 100644 apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalList.vue diff --git a/apps/daxpay-admin/src/api/payment/device/terminal.api.ts b/apps/daxpay-admin/src/api/payment/device/terminal.api.ts new file mode 100644 index 000000000..9a0679fe8 --- /dev/null +++ b/apps/daxpay-admin/src/api/payment/device/terminal.api.ts @@ -0,0 +1,174 @@ +import type { BaseEntity, PageResult, Result } from '#/types/web'; + +import { defHttp } from '#/api/request'; + +/** + * 系统终端 API + */ +export const TerminalDeviceApi = { + /** 分页 */ + page( + params: TerminalDeviceQuery & { current?: number; size?: number }, + ): Promise>> { + return defHttp.get({ url: '/admin/device/terminal/system/page', params }); + }, + /** 详情 */ + get(id: string): Promise> { + return defHttp.get({ url: '/admin/device/terminal/system/get', params: { id } }); + }, + /** 按商户列表 */ + listByMchNo(mchNo: string): Promise> { + return defHttp.get({ url: '/admin/device/terminal/system/list-by-mch-no', params: { mchNo } }); + }, + /** 新增 */ + add(data: TerminalDeviceParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/system/add', data }); + }, + /** 修改 */ + update(data: TerminalDeviceParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/system/update', data }); + }, + /** 删除 */ + delete(id: string): Promise> { + return defHttp.post({ url: '/admin/device/terminal/system/delete', params: { id } }); + }, + /** 绑定通道终端 */ + bind(data: TerminalChannelBindParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/system/bind', data }); + }, + /** 解绑通道终端 */ + unbind(data: TerminalChannelBindParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/system/unbind', data }); + }, + /** 已绑定通道终端 */ + boundChannelList(terminalNo: string): Promise> { + return defHttp.get({ + url: '/admin/device/terminal/system/bound-channel-list', + params: { terminalNo }, + }); + }, +}; + +/** + * 通道终端 API + */ +export const ChannelTerminalApi = { + /** 分页 */ + page( + params: ChannelTerminalQuery & { current?: number; size?: number }, + ): Promise>> { + return defHttp.get({ url: '/admin/device/terminal/channel/page', params }); + }, + /** 详情 */ + get(id: string): Promise> { + return defHttp.get({ url: '/admin/device/terminal/channel/get', params: { id } }); + }, + /** 按商户列表 */ + listByMchNo(mchNo: string): Promise> { + return defHttp.get({ url: '/admin/device/terminal/channel/list-by-mch-no', params: { mchNo } }); + }, + /** 新增 */ + add(data: ChannelTerminalParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/channel/add', data }); + }, + /** 修改 */ + update(data: ChannelTerminalParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/channel/update', data }); + }, + /** 删除 */ + delete(id: string): Promise> { + return defHttp.post({ url: '/admin/device/terminal/channel/delete', params: { id } }); + }, + /** 绑定系统终端 */ + bind(data: TerminalChannelBindParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/channel/bind', data }); + }, + /** 解绑系统终端 */ + unbind(data: TerminalChannelBindParam): Promise> { + return defHttp.post({ url: '/admin/device/terminal/channel/unbind', data }); + }, + /** 已绑定系统终端 */ + boundSystemList(channelTerminalId: string): Promise> { + return defHttp.get({ + url: '/admin/device/terminal/channel/bound-system-list', + params: { channelTerminalId }, + }); + }, +}; + +/** 系统终端查询 */ +export interface TerminalDeviceQuery { + mchNo?: string; + terminalNo?: string; + name?: string; + storeNo?: string; + enable?: boolean; +} + +/** 系统终端参数 */ +export interface TerminalDeviceParam { + id?: string; + mchNo?: string; + name?: string; + storeNo?: string; + enable?: boolean; + remark?: string; +} + +/** 系统终端结果 */ +export interface TerminalDeviceResult extends BaseEntity { + terminalNo?: string; + name?: string; + mchNo?: string; + mchName?: string; + storeNo?: string; + storeName?: string; + enable?: boolean; + remark?: string; +} + +/** 通道终端查询 */ +export interface ChannelTerminalQuery { + mchNo?: string; + channelMchNo?: string; + channel?: string; + product?: string; + type?: string; + name?: string; + outTerminalNo?: string; + status?: string; +} + +/** 通道终端参数 */ +export interface ChannelTerminalParam { + id?: string; + mchNo?: string; + channelMchNo?: string; + type?: string; + name?: string; + outTerminalNo?: string; + status?: string; + errorMsg?: string; + remark?: string; +} + +/** 通道终端结果 */ +export interface ChannelTerminalResult extends BaseEntity { + channelMchNo?: string; + product?: string; + channel?: string; + type?: string; + name?: string; + outTerminalNo?: string; + status?: string; + errorMsg?: string; + remark?: string; + mchNo?: string; + mchName?: string; +} + +/** 绑定参数 */ +export interface TerminalChannelBindParam { + systemTerminalNo: string; + channelTerminalId: string; +} diff --git a/apps/daxpay-admin/src/constants/perm-codes.ts b/apps/daxpay-admin/src/constants/perm-codes.ts index f7f4e388c..629ec2a2a 100644 --- a/apps/daxpay-admin/src/constants/perm-codes.ts +++ b/apps/daxpay-admin/src/constants/perm-codes.ts @@ -85,6 +85,11 @@ export const PermCodes = { VIEW: 'merchant:store:view', MANAGE: 'merchant:store:manage', }, + /** 系统终端 menuCode=merchant:terminal */ + Terminal: { + VIEW: 'merchant:terminal:view', + MANAGE: 'merchant:terminal:manage', + }, /** 预留 */ User: { VIEW: 'merchant:user:view', diff --git a/apps/daxpay-admin/src/locales/langs/en-US/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/en-US/payment/device/terminal.json new file mode 100644 index 000000000..6fc7bce1a --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/en-US/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "System Terminals", + "channelTitle": "Channel Terminals", + "field": { + "terminalNo": "Terminal No.", + "name": "Name", + "mchNo": "Merchant No.", + "merchant": "Merchant", + "store": "Store", + "storeNo": "Store No.", + "enable": "Enabled", + "remark": "Remark", + "createTime": "Created At", + "channelMchNo": "Channel Merchant No.", + "channel": "Channel", + "product": "Product", + "type": "Report Type", + "outTerminalNo": "Channel Terminal No.", + "status": "Status", + "errorMsg": "Error Message" + }, + "enableYes": "Enabled", + "enableNo": "Disabled", + "add": "Add", + "edit": "Edit", + "bind": "Bind", + "unbind": "Unbind", + "bindManage": "Bindings", + "confirmDelete": "Delete this terminal?", + "confirmUnbind": "Remove this binding?", + "validateName": "Please enter name", + "validateMchNo": "Please select merchant", + "validateChannelMchNo": "Please select channel merchant", + "validateType": "Please select report type", + "validateEnable": "Please select status", + "pleaseSelectMch": "Select merchant", + "pleaseSelectStore": "Select store (optional)", + "pleaseSelectChannelMch": "Select channel merchant", + "pleaseSelectTerminal": "Select system terminal", + "pleaseSelectChannelTerminal": "Select channel terminal", + "boundChannel": "Bound channel terminals", + "boundSystem": "Bound system terminals", + "noBound": "No bindings", + "addBind": "Add binding" +} diff --git a/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/workbench.json index a42a86d40..088eda8bc 100644 --- a/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/en-US/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "Merchant User", "cardUserDesc": "User account management and permission assignment", "cardStore": "Store Management", - "cardStoreDesc": "Physical store profiles and location management" + "cardStoreDesc": "Physical store profiles and location management", + "cardTerminal": "System Terminals", + "cardTerminalDesc": "Merchant logical terminal codes and channel terminal binding management" } } diff --git a/apps/daxpay-admin/src/locales/langs/id-ID/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/id-ID/payment/device/terminal.json new file mode 100644 index 000000000..6fc7bce1a --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/id-ID/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "System Terminals", + "channelTitle": "Channel Terminals", + "field": { + "terminalNo": "Terminal No.", + "name": "Name", + "mchNo": "Merchant No.", + "merchant": "Merchant", + "store": "Store", + "storeNo": "Store No.", + "enable": "Enabled", + "remark": "Remark", + "createTime": "Created At", + "channelMchNo": "Channel Merchant No.", + "channel": "Channel", + "product": "Product", + "type": "Report Type", + "outTerminalNo": "Channel Terminal No.", + "status": "Status", + "errorMsg": "Error Message" + }, + "enableYes": "Enabled", + "enableNo": "Disabled", + "add": "Add", + "edit": "Edit", + "bind": "Bind", + "unbind": "Unbind", + "bindManage": "Bindings", + "confirmDelete": "Delete this terminal?", + "confirmUnbind": "Remove this binding?", + "validateName": "Please enter name", + "validateMchNo": "Please select merchant", + "validateChannelMchNo": "Please select channel merchant", + "validateType": "Please select report type", + "validateEnable": "Please select status", + "pleaseSelectMch": "Select merchant", + "pleaseSelectStore": "Select store (optional)", + "pleaseSelectChannelMch": "Select channel merchant", + "pleaseSelectTerminal": "Select system terminal", + "pleaseSelectChannelTerminal": "Select channel terminal", + "boundChannel": "Bound channel terminals", + "boundSystem": "Bound system terminals", + "noBound": "No bindings", + "addBind": "Add binding" +} diff --git a/apps/daxpay-admin/src/locales/langs/id-ID/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/id-ID/payment/merchant/workbench.json index 5aaa1eca2..91ae2866d 100644 --- a/apps/daxpay-admin/src/locales/langs/id-ID/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/id-ID/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "Pengguna Pedagang", "cardUserDesc": "Manajemen akun pengguna dan penetapan izin", "cardStore": "Manajemen Toko", - "cardStoreDesc": "Profil toko fisik dan manajemen lokasi" + "cardStoreDesc": "Profil toko fisik dan manajemen lokasi", + "cardTerminal": "Terminal Sistem", + "cardTerminalDesc": "Kelola kode terminal logis pedagang dan pengikatan terminal saluran" } } diff --git a/apps/daxpay-admin/src/locales/langs/ja-JP/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/ja-JP/payment/device/terminal.json new file mode 100644 index 000000000..f2e197049 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/ja-JP/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "システム端末", + "channelTitle": "チャネル端末", + "field": { + "terminalNo": "Terminal No.", + "name": "Name", + "mchNo": "Merchant No.", + "merchant": "Merchant", + "store": "Store", + "storeNo": "Store No.", + "enable": "Enabled", + "remark": "Remark", + "createTime": "Created At", + "channelMchNo": "Channel Merchant No.", + "channel": "Channel", + "product": "Product", + "type": "Report Type", + "outTerminalNo": "Channel Terminal No.", + "status": "Status", + "errorMsg": "Error Message" + }, + "enableYes": "Enabled", + "enableNo": "Disabled", + "add": "追加", + "edit": "編集", + "bind": "紐付け", + "unbind": "解除", + "bindManage": "紐付け管理", + "confirmDelete": "この端末を削除しますか?", + "confirmUnbind": "紐付けを解除しますか?", + "validateName": "Please enter name", + "validateMchNo": "Please select merchant", + "validateChannelMchNo": "Please select channel merchant", + "validateType": "Please select report type", + "validateEnable": "Please select status", + "pleaseSelectMch": "Select merchant", + "pleaseSelectStore": "Select store (optional)", + "pleaseSelectChannelMch": "Select channel merchant", + "pleaseSelectTerminal": "Select system terminal", + "pleaseSelectChannelTerminal": "Select channel terminal", + "boundChannel": "Bound channel terminals", + "boundSystem": "Bound system terminals", + "noBound": "No bindings", + "addBind": "Add binding" +} diff --git a/apps/daxpay-admin/src/locales/langs/ja-JP/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/ja-JP/payment/merchant/workbench.json index 07eadc2a8..85dd87afc 100644 --- a/apps/daxpay-admin/src/locales/langs/ja-JP/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/ja-JP/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "販売者ユーザー", "cardUserDesc": "ユーザーアカウントの管理と権限の割り当て", "cardStore": "店舗管理", - "cardStoreDesc": "実店舗のプロファイルとロケーション管理" + "cardStoreDesc": "実店舗のプロファイルとロケーション管理", + "cardTerminal": "システム端末", + "cardTerminalDesc": "マーチャント論理端末とチャネル端末のバインド管理" } } diff --git a/apps/daxpay-admin/src/locales/langs/ko-KR/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/ko-KR/payment/device/terminal.json new file mode 100644 index 000000000..ae561eee7 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/ko-KR/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "시스템 단말", + "channelTitle": "채널 단말", + "field": { + "terminalNo": "Terminal No.", + "name": "Name", + "mchNo": "Merchant No.", + "merchant": "Merchant", + "store": "Store", + "storeNo": "Store No.", + "enable": "Enabled", + "remark": "Remark", + "createTime": "Created At", + "channelMchNo": "Channel Merchant No.", + "channel": "Channel", + "product": "Product", + "type": "Report Type", + "outTerminalNo": "Channel Terminal No.", + "status": "Status", + "errorMsg": "Error Message" + }, + "enableYes": "Enabled", + "enableNo": "Disabled", + "add": "추가", + "edit": "편집", + "bind": "연결", + "unbind": "해제", + "bindManage": "연결 관리", + "confirmDelete": "이 단말을 삭제하시겠습니까?", + "confirmUnbind": "연결을 해제하시겠습니까?", + "validateName": "Please enter name", + "validateMchNo": "Please select merchant", + "validateChannelMchNo": "Please select channel merchant", + "validateType": "Please select report type", + "validateEnable": "Please select status", + "pleaseSelectMch": "Select merchant", + "pleaseSelectStore": "Select store (optional)", + "pleaseSelectChannelMch": "Select channel merchant", + "pleaseSelectTerminal": "Select system terminal", + "pleaseSelectChannelTerminal": "Select channel terminal", + "boundChannel": "Bound channel terminals", + "boundSystem": "Bound system terminals", + "noBound": "No bindings", + "addBind": "Add binding" +} diff --git a/apps/daxpay-admin/src/locales/langs/ko-KR/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/ko-KR/payment/merchant/workbench.json index 3069daf4d..884817bc3 100644 --- a/apps/daxpay-admin/src/locales/langs/ko-KR/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/ko-KR/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "판매자 사용자", "cardUserDesc": "사용자 계정 관리 및 권한 할당", "cardStore": "매장관리", - "cardStoreDesc": "실제 매장 프로필 및 위치 관리" + "cardStoreDesc": "실제 매장 프로필 및 위치 관리", + "cardTerminal": "시스템 단말", + "cardTerminalDesc": "머천트 논리 단말 및 채널 단말 바인딩 관리" } } diff --git a/apps/daxpay-admin/src/locales/langs/ms-MY/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/ms-MY/payment/device/terminal.json new file mode 100644 index 000000000..6fc7bce1a --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/ms-MY/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "System Terminals", + "channelTitle": "Channel Terminals", + "field": { + "terminalNo": "Terminal No.", + "name": "Name", + "mchNo": "Merchant No.", + "merchant": "Merchant", + "store": "Store", + "storeNo": "Store No.", + "enable": "Enabled", + "remark": "Remark", + "createTime": "Created At", + "channelMchNo": "Channel Merchant No.", + "channel": "Channel", + "product": "Product", + "type": "Report Type", + "outTerminalNo": "Channel Terminal No.", + "status": "Status", + "errorMsg": "Error Message" + }, + "enableYes": "Enabled", + "enableNo": "Disabled", + "add": "Add", + "edit": "Edit", + "bind": "Bind", + "unbind": "Unbind", + "bindManage": "Bindings", + "confirmDelete": "Delete this terminal?", + "confirmUnbind": "Remove this binding?", + "validateName": "Please enter name", + "validateMchNo": "Please select merchant", + "validateChannelMchNo": "Please select channel merchant", + "validateType": "Please select report type", + "validateEnable": "Please select status", + "pleaseSelectMch": "Select merchant", + "pleaseSelectStore": "Select store (optional)", + "pleaseSelectChannelMch": "Select channel merchant", + "pleaseSelectTerminal": "Select system terminal", + "pleaseSelectChannelTerminal": "Select channel terminal", + "boundChannel": "Bound channel terminals", + "boundSystem": "Bound system terminals", + "noBound": "No bindings", + "addBind": "Add binding" +} diff --git a/apps/daxpay-admin/src/locales/langs/ms-MY/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/ms-MY/payment/merchant/workbench.json index 3841f0ae3..053877ac1 100644 --- a/apps/daxpay-admin/src/locales/langs/ms-MY/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/ms-MY/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "Pengguna Saudagar", "cardUserDesc": "Pengurusan akaun pengguna dan tugasan kebenaran", "cardStore": "Pengurusan Stor", - "cardStoreDesc": "Profil kedai fizikal dan pengurusan lokasi" + "cardStoreDesc": "Profil kedai fizikal dan pengurusan lokasi", + "cardTerminal": "Terminal Sistem", + "cardTerminalDesc": "Urus kod terminal logik pedagang dan pengikatan terminal saluran" } } diff --git a/apps/daxpay-admin/src/locales/langs/th-TH/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/th-TH/payment/device/terminal.json new file mode 100644 index 000000000..6fc7bce1a --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/th-TH/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "System Terminals", + "channelTitle": "Channel Terminals", + "field": { + "terminalNo": "Terminal No.", + "name": "Name", + "mchNo": "Merchant No.", + "merchant": "Merchant", + "store": "Store", + "storeNo": "Store No.", + "enable": "Enabled", + "remark": "Remark", + "createTime": "Created At", + "channelMchNo": "Channel Merchant No.", + "channel": "Channel", + "product": "Product", + "type": "Report Type", + "outTerminalNo": "Channel Terminal No.", + "status": "Status", + "errorMsg": "Error Message" + }, + "enableYes": "Enabled", + "enableNo": "Disabled", + "add": "Add", + "edit": "Edit", + "bind": "Bind", + "unbind": "Unbind", + "bindManage": "Bindings", + "confirmDelete": "Delete this terminal?", + "confirmUnbind": "Remove this binding?", + "validateName": "Please enter name", + "validateMchNo": "Please select merchant", + "validateChannelMchNo": "Please select channel merchant", + "validateType": "Please select report type", + "validateEnable": "Please select status", + "pleaseSelectMch": "Select merchant", + "pleaseSelectStore": "Select store (optional)", + "pleaseSelectChannelMch": "Select channel merchant", + "pleaseSelectTerminal": "Select system terminal", + "pleaseSelectChannelTerminal": "Select channel terminal", + "boundChannel": "Bound channel terminals", + "boundSystem": "Bound system terminals", + "noBound": "No bindings", + "addBind": "Add binding" +} diff --git a/apps/daxpay-admin/src/locales/langs/th-TH/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/th-TH/payment/merchant/workbench.json index 425697355..5ad339999 100644 --- a/apps/daxpay-admin/src/locales/langs/th-TH/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/th-TH/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "ผู้ใช้ร้านค้า", "cardUserDesc": "การจัดการบัญชีผู้ใช้และการมอบหมายสิทธิ์", "cardStore": "การจัดการร้านค้า", - "cardStoreDesc": "โปรไฟล์ร้านค้าทางกายภาพและการจัดการสถานที่ตั้ง" + "cardStoreDesc": "โปรไฟล์ร้านค้าทางกายภาพและการจัดการสถานที่ตั้ง", + "cardTerminal": "เทอร์มินัลระบบ", + "cardTerminalDesc": "จัดการรหัสเทอร์มินัลตรรกะของผู้ค้าและการผูกเทอร์มินัลช่องทาง" } } diff --git a/apps/daxpay-admin/src/locales/langs/vi-VN/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/vi-VN/payment/device/terminal.json new file mode 100644 index 000000000..6fc7bce1a --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/vi-VN/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "System Terminals", + "channelTitle": "Channel Terminals", + "field": { + "terminalNo": "Terminal No.", + "name": "Name", + "mchNo": "Merchant No.", + "merchant": "Merchant", + "store": "Store", + "storeNo": "Store No.", + "enable": "Enabled", + "remark": "Remark", + "createTime": "Created At", + "channelMchNo": "Channel Merchant No.", + "channel": "Channel", + "product": "Product", + "type": "Report Type", + "outTerminalNo": "Channel Terminal No.", + "status": "Status", + "errorMsg": "Error Message" + }, + "enableYes": "Enabled", + "enableNo": "Disabled", + "add": "Add", + "edit": "Edit", + "bind": "Bind", + "unbind": "Unbind", + "bindManage": "Bindings", + "confirmDelete": "Delete this terminal?", + "confirmUnbind": "Remove this binding?", + "validateName": "Please enter name", + "validateMchNo": "Please select merchant", + "validateChannelMchNo": "Please select channel merchant", + "validateType": "Please select report type", + "validateEnable": "Please select status", + "pleaseSelectMch": "Select merchant", + "pleaseSelectStore": "Select store (optional)", + "pleaseSelectChannelMch": "Select channel merchant", + "pleaseSelectTerminal": "Select system terminal", + "pleaseSelectChannelTerminal": "Select channel terminal", + "boundChannel": "Bound channel terminals", + "boundSystem": "Bound system terminals", + "noBound": "No bindings", + "addBind": "Add binding" +} diff --git a/apps/daxpay-admin/src/locales/langs/vi-VN/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/vi-VN/payment/merchant/workbench.json index f34cf1209..9ded1efbb 100644 --- a/apps/daxpay-admin/src/locales/langs/vi-VN/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/vi-VN/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "Người dùng thương gia", "cardUserDesc": "Quản lý tài khoản người dùng và phân quyền", "cardStore": "Quản lý cửa hàng", - "cardStoreDesc": "Hồ sơ cửa hàng vật lý và quản lý vị trí" + "cardStoreDesc": "Hồ sơ cửa hàng vật lý và quản lý vị trí", + "cardTerminal": "Thiết bị hệ thống", + "cardTerminalDesc": "Quản lý mã thiết bị logic của thương gia và liên kết thiết bị kênh" } } diff --git a/apps/daxpay-admin/src/locales/langs/zh-CN/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/device/terminal.json new file mode 100644 index 000000000..6dc3b6672 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "系统终端", + "channelTitle": "通道终端", + "field": { + "terminalNo": "终端编码", + "name": "终端名称", + "mchNo": "商户号", + "merchant": "商户", + "store": "门店", + "storeNo": "门店号", + "enable": "启用", + "remark": "备注", + "createTime": "创建时间", + "channelMchNo": "通道商户号", + "channel": "通道", + "product": "支付产品", + "type": "报送类型", + "outTerminalNo": "通道终端号", + "status": "登记状态", + "errorMsg": "错误信息" + }, + "enableYes": "启用", + "enableNo": "停用", + "add": "新增", + "edit": "编辑", + "bind": "绑定", + "unbind": "解绑", + "bindManage": "绑定管理", + "confirmDelete": "确定删除该终端吗?", + "confirmUnbind": "确定解除绑定吗?", + "validateName": "请输入终端名称", + "validateMchNo": "请选择商户", + "validateChannelMchNo": "请选择通道商户", + "validateType": "请选择报送类型", + "validateEnable": "请选择启用状态", + "pleaseSelectMch": "请选择商户", + "pleaseSelectStore": "请选择门店(可选)", + "pleaseSelectChannelMch": "请选择通道商户", + "pleaseSelectTerminal": "请选择系统终端", + "pleaseSelectChannelTerminal": "请选择通道终端", + "boundChannel": "已绑定通道终端", + "boundSystem": "已绑定系统终端", + "noBound": "暂无绑定", + "addBind": "添加绑定" +} diff --git a/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/workbench.json index 32eae6248..9c556323e 100644 --- a/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "商户用户", "cardUserDesc": "用户账号管理与权限分配", "cardStore": "门店管理", - "cardStoreDesc": "商户物理门店档案与位置信息管理" + "cardStoreDesc": "商户物理门店档案与位置信息管理", + "cardTerminal": "系统终端", + "cardTerminalDesc": "商户逻辑终端编号与通道终端绑定管理" } } diff --git a/apps/daxpay-admin/src/locales/langs/zh-HK/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/zh-HK/payment/device/terminal.json new file mode 100644 index 000000000..dd824f52f --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/zh-HK/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "系統終端", + "channelTitle": "通道終端", + "field": { + "terminalNo": "终端编码", + "name": "终端名称", + "mchNo": "商户号", + "merchant": "商户", + "store": "门店", + "storeNo": "门店号", + "enable": "启用", + "remark": "备注", + "createTime": "创建时间", + "channelMchNo": "通道商户号", + "channel": "通道", + "product": "支付产品", + "type": "报送类型", + "outTerminalNo": "通道终端号", + "status": "登记状态", + "errorMsg": "错误信息" + }, + "enableYes": "启用", + "enableNo": "停用", + "add": "新增", + "edit": "編輯", + "bind": "綁定", + "unbind": "解綁", + "bindManage": "綁定管理", + "confirmDelete": "確定刪除該終端嗎?", + "confirmUnbind": "確定解除綁定嗎?", + "validateName": "请输入终端名称", + "validateMchNo": "请选择商户", + "validateChannelMchNo": "请选择通道商户", + "validateType": "请选择报送类型", + "validateEnable": "请选择启用状态", + "pleaseSelectMch": "请选择商户", + "pleaseSelectStore": "请选择门店(可选)", + "pleaseSelectChannelMch": "请选择通道商户", + "pleaseSelectTerminal": "请选择系统终端", + "pleaseSelectChannelTerminal": "请选择通道终端", + "boundChannel": "已绑定通道终端", + "boundSystem": "已绑定系统终端", + "noBound": "暂无绑定", + "addBind": "添加绑定" +} diff --git a/apps/daxpay-admin/src/locales/langs/zh-HK/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/zh-HK/payment/merchant/workbench.json index 30b748c83..7063419dd 100644 --- a/apps/daxpay-admin/src/locales/langs/zh-HK/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/zh-HK/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "商户用户", "cardUserDesc": "用户賬號管理與權限分配", "cardStore": "門店管理", - "cardStoreDesc": "商户物理門店檔案與位置信息管理" + "cardStoreDesc": "商户物理門店檔案與位置信息管理", + "cardTerminal": "系統終端", + "cardTerminalDesc": "商户邏輯終端編號與通道終端綁定管理" } } diff --git a/apps/daxpay-admin/src/locales/langs/zh-TW/payment/device/terminal.json b/apps/daxpay-admin/src/locales/langs/zh-TW/payment/device/terminal.json new file mode 100644 index 000000000..dd824f52f --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/zh-TW/payment/device/terminal.json @@ -0,0 +1,45 @@ +{ + "systemTitle": "系統終端", + "channelTitle": "通道終端", + "field": { + "terminalNo": "终端编码", + "name": "终端名称", + "mchNo": "商户号", + "merchant": "商户", + "store": "门店", + "storeNo": "门店号", + "enable": "启用", + "remark": "备注", + "createTime": "创建时间", + "channelMchNo": "通道商户号", + "channel": "通道", + "product": "支付产品", + "type": "报送类型", + "outTerminalNo": "通道终端号", + "status": "登记状态", + "errorMsg": "错误信息" + }, + "enableYes": "启用", + "enableNo": "停用", + "add": "新增", + "edit": "編輯", + "bind": "綁定", + "unbind": "解綁", + "bindManage": "綁定管理", + "confirmDelete": "確定刪除該終端嗎?", + "confirmUnbind": "確定解除綁定嗎?", + "validateName": "请输入终端名称", + "validateMchNo": "请选择商户", + "validateChannelMchNo": "请选择通道商户", + "validateType": "请选择报送类型", + "validateEnable": "请选择启用状态", + "pleaseSelectMch": "请选择商户", + "pleaseSelectStore": "请选择门店(可选)", + "pleaseSelectChannelMch": "请选择通道商户", + "pleaseSelectTerminal": "请选择系统终端", + "pleaseSelectChannelTerminal": "请选择通道终端", + "boundChannel": "已绑定通道终端", + "boundSystem": "已绑定系统终端", + "noBound": "暂无绑定", + "addBind": "添加绑定" +} diff --git a/apps/daxpay-admin/src/locales/langs/zh-TW/payment/merchant/workbench.json b/apps/daxpay-admin/src/locales/langs/zh-TW/payment/merchant/workbench.json index a0a1c7bbf..75bfaee1e 100644 --- a/apps/daxpay-admin/src/locales/langs/zh-TW/payment/merchant/workbench.json +++ b/apps/daxpay-admin/src/locales/langs/zh-TW/payment/merchant/workbench.json @@ -23,6 +23,8 @@ "cardUser": "商戶使用者", "cardUserDesc": "使用者賬號管理與許可權分配", "cardStore": "門店管理", - "cardStoreDesc": "商戶物理門店檔案與位置資訊管理" + "cardStoreDesc": "商戶物理門店檔案與位置資訊管理", + "cardTerminal": "系統終端", + "cardTerminalDesc": "商戶邏輯終端編號與通道終端綁定管理" } } diff --git a/apps/daxpay-admin/src/locales/menu-titles/en-US.json b/apps/daxpay-admin/src/locales/menu-titles/en-US.json index c8bdcd29f..6d8193f73 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/en-US.json +++ b/apps/daxpay-admin/src/locales/menu-titles/en-US.json @@ -93,6 +93,6 @@ "menu.system.security": "Security Management", "menu.system.security.system": "System Security", "menu.system.security.pay": "Pay Security", - "menu.device.terminal.system": "System Terminals", + "menu.payment.merchant.terminal": "System Terminals", "menu.device.terminal.channel": "Channel Terminals" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/id-ID.json b/apps/daxpay-admin/src/locales/menu-titles/id-ID.json index b88a0a63a..f1d7db660 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/id-ID.json +++ b/apps/daxpay-admin/src/locales/menu-titles/id-ID.json @@ -93,6 +93,6 @@ "menu.system.security": "Manajemen Keamanan", "menu.system.security.system": "Keamanan Sistem", "menu.system.security.pay": "Keamanan Pembayaran", - "menu.device.terminal.system": "Terminal Sistem", + "menu.payment.merchant.terminal": "Terminal Sistem", "menu.device.terminal.channel": "Terminal Saluran" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json b/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json index 93198e7e7..991a81796 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json +++ b/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json @@ -93,6 +93,6 @@ "menu.system.security": "セキュリティ管理", "menu.system.security.system": "システムセキュリティ", "menu.system.security.pay": "決済セキュリティ", - "menu.device.terminal.system": "システム端末", + "menu.payment.merchant.terminal": "システム端末", "menu.device.terminal.channel": "チャネル端末" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json b/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json index c38452f59..7e2193b5d 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json +++ b/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json @@ -93,6 +93,6 @@ "menu.system.security": "보안 관리", "menu.system.security.system": "시스템 보안", "menu.system.security.pay": "결제 보안", - "menu.device.terminal.system": "시스템 단말", + "menu.payment.merchant.terminal": "시스템 단말", "menu.device.terminal.channel": "채널 단말" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json b/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json index af54c49ed..19a3da199 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json +++ b/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json @@ -93,6 +93,6 @@ "menu.system.security": "Pengurusan Keselamatan", "menu.system.security.system": "Keselamatan Sistem", "menu.system.security.pay": "Keselamatan Pembayaran", - "menu.device.terminal.system": "Terminal Sistem", + "menu.payment.merchant.terminal": "Terminal Sistem", "menu.device.terminal.channel": "Terminal Saluran" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/th-TH.json b/apps/daxpay-admin/src/locales/menu-titles/th-TH.json index 7a0cbf76c..d95868888 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/th-TH.json +++ b/apps/daxpay-admin/src/locales/menu-titles/th-TH.json @@ -93,6 +93,6 @@ "menu.system.security": "การจัดการความปลอดภัย", "menu.system.security.system": "ความปลอดภัยระบบ", "menu.system.security.pay": "ความปลอดภัยการชำระเงิน", - "menu.device.terminal.system": "เทอร์มินัลระบบ", + "menu.payment.merchant.terminal": "เทอร์มินัลระบบ", "menu.device.terminal.channel": "เทอร์มินัลช่องทาง" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json b/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json index 234efb9f4..d42b6aeba 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json +++ b/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json @@ -93,6 +93,6 @@ "menu.system.security": "Quản lý bảo mật", "menu.system.security.system": "Bảo mật hệ thống", "menu.system.security.pay": "Bảo mật thanh toán", - "menu.device.terminal.system": "Thiết bị hệ thống", + "menu.payment.merchant.terminal": "Thiết bị hệ thống", "menu.device.terminal.channel": "Thiết bị kênh" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json b/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json index 1d98be6b9..95f03ce3e 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json +++ b/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json @@ -93,6 +93,6 @@ "menu.system.security": "安全管理", "menu.system.security.system": "系统安全配置", "menu.system.security.pay": "支付安全配置", - "menu.device.terminal.system": "系统终端", + "menu.payment.merchant.terminal": "系统终端", "menu.device.terminal.channel": "通道终端" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json b/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json index 3872de4c0..7fb071bf4 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json +++ b/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json @@ -93,6 +93,6 @@ "menu.system.security": "安全管理", "menu.system.security.system": "系統安全配置", "menu.system.security.pay": "支付安全配置", - "menu.device.terminal.system": "系統終端", + "menu.payment.merchant.terminal": "系統終端", "menu.device.terminal.channel": "通道終端" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json b/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json index a63220d89..949c520f3 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json +++ b/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json @@ -93,6 +93,6 @@ "menu.system.security": "安全管理", "menu.system.security.system": "系統安全配置", "menu.system.security.pay": "支付安全配置", - "menu.device.terminal.system": "系統終端", + "menu.payment.merchant.terminal": "系統終端", "menu.device.terminal.channel": "通道終端" } diff --git a/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalBindDrawer.vue b/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalBindDrawer.vue new file mode 100644 index 000000000..6d8d3d8d5 --- /dev/null +++ b/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalBindDrawer.vue @@ -0,0 +1,148 @@ + + + diff --git a/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalEdit.vue b/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalEdit.vue new file mode 100644 index 000000000..36b8c5026 --- /dev/null +++ b/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalEdit.vue @@ -0,0 +1,178 @@ + + + diff --git a/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalPanel.vue b/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalPanel.vue new file mode 100644 index 000000000..3dd617ef3 --- /dev/null +++ b/apps/daxpay-admin/src/views/payment/device/terminal/channel/ChannelTerminalPanel.vue @@ -0,0 +1,234 @@ + + + diff --git a/apps/daxpay-admin/src/views/payment/merchant/manage/workbench/MerchantManage.vue b/apps/daxpay-admin/src/views/payment/merchant/manage/workbench/MerchantManage.vue index 0ec36be85..b80df2665 100644 --- a/apps/daxpay-admin/src/views/payment/merchant/manage/workbench/MerchantManage.vue +++ b/apps/daxpay-admin/src/views/payment/merchant/manage/workbench/MerchantManage.vue @@ -58,6 +58,15 @@ description: $t('payment.merchant.workbench.workbench.cardStoreDesc'), route: '/payment/merchant/store', }, + { + key: 'terminal', + // 系统终端 + title: $t('payment.merchant.workbench.workbench.cardTerminal'), + icon: 'ant-design:monitor-outlined', + // 商户逻辑终端编号与通道终端绑定管理 + description: $t('payment.merchant.workbench.workbench.cardTerminalDesc'), + route: '/payment/merchant/terminal', + }, ], }, { diff --git a/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalBindDrawer.vue b/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalBindDrawer.vue new file mode 100644 index 000000000..3b17fffa4 --- /dev/null +++ b/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalBindDrawer.vue @@ -0,0 +1,152 @@ + + + diff --git a/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalEdit.vue b/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalEdit.vue new file mode 100644 index 000000000..15f97ea31 --- /dev/null +++ b/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalEdit.vue @@ -0,0 +1,163 @@ + + + diff --git a/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalList.vue b/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalList.vue new file mode 100644 index 000000000..263e4ad70 --- /dev/null +++ b/apps/daxpay-admin/src/views/payment/merchant/terminal/SystemTerminalList.vue @@ -0,0 +1,304 @@ + + +