From dd264b1e97fd8241c8013d234c0f9eb31ccbb980 Mon Sep 17 00:00:00 2001 From: zhenhui <1276357500@qq.com> Date: Tue, 19 May 2026 09:49:02 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B0=86=E9=83=A8=E9=97=A8=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=B8=A0=E9=81=93=EF=BC=8C=E5=B9=B6=E4=B8=94=E6=89=80?= =?UTF-8?q?=E6=9C=89dice=5F=E8=A1=A8=E5=85=B3=E8=81=94=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E8=A1=A8=202.=E5=B0=86=E6=89=80=E6=9C=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E8=AE=B0=E5=BD=95=E8=A1=A8=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=85=B3=E8=81=94=E6=B8=A0=E9=81=93=203.=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E9=A1=B5=E9=9D=A2=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saiadmin-artd/src/api/dashboard.ts | 41 +- saiadmin-artd/src/api/system/dept.ts | 14 + saiadmin-artd/src/api/system/role.ts | 5 +- .../channel/SuperAdminChannelShell.vue | 138 +++++ .../core/layouts/art-page-content/index.vue | 18 +- .../components/dice/ChannelConfigLayout.vue | 12 + .../src/composables/useChannelConfigScope.ts | 6 + .../src/composables/useChannelDeptScope.ts | 230 ++++++++ saiadmin-artd/src/hooks/core/useTable.ts | 20 +- saiadmin-artd/src/locales/langs/en.json | 18 +- .../src/locales/langs/en/dice/game.json | 45 ++ .../langs/en/dice/lottery_pool_config.json | 1 + .../locales/langs/en/dice/play_record.json | 10 +- .../src/locales/langs/en/dice/player.json | 15 +- .../langs/en/dice/player_ticket_record.json | 7 +- .../langs/en/dice/player_wallet_record.json | 8 +- .../src/locales/langs/en/dice/reward.json | 3 +- .../src/locales/langs/en/system/dept.json | 35 +- .../src/locales/langs/en/system/user.json | 9 +- saiadmin-artd/src/locales/langs/zh.json | 26 +- .../src/locales/langs/zh/dice/game.json | 45 ++ .../langs/zh/dice/lottery_pool_config.json | 1 + .../locales/langs/zh/dice/play_record.json | 10 +- .../src/locales/langs/zh/dice/player.json | 15 +- .../langs/zh/dice/player_ticket_record.json | 7 +- .../langs/zh/dice/player_wallet_record.json | 8 +- .../src/locales/langs/zh/dice/reward.json | 5 +- .../src/locales/langs/zh/system/dept.json | 37 +- .../src/locales/langs/zh/system/user.json | 9 +- saiadmin-artd/src/utils/channelLayout.ts | 48 ++ .../dashboard/console/modules/active-user.vue | 9 +- .../dashboard/console/modules/card-list.vue | 9 +- .../console/modules/new-player-list.vue | 9 +- .../console/modules/play-record-list.vue | 9 +- .../console/modules/sales-overview.vue | 9 +- .../console/modules/wallet-record-list.vue | 9 +- .../plugin/dice/ante_config/index/index.vue | 1 + .../ante_config/index/modules/edit-dialog.vue | 5 +- .../plugin/dice/api/ante_config/index.ts | 11 + .../dice/api/lottery_pool_config/index.ts | 17 +- .../plugin/dice/api/play_record/index.ts | 10 +- .../src/views/plugin/dice/api/player/index.ts | 34 +- .../dice/api/player_ticket_record/index.ts | 5 +- .../dice/api/player_wallet_record/index.ts | 7 +- .../src/views/plugin/dice/api/reward/index.ts | 17 +- .../plugin/dice/api/reward_config/index.ts | 31 +- .../views/plugin/dice/config/index/index.vue | 1 + .../dice/config/index/modules/edit-dialog.vue | 5 +- .../views/plugin/dice/game/index/index.vue | 5 +- .../dice/game/index/modules/edit-dialog.vue | 121 ++--- .../dice/lottery_pool_config/index/index.vue | 3 +- .../index/modules/current-pool-dialog.vue | 23 +- .../index/modules/edit-dialog.vue | 16 +- .../play_record/index/modules/edit-dialog.vue | 30 +- .../index/modules/edit-dialog.vue | 5 +- .../views/plugin/dice/player/index/index.vue | 3 +- .../index/modules/WalletOperateDialog.vue | 15 +- .../dice/player/index/modules/edit-dialog.vue | 97 +++- .../index/modules/edit-dialog.vue | 17 +- .../dice/player_wallet_record/index/index.vue | 91 +++- .../index/modules/edit-dialog.vue | 13 +- .../views/plugin/dice/reward/index/index.vue | 10 +- .../index/modules/weight-edit-dialog.vue | 5 +- .../index/modules/weight-ratio-dialog.vue | 5 +- .../index/modules/weight-test-dialog.vue | 465 ++++++++++------ .../plugin/dice/reward_config/index/index.vue | 92 +++- .../index/modules/edit-dialog.vue | 5 +- .../index/modules/weight-ratio-dialog.vue | 5 +- .../index/modules/edit-dialog.vue | 5 +- saiadmin-artd/src/views/system/dept/index.vue | 71 ++- .../dept/modules/delete-channel-dialog.vue | 115 ++++ .../views/system/dept/modules/edit-dialog.vue | 61 +-- .../views/system/role/modules/edit-dialog.vue | 6 +- saiadmin-artd/src/views/system/user/index.vue | 98 +++- .../views/system/user/modules/edit-dialog.vue | 75 ++- server/app/api/controller/GameController.php | 50 +- server/app/api/lang/en.php | 22 + server/app/api/lang/legacy_en.php | 22 + server/app/api/lang/zh.php | 22 + server/app/api/logic/PlayStartLogic.php | 21 +- server/app/api/logic/UserLogic.php | 59 +-- server/app/dice/basic/DiceBaseLogic.php | 20 + .../controller/DiceDashboardController.php | 77 +-- .../ante_config/DiceAnteConfigController.php | 38 +- .../config/DiceConfigController.php | 17 +- .../controller/game/DiceGameController.php | 16 +- .../DiceLotteryPoolConfigController.php | 36 +- .../play_record/DicePlayRecordController.php | 25 +- .../DicePlayRecordTestController.php | 10 + .../player/DicePlayerController.php | 172 ++++-- .../DicePlayerTicketRecordController.php | 15 +- .../DicePlayerWalletRecordController.php | 51 +- .../reward/DiceRewardController.php | 38 +- .../DiceRewardConfigController.php | 39 +- .../DiceRewardConfigRecordController.php | 10 + server/app/dice/helper/AdminScopeHelper.php | 352 ++++++++++++- .../app/dice/helper/ConfigScopeEditHelper.php | 139 +++++ .../logic/ante_config/DiceAnteConfigLogic.php | 30 +- .../app/dice/logic/config/DiceConfigLogic.php | 13 +- server/app/dice/logic/game/DiceGameLogic.php | 19 +- .../DiceLotteryPoolConfigLogic.php | 64 ++- .../logic/play_record/DicePlayRecordLogic.php | 4 +- .../DicePlayRecordTestLogic.php | 4 +- .../app/dice/logic/player/DicePlayerLogic.php | 4 +- .../DicePlayerTicketRecordLogic.php | 4 +- .../DicePlayerWalletRecordLogic.php | 19 +- .../app/dice/logic/reward/DiceRewardLogic.php | 136 +++-- .../reward_config/DiceRewardConfigLogic.php | 71 ++- .../DiceRewardConfigRecordLogic.php | 156 ++++-- .../reward_config_record/WeightTestRunner.php | 120 ++++- server/app/dice/model/DiceModel.php | 25 + .../dice/model/ante_config/DiceAnteConfig.php | 4 +- server/app/dice/model/config/DiceConfig.php | 4 +- server/app/dice/model/game/DiceGame.php | 4 +- .../DiceLotteryPoolConfig.php | 16 +- .../dice/model/play_record/DicePlayRecord.php | 4 +- .../play_record_test/DicePlayRecordTest.php | 4 +- server/app/dice/model/player/DicePlayer.php | 7 +- .../DicePlayerTicketRecord.php | 4 +- .../DicePlayerWalletRecord.php | 4 +- server/app/dice/model/reward/DiceReward.php | 83 ++- .../model/reward_config/DiceRewardConfig.php | 84 +-- .../reward_config/DiceRewardConfigRecord.php | 4 +- .../DiceRewardConfigRecord.php | 4 +- .../dice/service/DiceChannelConfigService.php | 497 ++++++++++++++++++ .../validate/player/DicePlayerValidate.php | 4 +- server/config/api.php | 2 +- .../system/SystemDeptController.php | 53 +- .../system/SystemRoleController.php | 92 ++-- .../app/logic/system/SystemDeptLogic.php | 136 +++-- .../app/logic/system/SystemRoleLogic.php | 208 ++++++-- .../app/logic/system/SystemUserLogic.php | 17 +- .../saiadmin/app/model/system/SystemDept.php | 31 +- .../saiadmin/app/model/system/SystemRole.php | 11 +- .../saiadmin/app/model/system/SystemUser.php | 14 +- .../app/service/SystemRoleChannelService.php | 257 +++++++++ .../validate/system/SystemDeptValidate.php | 4 +- .../validate/system/SystemRoleValidate.php | 2 +- .../plugin/saiadmin/basic/OpenController.php | 3 + server/plugin/saiadmin/config/route.php | 6 +- server/plugin/saiadmin/config/saithink.php | 9 + server/resource/translations/api/en.php | 1 + server/resource/translations/api/zh.php | 1 + 143 files changed, 4741 insertions(+), 1254 deletions(-) create mode 100644 saiadmin-artd/src/components/channel/SuperAdminChannelShell.vue create mode 100644 saiadmin-artd/src/components/dice/ChannelConfigLayout.vue create mode 100644 saiadmin-artd/src/composables/useChannelConfigScope.ts create mode 100644 saiadmin-artd/src/composables/useChannelDeptScope.ts create mode 100644 saiadmin-artd/src/locales/langs/en/dice/game.json create mode 100644 saiadmin-artd/src/locales/langs/zh/dice/game.json create mode 100644 saiadmin-artd/src/utils/channelLayout.ts create mode 100644 saiadmin-artd/src/views/system/dept/modules/delete-channel-dialog.vue create mode 100644 server/app/dice/basic/DiceBaseLogic.php create mode 100644 server/app/dice/helper/ConfigScopeEditHelper.php create mode 100644 server/app/dice/model/DiceModel.php create mode 100644 server/app/dice/service/DiceChannelConfigService.php create mode 100644 server/plugin/saiadmin/app/service/SystemRoleChannelService.php diff --git a/saiadmin-artd/src/api/dashboard.ts b/saiadmin-artd/src/api/dashboard.ts index 9a560b7..110265f 100644 --- a/saiadmin-artd/src/api/dashboard.ts +++ b/saiadmin-artd/src/api/dashboard.ts @@ -1,32 +1,36 @@ import request from '@/utils/http' +export type DashboardQueryParams = { + dept_id?: number +} + /** * 大富翁工作台卡片统计(玩家注册、充值、提现、游玩次数,含较上周对比) - * @returns 响应 */ -export function fetchStatistics() { +export function fetchStatistics(params?: DashboardQueryParams) { return request.get({ - url: '/core/dice/dashboard/statistics' + url: '/core/dice/dashboard/statistics', + params }) } /** * 近期玩家充值统计(近10天每日充值金额) - * @returns 响应 */ -export function fetchRechargeChart() { +export function fetchRechargeChart(params?: DashboardQueryParams) { return request.get({ - url: '/core/dice/dashboard/rechargeChart' + url: '/core/dice/dashboard/rechargeChart', + params }) } /** * 月度玩家充值汇总(当年1-12月每月充值金额) - * @returns 响应 */ -export function fetchRechargeBarChart() { +export function fetchRechargeBarChart(params?: DashboardQueryParams) { return request.get({ - url: '/core/dice/dashboard/rechargeBarChart' + url: '/core/dice/dashboard/rechargeBarChart', + params }) } @@ -39,11 +43,11 @@ export interface WalletRecordItem { /** * 工作台-玩家充值记录(最新50条) - * @returns 列表 */ -export function fetchWalletRecordList() { +export function fetchWalletRecordList(params?: DashboardQueryParams) { return request.get({ - url: '/core/dice/dashboard/walletRecordList' + url: '/core/dice/dashboard/walletRecordList', + params }) } @@ -66,21 +70,20 @@ export interface PlayRecordItem { /** * 工作台-新增玩家记录(最新50条) - * @returns 列表 */ -export function fetchNewPlayerList() { +export function fetchNewPlayerList(params?: DashboardQueryParams) { return request.get({ - url: '/core/dice/dashboard/newPlayerList' + url: '/core/dice/dashboard/newPlayerList', + params }) } /** * 工作台-玩家游玩记录(最新50条) - * @returns 列表 */ -export function fetchPlayRecordList() { +export function fetchPlayRecordList(params?: DashboardQueryParams) { return request.get({ - url: '/core/dice/dashboard/playRecordList' + url: '/core/dice/dashboard/playRecordList', + params }) } - diff --git a/saiadmin-artd/src/api/system/dept.ts b/saiadmin-artd/src/api/system/dept.ts index 9f098fe..47acb44 100644 --- a/saiadmin-artd/src/api/system/dept.ts +++ b/saiadmin-artd/src/api/system/dept.ts @@ -71,5 +71,19 @@ export default { return request.get({ url: '/core/dept/accessDept' }) + }, + + destroyPreview(ids: string | number | Array) { + const idStr = Array.isArray(ids) ? ids.join(',') : String(ids) + return request.get({ + url: '/core/dept/destroyPreview', + params: { ids: idStr } + }) + }, + + syncChannelConfigs() { + return request.post({ + url: '/core/dept/syncChannelConfigs' + }) } } diff --git a/saiadmin-artd/src/api/system/role.ts b/saiadmin-artd/src/api/system/role.ts index 12b97ef..1c0b134 100644 --- a/saiadmin-artd/src/api/system/role.ts +++ b/saiadmin-artd/src/api/system/role.ts @@ -79,9 +79,10 @@ export default { * 可操作角色 * @returns 数据列表 */ - accessRole() { + accessRole(params?: Record) { return request.get({ - url: '/core/role/accessRole' + url: '/core/role/accessRole', + params }) }, diff --git a/saiadmin-artd/src/components/channel/SuperAdminChannelShell.vue b/saiadmin-artd/src/components/channel/SuperAdminChannelShell.vue new file mode 100644 index 0000000..81021bf --- /dev/null +++ b/saiadmin-artd/src/components/channel/SuperAdminChannelShell.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/saiadmin-artd/src/components/core/layouts/art-page-content/index.vue b/saiadmin-artd/src/components/core/layouts/art-page-content/index.vue index a862df1..4831248 100644 --- a/saiadmin-artd/src/components/core/layouts/art-page-content/index.vue +++ b/saiadmin-artd/src/components/core/layouts/art-page-content/index.vue @@ -18,22 +18,34 @@ + + + + + + @@ -53,6 +65,8 @@ import { useAutoLayoutHeight } from '@/hooks/core/useLayoutHeight' import { useSettingStore } from '@/store/modules/setting' import { useWorktabStore } from '@/store/modules/worktab' + import SuperAdminChannelShell from '@/components/channel/SuperAdminChannelShell.vue' + import { shouldWrapSuperAdminChannelLayout as shouldWrapChannelLayout } from '@/utils/channelLayout' defineOptions({ name: 'ArtPageContent' }) diff --git a/saiadmin-artd/src/components/dice/ChannelConfigLayout.vue b/saiadmin-artd/src/components/dice/ChannelConfigLayout.vue new file mode 100644 index 0000000..042782b --- /dev/null +++ b/saiadmin-artd/src/components/dice/ChannelConfigLayout.vue @@ -0,0 +1,12 @@ + + + + diff --git a/saiadmin-artd/src/composables/useChannelConfigScope.ts b/saiadmin-artd/src/composables/useChannelConfigScope.ts new file mode 100644 index 0000000..7927449 --- /dev/null +++ b/saiadmin-artd/src/composables/useChannelConfigScope.ts @@ -0,0 +1,6 @@ +/** @deprecated 请使用 useChannelDeptScope */ +export { + DEFAULT_CHANNEL_ID, + useChannelDeptScope as useChannelConfigScope, + type ChannelTreeNode +} from './useChannelDeptScope' diff --git a/saiadmin-artd/src/composables/useChannelDeptScope.ts b/saiadmin-artd/src/composables/useChannelDeptScope.ts new file mode 100644 index 0000000..80092f0 --- /dev/null +++ b/saiadmin-artd/src/composables/useChannelDeptScope.ts @@ -0,0 +1,230 @@ +import type { InjectionKey, Ref, ComputedRef } from 'vue' +import { useRoute } from 'vue-router' +import deptApi from '@/api/system/dept' +import { useUserStore } from '@/store/modules/user' +import { isConfigChannelRoute, isRoleChannelRoute, isSuperAdminUser } from '@/utils/channelLayout' + +export interface ChannelTreeNode { + id: number + label: string + children?: ChannelTreeNode[] +} + +/** 默认配置模板(dept_id = 0) */ +export const DEFAULT_CHANNEL_ID = 0 + +export interface ChannelDeptScopeContext { + treeData: Ref + selectedDeptId: Ref + loadingChannels: Ref + isSuperAdmin: Ref + selectedDeptLabel: Ref + deptQueryParams: ComputedRef<{ dept_id: number }> + isConfigScope: ComputedRef + showDefaultTemplate: ComputedRef +} + +export const CHANNEL_DEPT_SCOPE_KEY: InjectionKey = + Symbol('channelDeptScope') + +export function provideChannelDeptScope(ctx: ChannelDeptScopeContext) { + provide(CHANNEL_DEPT_SCOPE_KEY, ctx) +} + +export function useInjectedChannelDept(): ChannelDeptScopeContext | null { + return inject(CHANNEL_DEPT_SCOPE_KEY, null) +} + +/** 超管全局渠道栏:创建并 provide 渠道上下文 */ +export function useChannelDeptScope() { + const route = useRoute() + const userStore = useUserStore() + const treeData = ref([]) + const selectedDeptId = ref(DEFAULT_CHANNEL_ID) + const loadingChannels = ref(false) + + const isConfigScope = computed(() => isConfigChannelRoute(route)) + const isRoleScope = computed(() => isRoleChannelRoute(route)) + const showDefaultTemplate = computed(() => isConfigScope.value || isRoleScope.value) + + const isSuperAdmin = computed(() => isSuperAdminUser()) + + const selectedDeptLabel = computed(() => { + const find = (nodes: ChannelTreeNode[]): string => { + for (const n of nodes) { + if (n.id === selectedDeptId.value) { + return n.label + } + if (n.children?.length) { + const sub = find(n.children) + if (sub) return sub + } + } + return '' + } + return find(treeData.value) + }) + + const deptQueryParams = computed(() => { + const id = selectedDeptId.value + if (!showDefaultTemplate.value && id <= 0) { + return { dept_id: 0 } + } + return { dept_id: id } + }) + + const loadChannels = async () => { + loadingChannels.value = true + try { + const list = await deptApi.accessDept() + const channels = Array.isArray(list) ? list : [] + const nodes: ChannelTreeNode[] = channels.map((item: Record) => ({ + id: Number(item.id ?? item.value), + label: String(item.label ?? item.name ?? item.id) + })) + if (isSuperAdmin.value) { + if (showDefaultTemplate.value) { + treeData.value = [{ id: DEFAULT_CHANNEL_ID, label: '' }, ...nodes] + if (!treeData.value.some((n) => n.id === selectedDeptId.value)) { + selectedDeptId.value = DEFAULT_CHANNEL_ID + } + } else { + treeData.value = nodes + if (nodes.length > 0) { + const valid = nodes.some((n) => n.id === selectedDeptId.value) + if (!valid || selectedDeptId.value <= 0) { + selectedDeptId.value = nodes[0].id + } + } + } + } else { + treeData.value = nodes + if (nodes.length > 0) { + selectedDeptId.value = nodes[0].id + } + } + } finally { + loadingChannels.value = false + } + } + + const handleChannelClick = (data: ChannelTreeNode) => { + selectedDeptId.value = Number(data.id) + } + + const ctx: ChannelDeptScopeContext = { + treeData, + selectedDeptId, + loadingChannels, + isSuperAdmin, + selectedDeptLabel, + deptQueryParams, + isConfigScope, + showDefaultTemplate + } + + onMounted(() => { + loadChannels() + }) + + return { + ...ctx, + loadChannels, + handleChannelClick, + provideScope: () => provideChannelDeptScope(ctx) + } +} + +/** 将当前选中渠道写入列表查询参数并刷新 */ +export function bindChannelDeptToSearchParams( + searchParams: Record, + refresh: () => void, + options?: { immediate?: boolean; enabled?: boolean } +) { + const channel = useInjectedChannelDept() + if (!channel || options?.enabled === false) { + return + } + + const apply = (deptId: number) => { + if (!channel.showDefaultTemplate.value && deptId <= 0) { + return + } + searchParams.dept_id = deptId + refresh() + } + + watch( + () => channel.selectedDeptId.value, + (deptId) => apply(deptId), + { immediate: options?.immediate ?? true } + ) +} + +/** 工作台等非 useTable 页面:渠道切换时重新拉数 */ +export function useChannelDeptReload(loadFn: () => void | Promise) { + const channel = useInjectedChannelDept() + if (!channel) { + onMounted(() => { + void loadFn() + }) + return + } + + watch( + () => channel.selectedDeptId.value, + (deptId) => { + if (!channel.showDefaultTemplate.value && deptId <= 0) { + return + } + void loadFn() + }, + { immediate: true } + ) +} + +/** 请求参数:业务页附带 dept_id;渠道管理员固定本渠道 */ +export function getChannelDeptRequestParams(): { dept_id?: number } { + const channel = useInjectedChannelDept() + if (channel?.isSuperAdmin.value) { + const deptId = channel.selectedDeptId.value + if (!channel.showDefaultTemplate.value && deptId <= 0) { + return {} + } + if (deptId > 0) { + return { dept_id: deptId } + } + if (channel.showDefaultTemplate.value) { + return { dept_id: deptId } + } + return {} + } + + const userStore = useUserStore() + const dept = userStore.info?.department + if (dept && Number(dept.id) > 0) { + return { dept_id: Number(dept.id) } + } + + return {} +} + +/** 保存/更新时附带 dept_id(优先渠道栏选中值,其次表单/行数据中的 dept_id) */ +export function withChannelDeptParams>(payload: T): T { + const extra = getChannelDeptRequestParams() + if ('dept_id' in extra) { + return { ...payload, ...extra } + } + const rowDeptId = payload.dept_id + if (rowDeptId !== undefined && rowDeptId !== null && rowDeptId !== '') { + const num = Number(rowDeptId) + if (num > 0) { + return { ...payload, dept_id: num } + } + } + const channel = useInjectedChannelDept() + if (channel && channel.selectedDeptId.value > 0) { + return { ...payload, dept_id: channel.selectedDeptId.value } + } + return payload +} diff --git a/saiadmin-artd/src/hooks/core/useTable.ts b/saiadmin-artd/src/hooks/core/useTable.ts index c79da01..7fe225d 100644 --- a/saiadmin-artd/src/hooks/core/useTable.ts +++ b/saiadmin-artd/src/hooks/core/useTable.ts @@ -35,6 +35,7 @@ import { createErrorHandler } from '../../utils/table/tableUtils' import { tableConfig } from '../../utils/table/tableConfig' +import { bindChannelDeptToSearchParams, useInjectedChannelDept, getChannelDeptRequestParams } from '@/composables/useChannelDeptScope' // 类型推导工具类型 type InferApiParams = T extends (params: infer P) => any ? P : never @@ -441,6 +442,23 @@ function useTableImpl Promise>( // 智能防抖搜索函数 const debouncedGetDataByPage = createSmartDebounce(getDataByPage, debounceTime) + const channelScope = useInjectedChannelDept() + const hasChannelScope = !!channelScope + bindChannelDeptToSearchParams( + searchParams as Record, + () => { + void getDataByPage() + }, + { immediate: hasChannelScope } + ) + + if (!hasChannelScope) { + const channelDeptParams = getChannelDeptRequestParams() + if (channelDeptParams.dept_id !== undefined) { + Object.assign(searchParams as Record, channelDeptParams) + } + } + // 重置搜索参数 const resetSearchParams = async (): Promise => { // 取消防抖的搜索 @@ -645,7 +663,7 @@ function useTableImpl Promise>( } // 挂载时自动加载数据 - if (immediate) { + if (immediate && !hasChannelScope) { onMounted(async () => { await getData() }) diff --git a/saiadmin-artd/src/locales/langs/en.json b/saiadmin-artd/src/locales/langs/en.json index 05be336..a6f76b4 100644 --- a/saiadmin-artd/src/locales/langs/en.json +++ b/saiadmin-artd/src/locales/langs/en.json @@ -37,7 +37,15 @@ "tips": "Prompt", "cancel": "Cancel", "confirm": "Confirm", - "logOutTips": "Do you want to log out?" + "logOutTips": "Do you want to log out?", + "channelScope": { + "listTitle": "Channels", + "defaultTemplate": "Default template", + "defaultRoleTemplate": "Default role template", + "currentConfig": "Current config", + "currentChannel": "Current channel", + "currentRole": "Current roles" + } }, "uiMsg": { "titlePrompt": "Prompt", @@ -387,7 +395,7 @@ "role": "Role Management", "userCenter": "User Center", "menu": "Menu Management", - "dept": "Department Management", + "dept": "Channel Management", "config": "System Config" }, "safeguard": { @@ -516,12 +524,12 @@ "system": { "username": "Username", "phone": "Phone", - "dept": "Department", + "dept": "Channel", "dashboard": "Dashboard", "loginTime": "Last Login", "agentId": "Agent ID", - "deptName": "Dept Name", - "deptCode": "Dept Code", + "deptName": "Channel Name", + "deptCode": "Channel Code", "leader": "Leader", "roleName": "Role Name", "roleCode": "Role Code", diff --git a/saiadmin-artd/src/locales/langs/en/dice/game.json b/saiadmin-artd/src/locales/langs/en/dice/game.json new file mode 100644 index 0000000..876ee8f --- /dev/null +++ b/saiadmin-artd/src/locales/langs/en/dice/game.json @@ -0,0 +1,45 @@ +{ + "form": { + "dialogTitleAdd": "Add Game", + "dialogTitleEdit": "Edit Game", + "provider": "Provider", + "placeholderProvider": "Enter provider name", + "providerCode": "Provider Code", + "placeholderProviderCode": "Enter provider code", + "gameCode": "Game Code", + "placeholderGameCode": "Enter game code", + "gameKey": "Game Key", + "placeholderGameKey": "Enter unique game key", + "gameName": "Name (ZH)", + "placeholderGameName": "Enter Chinese name", + "gameNameEn": "Name (EN)", + "placeholderGameNameEn": "Enter English name", + "gameType": "Game Type", + "placeholderGameType": "Enter game type", + "sort": "Sort", + "logo": "Logo URL", + "tabPicker": "Pick Image", + "tabUpload": "Upload Image", + "gameUrl": "Game URL", + "placeholderGameUrl": "Enter game URL", + "hallUrl": "Hall URL", + "placeholderHallUrl": "Enter hall URL", + "status": "Status", + "statusEnabled": "Enabled", + "statusDisabled": "Disabled", + "remark": "Remark", + "placeholderRemark": "Enter remark", + "addSuccess": "Added successfully", + "editSuccess": "Updated successfully", + "ruleProviderRequired": "Provider is required", + "ruleProviderCodeRequired": "Provider code is required", + "ruleGameCodeRequired": "Game code is required", + "ruleGameKeyRequired": "Game key is required", + "ruleGameNameRequired": "Chinese name is required", + "ruleGameTypeRequired": "Game type is required" + }, + "table": { + "statusEnabled": "Enabled", + "statusDisabled": "Disabled" + } +} diff --git a/saiadmin-artd/src/locales/langs/en/dice/lottery_pool_config.json b/saiadmin-artd/src/locales/langs/en/dice/lottery_pool_config.json index db55fc6..90a28c6 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/lottery_pool_config.json +++ b/saiadmin-artd/src/locales/langs/en/dice/lottery_pool_config.json @@ -26,6 +26,7 @@ "profitCalcHint": "Profit per round: paid = win_coin (incl. BIGWIN) - paid_amount (= ante×1); free = win_coin. Refreshes every 2s while open.", "tierRuleTitle": "Tier Rule", "tierRuleContent": "When player profit in this pool is below safety line, use player T*_weight; when above or equal, use pool T*_weight (kill).", + "enableKillScore": "Enable kill score", "killScoreWeights": "Kill weights", "killWeightNote": "(Kill weights from pool config type=1; edit in list.)", "btnResetProfit": "Reset Player Total Profit", diff --git a/saiadmin-artd/src/locales/langs/en/dice/play_record.json b/saiadmin-artd/src/locales/langs/en/dice/play_record.json index 4415be9..1cabec9 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/play_record.json +++ b/saiadmin-artd/src/locales/langs/en/dice/play_record.json @@ -34,7 +34,15 @@ "placeholderRewardTier": "Select reward tier", "addSuccess": "Added successfully", "editSuccess": "Updated successfully", - "validateFailed": "Validation failed, please check required fields and format" + "validateFailed": "Validation failed, please check required fields and format", + "rulePlayerRequired": "Please select player", + "ruleLotteryConfigRequired": "Please select lottery pool config", + "ruleLotteryTypeRequired": "Please select draw type", + "ruleIsWinRequired": "Please select big win status", + "ruleWinCoinRequired": "Win coin is required", + "ruleRollArrayLength": "Roll array must have 5 numbers", + "ruleRollArrayValues": "Enter 5 numbers, each between 1 and 6", + "ruleRewardTierRequired": "Please select reward tier" }, "toolbar": { "platformTotalProfit": "Platform Total Profit" diff --git a/saiadmin-artd/src/locales/langs/en/dice/player.json b/saiadmin-artd/src/locales/langs/en/dice/player.json index 6636305..5605f44 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/player.json +++ b/saiadmin-artd/src/locales/langs/en/dice/player.json @@ -14,6 +14,8 @@ "status": "Status", "adminId": "Admin", "placeholderAdmin": "Select admin (optional)", + "placeholderAdminTree": "Select admin by channel", + "unassignedChannel": "Unassigned channel", "coin": "Coin", "placeholderCoinAdd": "Default 0 on create, read-only", "lotteryPoolConfig": "Lottery Pool Config", @@ -44,7 +46,18 @@ "ruleEnterCoin": "Please enter coin change", "ruleCoinPositive": "Coin change must be greater than 0", "ruleDeductExceed": "Deduct cannot exceed current balance", - "operateSuccess": "Success" + "operateSuccess": "Success", + "addSuccess": "Added successfully", + "editSuccess": "Updated successfully", + "rulePasswordRequired": "Password is required", + "ruleUsernameRequired": "Username is required", + "ruleNicknameRequired": "Nickname is required", + "rulePhoneRequired": "Phone is required", + "ruleStatusRequired": "Status is required", + "ruleCoinRequired": "Coin is required", + "configTypeDefault": "Default", + "configTypeKillScore": "Kill score", + "configTypeUp": "Up score" }, "search": { "username": "Username", diff --git a/saiadmin-artd/src/locales/langs/en/dice/player_ticket_record.json b/saiadmin-artd/src/locales/langs/en/dice/player_ticket_record.json index cd2c422..235cf8a 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/player_ticket_record.json +++ b/saiadmin-artd/src/locales/langs/en/dice/player_ticket_record.json @@ -14,7 +14,12 @@ "placeholderTotalDrawCount": "Auto sum", "placeholderRemark": "Remark (required)", "addSuccess": "Added successfully", - "editSuccess": "Updated successfully" + "editSuccess": "Updated successfully", + "rulePlayerRequired": "Please select player", + "ruleUseCoinsRequired": "Coins used is required", + "rulePaidDrawRequired": "Paid draw count is required", + "ruleFreeDrawRequired": "Free draw count is required", + "ruleRemarkRequired": "Remark is required" }, "search": { "player": "Player", diff --git a/saiadmin-artd/src/locales/langs/en/dice/player_wallet_record.json b/saiadmin-artd/src/locales/langs/en/dice/player_wallet_record.json index 22202b7..07595de 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/player_wallet_record.json +++ b/saiadmin-artd/src/locales/langs/en/dice/player_wallet_record.json @@ -1,4 +1,7 @@ { + "toolbar": { + "coinChangeSummary": "Coin Change Summary" + }, "form": { "dialogTitleAdd": "Add Wallet Record", "dialogTitleEdit": "Edit Wallet Record", @@ -19,7 +22,10 @@ "placeholderWalletAfter": "Auto calculated", "placeholderRemark": "Optional", "addSuccess": "Added successfully", - "editSuccess": "Updated successfully" + "editSuccess": "Updated successfully", + "ruleUserRequired": "Please select user", + "ruleCoinRequired": "Coin change is required", + "ruleTypeRequired": "Please select type" }, "search": { "type": "Type", diff --git a/saiadmin-artd/src/locales/langs/en/dice/reward.json b/saiadmin-artd/src/locales/langs/en/dice/reward.json index 4853717..4c1fdd9 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/reward.json +++ b/saiadmin-artd/src/locales/langs/en/dice/reward.json @@ -69,6 +69,7 @@ "labelLotteryTypePaid": "Test pool type", "labelLotteryTypeFree": "Test pool type", "labelAnte": "Ante", + "placeholderAnte": "Select ante config", "placeholderPaidPool": "Leave empty for custom tier odds below (default: default)", "placeholderFreePool": "Leave empty for custom tier odds below (default: killScore)", "tierProbHint": "Custom tier odds (T1–T5), each 0–100%, sum of five must not exceed 100%", @@ -81,7 +82,7 @@ "btnNext": "Next", "btnStart": "Start test", "btnCancel": "Cancel", - "warnAnte": "Ante must be greater than 0", + "warnAnte": "Please select ante", "warnPaidSpins": "Paid clockwise + counter-clockwise spin counts must be greater than 0", "warnTestSafetyLine": "Test safety line must be greater than or equal to 0", "warnTotalSpins": "At least one of paid/free direction spin counts must be greater than 0", diff --git a/saiadmin-artd/src/locales/langs/en/system/dept.json b/saiadmin-artd/src/locales/langs/en/system/dept.json index 2abe77e..c0061fc 100644 --- a/saiadmin-artd/src/locales/langs/en/system/dept.json +++ b/saiadmin-artd/src/locales/langs/en/system/dept.json @@ -1,38 +1,35 @@ { "search": { - "deptName": "channel(Department) Name", - "deptCode": "Dept Code", + "deptName": "Channel Name", + "deptCode": "Channel Code", "status": "Status", - "placeholderDeptName": "Please enter dept name", - "placeholderDeptCode": "Please enter dept code", + "placeholderDeptName": "Please enter channel name", + "placeholderDeptCode": "Please enter channel code", "searchSelectPlaceholder": "Please select" }, "table": { - "deptName": "channel(Department) Name", - "deptCode": "Dept Code", - "leader": "Leader", + "deptName": "Channel Name", + "deptCode": "Channel Code", + "leader": "Channel Leader", "sort": "Sort", "status": "Status", "createTime": "Create Time" }, "form": { - "titleAdd": "Add Department", - "titleEdit": "Edit Department", - "labelParentDept": "Parent Department", - "labelDeptName": "Dept Name", - "labelDeptCode": "Dept Code", - "labelLeader": "Leader", + "titleAdd": "Add Channel", + "titleEdit": "Edit Channel", + "labelDeptName": "Channel Name", + "labelDeptCode": "Channel Code", + "labelLeader": "Channel Leader", "labelRemark": "Description", "labelSort": "Sort", "labelStatus": "Enabled", - "placeholderDeptName": "Please enter dept name", - "placeholderDeptCode": "Please enter dept code", + "placeholderDeptName": "Please enter channel name", + "placeholderDeptCode": "Please enter channel code", "placeholderRemark": "Please enter description", "placeholderSort": "Please enter sort", - "noParentDept": "No parent department", - "ruleParentDeptRequired": "Please select parent department", - "ruleDeptNameRequired": "Please enter dept name", - "ruleDeptCodeRequired": "Please enter dept code", + "ruleDeptNameRequired": "Please enter channel name", + "ruleDeptCodeRequired": "Please enter channel code", "addSuccess": "Added successfully", "editSuccess": "Updated successfully" } diff --git a/saiadmin-artd/src/locales/langs/en/system/user.json b/saiadmin-artd/src/locales/langs/en/system/user.json index 9a1a10b..741dfde 100644 --- a/saiadmin-artd/src/locales/langs/en/system/user.json +++ b/saiadmin-artd/src/locales/langs/en/system/user.json @@ -10,7 +10,7 @@ "table": { "username": "Username", "phone": "Phone", - "dept": "Department", + "dept": "Channel", "dashboard": "Dashboard", "loginTime": "Last Login", "agentId": "Agent ID", @@ -28,7 +28,7 @@ "labelPasswordConfirm": "Confirm Password", "labelEmail": "Email", "labelPhone": "Phone", - "labelDept": "Department", + "labelDept": "Channel", "labelRole": "Role", "labelGender": "Gender", "labelStatus": "Status", @@ -42,12 +42,15 @@ "rulePasswordRequired": "Please enter password", "rulePasswordLength": "Length must be between 6 and 20 characters", "rulePasswordConfirmRequired": "Please enter confirm password", - "ruleDeptRequired": "Please select department", + "ruleDeptRequired": "Please select channel", "ruleRoleRequired": "Please select role", "addSuccess": "Added successfully", "editSuccess": "Updated successfully" }, "ui": { + "channelList": "Channel List", + "viewingChannel": "Current channel", + "defaultConfigTemplate": "Default config template", "promptNewPassword": "Please enter a new password", "passwordLengthError": "Password length must be between 6 and 16", "passwordChanged": "Password updated", diff --git a/saiadmin-artd/src/locales/langs/zh.json b/saiadmin-artd/src/locales/langs/zh.json index 911ffe9..276bd53 100644 --- a/saiadmin-artd/src/locales/langs/zh.json +++ b/saiadmin-artd/src/locales/langs/zh.json @@ -37,7 +37,15 @@ "tips": "提示", "cancel": "取消", "confirm": "确定", - "logOutTips": "您是否要退出登录?" + "logOutTips": "您是否要退出登录?", + "channelScope": { + "listTitle": "渠道列表", + "defaultTemplate": "默认配置模板", + "defaultRoleTemplate": "默认角色模板", + "currentConfig": "当前配置", + "currentChannel": "当前渠道", + "currentRole": "当前角色范围" + } }, "uiMsg": { "titlePrompt": "提示", @@ -383,7 +391,7 @@ "role": "角色管理", "userCenter": "个人中心", "menu": "菜单管理", - "dept": "渠道(部门)管理", + "dept": "渠道管理", "config": "系统配置" }, "safeguard": { @@ -445,8 +453,8 @@ "placeholderTaskName": "请输入任务名称", "placeholderTableName": "请输入数据表名称", "placeholderDataSource": "请输入数据源名称", - "placeholderDeptName": "请输入部门名称", - "placeholderDeptCode": "请输入部门编码", + "placeholderDeptName": "请输入渠道名称", + "placeholderDeptCode": "请输入渠道编码", "placeholderRoleName": "请输入角色名称", "placeholderRoleCode": "请输入角色编码", "placeholderMenuName": "请输入菜单名称", @@ -512,13 +520,13 @@ "system": { "username": "用户名", "phone": "手机号", - "dept": "部门", + "dept": "渠道", "dashboard": "首页", "loginTime": "上次登录", "agentId": "代理ID", - "deptName": "部门名称", - "deptCode": "部门编码", - "leader": "部门领导", + "deptName": "渠道名称", + "deptCode": "渠道编码", + "leader": "渠道负责人", "roleName": "角色名称", "roleCode": "角色编码", "level": "角色级别", @@ -538,7 +546,7 @@ "titleEn": "标题(英文)", "value": "值", "valueEn": "值(英文)", - "noParentDept": "无上级部门", + "noParentDept": "无上级渠道", "noParentMenu": "无上级菜单", "input": "文本框", "textarea": "文本域", diff --git a/saiadmin-artd/src/locales/langs/zh/dice/game.json b/saiadmin-artd/src/locales/langs/zh/dice/game.json new file mode 100644 index 0000000..7f266e1 --- /dev/null +++ b/saiadmin-artd/src/locales/langs/zh/dice/game.json @@ -0,0 +1,45 @@ +{ + "form": { + "dialogTitleAdd": "新增游戏", + "dialogTitleEdit": "编辑游戏", + "provider": "供应商", + "placeholderProvider": "请输入供应商名称", + "providerCode": "供应商编码", + "placeholderProviderCode": "请输入供应商编码", + "gameCode": "游戏编号", + "placeholderGameCode": "请输入游戏编号", + "gameKey": "游戏唯一值", + "placeholderGameKey": "请输入游戏唯一值", + "gameName": "中文名称", + "placeholderGameName": "请输入中文名称", + "gameNameEn": "英文名称", + "placeholderGameNameEn": "请输入英文名称", + "gameType": "游戏类型", + "placeholderGameType": "请输入游戏类型", + "sort": "排序", + "logo": "Logo地址", + "tabPicker": "图片选择", + "tabUpload": "图片上传", + "gameUrl": "游戏地址", + "placeholderGameUrl": "请输入游戏地址", + "hallUrl": "大厅地址", + "placeholderHallUrl": "请输入大厅地址", + "status": "状态", + "statusEnabled": "启用", + "statusDisabled": "禁用", + "remark": "备注", + "placeholderRemark": "请输入备注", + "addSuccess": "新增成功", + "editSuccess": "更新成功", + "ruleProviderRequired": "请输入供应商", + "ruleProviderCodeRequired": "请输入供应商编码", + "ruleGameCodeRequired": "请输入游戏编号", + "ruleGameKeyRequired": "请输入游戏唯一值", + "ruleGameNameRequired": "请输入中文名称", + "ruleGameTypeRequired": "请输入游戏类型" + }, + "table": { + "statusEnabled": "启用", + "statusDisabled": "禁用" + } +} diff --git a/saiadmin-artd/src/locales/langs/zh/dice/lottery_pool_config.json b/saiadmin-artd/src/locales/langs/zh/dice/lottery_pool_config.json index 7442ab1..bb9793e 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/lottery_pool_config.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/lottery_pool_config.json @@ -26,6 +26,7 @@ "profitCalcHint": "计算方式:付费每局按“赢取平台币 win_coin(含 BIGWIN)减去付费金额 压注金额paid_amount(= 压注倍数ante×1)”累加;免费每局按“玩家赢得平台币win_coin”累加。弹窗打开期间每 2 秒自动刷新", "tierRuleTitle": "抽奖档位规则", "tierRuleContent": "当玩家在当前彩金池的累计盈利 低于安全线 时,按 玩家 的 T*_weight 权重抽取档位;当累计盈利 高于或等于安全线 时,按 当前彩金池 的 T*_weight 权重抽取档位(杀分)。", + "enableKillScore": "开启杀分", "killScoreWeights": "杀分权重", "killWeightNote": "(杀分权重来自奖池配置,请在列表中编辑对应记录)", "btnResetProfit": "重置玩家累计盈利", diff --git a/saiadmin-artd/src/locales/langs/zh/dice/play_record.json b/saiadmin-artd/src/locales/langs/zh/dice/play_record.json index 8a44bf5..d947f68 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/play_record.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/play_record.json @@ -34,7 +34,15 @@ "placeholderRewardTier": "请选择中奖档位", "addSuccess": "新增成功", "editSuccess": "修改成功", - "validateFailed": "表单验证失败,请检查必填项与格式" + "validateFailed": "表单验证失败,请检查必填项与格式", + "rulePlayerRequired": "请选择玩家", + "ruleLotteryConfigRequired": "请选择彩金池配置", + "ruleLotteryTypeRequired": "请选择抽奖类型", + "ruleIsWinRequired": "请选择是否中大奖", + "ruleWinCoinRequired": "赢取平台币必填", + "ruleRollArrayLength": "摇取点数必须为 5 个数", + "ruleRollArrayValues": "摇取点数必须填写 5 个数,每个 1~6", + "ruleRewardTierRequired": "请选择中奖档位" }, "toolbar": { "platformTotalProfit": "平台总盈利" diff --git a/saiadmin-artd/src/locales/langs/zh/dice/player.json b/saiadmin-artd/src/locales/langs/zh/dice/player.json index 460de04..cb0b0d1 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/player.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/player.json @@ -14,6 +14,8 @@ "status": "状态", "adminId": "所属管理员", "placeholderAdmin": "选择后台管理员(可选)", + "placeholderAdminTree": "按渠道选择后台管理员", + "unassignedChannel": "未分配渠道", "coin": "平台币", "placeholderCoinAdd": "创建时默认0,不可改", "lotteryPoolConfig": "彩金池配置", @@ -44,7 +46,18 @@ "ruleEnterCoin": "请输入平台币变动", "ruleCoinPositive": "平台币变动必须大于 0", "ruleDeductExceed": "扣点不能超过当前余额", - "operateSuccess": "操作成功" + "operateSuccess": "操作成功", + "addSuccess": "新增成功", + "editSuccess": "修改成功", + "rulePasswordRequired": "密码必需填写", + "ruleUsernameRequired": "用户名必需填写", + "ruleNicknameRequired": "昵称必需填写", + "rulePhoneRequired": "手机号必需填写", + "ruleStatusRequired": "状态必需填写", + "ruleCoinRequired": "平台币必需填写", + "configTypeDefault": "默认", + "configTypeKillScore": "杀分", + "configTypeUp": "上分" }, "search": { "username": "用户名", diff --git a/saiadmin-artd/src/locales/langs/zh/dice/player_ticket_record.json b/saiadmin-artd/src/locales/langs/zh/dice/player_ticket_record.json index 4b98912..0a84b7d 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/player_ticket_record.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/player_ticket_record.json @@ -14,7 +14,12 @@ "placeholderTotalDrawCount": "自动求和", "placeholderRemark": "请输入备注(必填)", "addSuccess": "新增成功", - "editSuccess": "修改成功" + "editSuccess": "修改成功", + "rulePlayerRequired": "请选择玩家", + "ruleUseCoinsRequired": "消耗硬币必需填写", + "rulePaidDrawRequired": "购买抽奖次数必需填写", + "ruleFreeDrawRequired": "赠送抽奖次数必需填写", + "ruleRemarkRequired": "备注必需填写" }, "search": { "player": "玩家", diff --git a/saiadmin-artd/src/locales/langs/zh/dice/player_wallet_record.json b/saiadmin-artd/src/locales/langs/zh/dice/player_wallet_record.json index f875a9b..d4a1d86 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/player_wallet_record.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/player_wallet_record.json @@ -1,4 +1,7 @@ { + "toolbar": { + "coinChangeSummary": "平台币变化统计" + }, "form": { "dialogTitleAdd": "新增玩家钱包流水", "dialogTitleEdit": "编辑玩家钱包流水", @@ -19,7 +22,10 @@ "placeholderWalletAfter": "根据平台币变化自动计算", "placeholderRemark": "选填", "addSuccess": "新增成功", - "editSuccess": "修改成功" + "editSuccess": "修改成功", + "ruleUserRequired": "请选择用户", + "ruleCoinRequired": "平台币变化必填", + "ruleTypeRequired": "请选择类型" }, "search": { "type": "类型", diff --git a/saiadmin-artd/src/locales/langs/zh/dice/reward.json b/saiadmin-artd/src/locales/langs/zh/dice/reward.json index 0b9cbc3..01f1251 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/reward.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/reward.json @@ -68,7 +68,8 @@ "stepFree": "免费抽奖券", "labelLotteryTypePaid": "测试数据档位类型", "labelLotteryTypeFree": "测试数据档位类型", - "labelAnte": "底注 ante", + "labelAnte": "底注", + "placeholderAnte": "请选择底注配置", "placeholderPaidPool": "不选则下方自定义档位概率(默认 default)", "placeholderFreePool": "不选则下方自定义档位概率(默认 killScore)", "tierProbHint": "自定义档位概率(T1~T5),每档 0-100%,五档之和不能超过 100%", @@ -81,7 +82,7 @@ "btnNext": "下一步", "btnStart": "开始测试", "btnCancel": "取消", - "warnAnte": "底注 ante 必须大于 0", + "warnAnte": "请选择底注", "warnPaidSpins": "付费抽奖顺时针与逆时针次数之和须大于 0", "warnTestSafetyLine": "测试安全线必须大于或等于 0", "warnTotalSpins": "付费或免费至少一种方向次数之和大于 0", diff --git a/saiadmin-artd/src/locales/langs/zh/system/dept.json b/saiadmin-artd/src/locales/langs/zh/system/dept.json index 1018a2d..02e0000 100644 --- a/saiadmin-artd/src/locales/langs/zh/system/dept.json +++ b/saiadmin-artd/src/locales/langs/zh/system/dept.json @@ -1,38 +1,35 @@ { "search": { - "deptName": "渠道(部门)名称", - "deptCode": "部门编码", + "deptName": "渠道名称", + "deptCode": "渠道编码", "status": "状态", - "placeholderDeptName": "请输入部门名称", - "placeholderDeptCode": "请输入部门编码", + "placeholderDeptName": "请输入渠道名称", + "placeholderDeptCode": "请输入渠道编码", "searchSelectPlaceholder": "请选择" }, "table": { - "deptName": "渠道(部门)名称", - "deptCode": "部门编码", - "leader": "部门领导", + "deptName": "渠道名称", + "deptCode": "渠道编码", + "leader": "渠道负责人", "sort": "排序", "status": "状态", "createTime": "创建时间" }, "form": { - "titleAdd": "新增部门", - "titleEdit": "编辑部门", - "labelParentDept": "上级部门", - "labelDeptName": "部门名称", - "labelDeptCode": "部门编码", - "labelLeader": "部门领导", + "titleAdd": "新增渠道", + "titleEdit": "编辑渠道", + "labelDeptName": "渠道名称", + "labelDeptCode": "渠道编码", + "labelLeader": "渠道负责人", "labelRemark": "描述", "labelSort": "排序", "labelStatus": "启用", - "placeholderDeptName": "请输入部门名称", - "placeholderDeptCode": "请输入部门编码", - "placeholderRemark": "请输入部门描述", + "placeholderDeptName": "请输入渠道名称", + "placeholderDeptCode": "请输入渠道编码", + "placeholderRemark": "请输入渠道描述", "placeholderSort": "请输入排序", - "noParentDept": "无上级部门", - "ruleParentDeptRequired": "请选择上级部门", - "ruleDeptNameRequired": "请输入部门名称", - "ruleDeptCodeRequired": "请输入部门编码", + "ruleDeptNameRequired": "请输入渠道名称", + "ruleDeptCodeRequired": "请输入渠道编码", "addSuccess": "新增成功", "editSuccess": "修改成功" } diff --git a/saiadmin-artd/src/locales/langs/zh/system/user.json b/saiadmin-artd/src/locales/langs/zh/system/user.json index b11a09b..0c45970 100644 --- a/saiadmin-artd/src/locales/langs/zh/system/user.json +++ b/saiadmin-artd/src/locales/langs/zh/system/user.json @@ -10,7 +10,7 @@ "table": { "username": "用户名", "phone": "手机号", - "dept": "部门", + "dept": "渠道", "dashboard": "首页", "loginTime": "上次登录", "agentId": "代理ID", @@ -28,7 +28,7 @@ "labelPasswordConfirm": "确认密码", "labelEmail": "邮箱", "labelPhone": "手机号", - "labelDept": "部门", + "labelDept": "渠道", "labelRole": "角色", "labelGender": "性别", "labelStatus": "状态", @@ -42,12 +42,15 @@ "rulePasswordRequired": "请输入密码", "rulePasswordLength": "长度在 6 到 20 个字符", "rulePasswordConfirmRequired": "请输入确认密码", - "ruleDeptRequired": "请选择部门", + "ruleDeptRequired": "请选择渠道", "ruleRoleRequired": "请选择角色", "addSuccess": "新增成功", "editSuccess": "修改成功" }, "ui": { + "channelList": "渠道列表", + "viewingChannel": "当前配置渠道", + "defaultConfigTemplate": "默认配置模板", "promptNewPassword": "请输入新密码", "passwordLengthError": "密码长度在6到16之间", "passwordChanged": "修改密码成功", diff --git a/saiadmin-artd/src/utils/channelLayout.ts b/saiadmin-artd/src/utils/channelLayout.ts new file mode 100644 index 0000000..bbfe953 --- /dev/null +++ b/saiadmin-artd/src/utils/channelLayout.ts @@ -0,0 +1,48 @@ +import type { RouteLocationNormalized } from 'vue-router' +import { useUserStore } from '@/store/modules/user' + +/** 页面自带左侧渠道栏,不再包一层全局渠道壳 */ +const BUILTIN_CHANNEL_LAYOUT_PATHS = [ + '/system/user', + '/system/dept' +] + +export function isSuperAdminUser(): boolean { + const userStore = useUserStore() + return Number(userStore.info?.id ?? 0) === 1 +} + +/** 游戏配置类页面:显示「默认配置模板」 */ +export function isConfigChannelRoute(route: Pick): boolean { + if (route.meta?.channelScope === 'config') { + return true + } + return /\/(config|ante_config|lottery_pool_config|reward_config|game)(\/|$)/.test(route.path) +} + +/** 角色管理:左侧渠道树含默认模板(dept_id=0)与各渠道角色 */ +export function isRoleChannelRoute(route: Pick): boolean { + if (route.meta?.channelScope === 'role') { + return true + } + return route.path.startsWith('/system/role') +} + +export function shouldWrapSuperAdminChannelLayout(route: RouteLocationNormalized): boolean { + if (!isSuperAdminUser()) { + return false + } + if (route.meta?.isFullPage) { + return false + } + if (route.meta?.noChannelLayout === true) { + return false + } + const path = route.path + for (let i = 0; i < BUILTIN_CHANNEL_LAYOUT_PATHS.length; i++) { + if (path.startsWith(BUILTIN_CHANNEL_LAYOUT_PATHS[i])) { + return false + } + } + return true +} diff --git a/saiadmin-artd/src/views/dashboard/console/modules/active-user.vue b/saiadmin-artd/src/views/dashboard/console/modules/active-user.vue index 34c61a4..199fba2 100644 --- a/saiadmin-artd/src/views/dashboard/console/modules/active-user.vue +++ b/saiadmin-artd/src/views/dashboard/console/modules/active-user.vue @@ -18,6 +18,7 @@ diff --git a/saiadmin-artd/src/views/dashboard/console/modules/card-list.vue b/saiadmin-artd/src/views/dashboard/console/modules/card-list.vue index 1853566..d2c0721 100644 --- a/saiadmin-artd/src/views/dashboard/console/modules/card-list.vue +++ b/saiadmin-artd/src/views/dashboard/console/modules/card-list.vue @@ -99,6 +99,7 @@ diff --git a/saiadmin-artd/src/views/dashboard/console/modules/new-player-list.vue b/saiadmin-artd/src/views/dashboard/console/modules/new-player-list.vue index e5ea66d..10299be 100644 --- a/saiadmin-artd/src/views/dashboard/console/modules/new-player-list.vue +++ b/saiadmin-artd/src/views/dashboard/console/modules/new-player-list.vue @@ -41,6 +41,7 @@ diff --git a/saiadmin-artd/src/views/dashboard/console/modules/play-record-list.vue b/saiadmin-artd/src/views/dashboard/console/modules/play-record-list.vue index a665414..81c0644 100644 --- a/saiadmin-artd/src/views/dashboard/console/modules/play-record-list.vue +++ b/saiadmin-artd/src/views/dashboard/console/modules/play-record-list.vue @@ -51,6 +51,7 @@ diff --git a/saiadmin-artd/src/views/dashboard/console/modules/sales-overview.vue b/saiadmin-artd/src/views/dashboard/console/modules/sales-overview.vue index 30dd1ed..b7a852d 100644 --- a/saiadmin-artd/src/views/dashboard/console/modules/sales-overview.vue +++ b/saiadmin-artd/src/views/dashboard/console/modules/sales-overview.vue @@ -17,6 +17,7 @@ diff --git a/saiadmin-artd/src/views/dashboard/console/modules/wallet-record-list.vue b/saiadmin-artd/src/views/dashboard/console/modules/wallet-record-list.vue index cf2e92c..1774077 100644 --- a/saiadmin-artd/src/views/dashboard/console/modules/wallet-record-list.vue +++ b/saiadmin-artd/src/views/dashboard/console/modules/wallet-record-list.vue @@ -30,6 +30,7 @@ diff --git a/saiadmin-artd/src/views/plugin/dice/ante_config/index/index.vue b/saiadmin-artd/src/views/plugin/dice/ante_config/index/index.vue index e23a089..847a189 100644 --- a/saiadmin-artd/src/views/plugin/dice/ante_config/index/index.vue +++ b/saiadmin-artd/src/views/plugin/dice/ante_config/index/index.vue @@ -109,6 +109,7 @@ } = useTable({ core: { apiFn: api.list, + apiParams: { limit: 100 }, columnsFactory: () => [ { type: 'selection' }, { prop: 'id', label: 'page.table.id', width: 80, align: 'center' }, diff --git a/saiadmin-artd/src/views/plugin/dice/ante_config/index/modules/edit-dialog.vue b/saiadmin-artd/src/views/plugin/dice/ante_config/index/modules/edit-dialog.vue index 1c1b738..6edde9a 100644 --- a/saiadmin-artd/src/views/plugin/dice/ante_config/index/modules/edit-dialog.vue +++ b/saiadmin-artd/src/views/plugin/dice/ante_config/index/modules/edit-dialog.vue @@ -36,6 +36,7 @@ import { ElMessage } from 'element-plus' import type { FormInstance, FormRules } from 'element-plus' import { useI18n } from 'vue-i18n' + import { withChannelDeptParams } from '@/composables/useChannelDeptScope' const { t } = useI18n() @@ -111,10 +112,10 @@ try { await formRef.value.validate() if (props.dialogType === 'add') { - await api.save(formData) + await api.save(withChannelDeptParams(formData)) ElMessage.success(t('page.form.addSuccess')) } else { - await api.update(formData) + await api.update(withChannelDeptParams(formData)) ElMessage.success(t('page.form.editSuccess')) } emit('success') diff --git a/saiadmin-artd/src/views/plugin/dice/api/ante_config/index.ts b/saiadmin-artd/src/views/plugin/dice/api/ante_config/index.ts index ab6fd1b..f2ccb18 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/ante_config/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/ante_config/index.ts @@ -36,5 +36,16 @@ export default { url: '/core/dice/ante_config/DiceAnteConfig/destroy', data: params }) + }, + + /** 底注下拉(按渠道) */ + async getOptions(params?: Record) { + const res = await request.get< + Array<{ id: number; name: string; title: string; mult: number; is_default: number }> + >({ + url: '/core/dice/ante_config/DiceAnteConfig/getOptions', + params + }) + return Array.isArray(res) ? res : [] } } diff --git a/saiadmin-artd/src/views/plugin/dice/api/lottery_pool_config/index.ts b/saiadmin-artd/src/views/plugin/dice/api/lottery_pool_config/index.ts index fb2b905..c81f9ab 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/lottery_pool_config/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/lottery_pool_config/index.ts @@ -20,7 +20,7 @@ export default { * 获取 DiceLotteryPoolConfig 列表数据,含 id、name、t1_weight~t5_weight,用于一键测试权重档位类型下拉 * name 映射:default=原 type=0,killScore=原 type=1,up=原 type=2 */ - async getOptions(): Promise< + async getOptions(params?: Record): Promise< Array<{ id: number name: string @@ -32,7 +32,8 @@ export default { }> > { const res = await request.get({ - url: '/core/dice/lottery_pool_config/DiceLotteryPoolConfig/getOptions' + url: '/core/dice/lottery_pool_config/DiceLotteryPoolConfig/getOptions', + params }) const rows = Array.isArray(res) ? res : (Array.isArray((res as any)?.data) ? (res as any).data : []) if (!Array.isArray(rows)) return [] @@ -97,7 +98,7 @@ export default { /** * 获取当前彩金池(Redis 实例化,无则按 type=0 创建),含玩家累计盈利 profit_amount 实时值 */ - getCurrentPool() { + getCurrentPool(params?: { dept_id?: number }) { return request.get<{ id: number name: string @@ -110,14 +111,15 @@ export default { t5_weight: number profit_amount: number }>({ - url: '/core/dice/lottery_pool_config/DiceLotteryPoolConfig/getCurrentPool' + url: '/core/dice/lottery_pool_config/DiceLotteryPoolConfig/getCurrentPool', + params }) }, /** * 更新当前彩金池:仅 safety_line、t1_weight~t5_weight,不可改 profit_amount */ - updateCurrentPool(params: { safety_line?: number; kill_enabled?: number }) { + updateCurrentPool(params: { safety_line?: number; kill_enabled?: number; dept_id?: number }) { return request.post({ url: '/core/dice/lottery_pool_config/DiceLotteryPoolConfig/updateCurrentPool', data: params @@ -127,9 +129,10 @@ export default { /** * 重置当前彩金池的玩家累计盈利(profit_amount 置为 0) */ - resetProfitAmount() { + resetProfitAmount(params?: { dept_id?: number }) { return request.post({ - url: '/core/dice/lottery_pool_config/DiceLotteryPoolConfig/resetProfitAmount' + url: '/core/dice/lottery_pool_config/DiceLotteryPoolConfig/resetProfitAmount', + data: params || {} }) } } diff --git a/saiadmin-artd/src/views/plugin/dice/api/play_record/index.ts b/saiadmin-artd/src/views/plugin/dice/api/play_record/index.ts index e171f12..aa133c0 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/play_record/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/play_record/index.ts @@ -64,16 +64,18 @@ export default { }, /** 获取玩家选项(id、username) */ - getPlayerOptions() { + getPlayerOptions(params?: Record) { return request.get<{ id: number; username: string }[]>({ - url: '/core/dice/play_record/DicePlayRecord/getPlayerOptions' + url: '/core/dice/play_record/DicePlayRecord/getPlayerOptions', + params }) }, /** 获取彩金池配置选项(id、name) */ - getLotteryConfigOptions() { + getLotteryConfigOptions(params?: Record) { return request.get<{ id: number; name: string }[]>({ - url: '/core/dice/play_record/DicePlayRecord/getLotteryConfigOptions' + url: '/core/dice/play_record/DicePlayRecord/getLotteryConfigOptions', + params }) } } diff --git a/saiadmin-artd/src/views/plugin/dice/api/player/index.ts b/saiadmin-artd/src/views/plugin/dice/api/player/index.ts index e7118b8..75eef36 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/player/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/player/index.ts @@ -87,9 +87,10 @@ export default { * 获取彩金池配置选项(DiceLotteryPoolConfig.id、name),供 lottery_config_id 下拉使用 * @returns [ { id, name } ] */ - async getLotteryConfigOptions(): Promise> { + async getLotteryConfigOptions(params?: Record): Promise> { const res = await request.get({ - url: '/core/dice/player/DicePlayer/getLotteryConfigOptions' + url: '/core/dice/player/DicePlayer/getLotteryConfigOptions', + params }) const rows = (Array.isArray(res) ? res : (res?.data ?? [])) as Array<{ id: number; name: string }> return rows.map((r) => ({ id: Number(r.id), name: String(r.name ?? r.id ?? '') })) @@ -99,11 +100,12 @@ export default { * 获取后台管理员选项(SystemUser),供 admin_id 下拉使用 * @returns [ { id, username, realname, label } ] */ - async getSystemUserOptions(): Promise< + async getSystemUserOptions(params?: Record): Promise< Array<{ id: number; username: string; realname: string; label: string }> > { const res = await request.get({ - url: '/core/dice/player/DicePlayer/getSystemUserOptions' + url: '/core/dice/player/DicePlayer/getSystemUserOptions', + params }) const rows = (Array.isArray(res) ? res : (res?.data ?? [])) as Array<{ id: number @@ -117,5 +119,29 @@ export default { realname: String(r.realname ?? ''), label: String(r.label ?? r.username ?? r.id ?? '') })) + }, + + /** + * 超管:按渠道树状展示全部管理员;非超管:扁平列表 + */ + async getSystemUserTreeOptions(params?: Record): Promise< + Array<{ + id: number | string + label: string + disabled?: boolean + children?: Array<{ id: number; username: string; realname: string; label: string }> + }> + > { + const res = await request.get({ + url: '/core/dice/player/DicePlayer/getSystemUserTreeOptions', + params + }) + const rows = (Array.isArray(res) ? res : (res?.data ?? [])) as Array<{ + id: number | string + label: string + disabled?: boolean + children?: Array<{ id: number; username: string; realname: string; label: string }> + }> + return rows } } diff --git a/saiadmin-artd/src/views/plugin/dice/api/player_ticket_record/index.ts b/saiadmin-artd/src/views/plugin/dice/api/player_ticket_record/index.ts index c9d4443..00dca6a 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/player_ticket_record/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/player_ticket_record/index.ts @@ -66,9 +66,10 @@ export default { /** * 获取玩家选项(id、username)用于下拉 */ - getPlayerOptions() { + getPlayerOptions(params?: Record) { return request.get({ - url: '/core/dice/player_ticket_record/DicePlayerTicketRecord/getPlayerOptions' + url: '/core/dice/player_ticket_record/DicePlayerTicketRecord/getPlayerOptions', + params }) } } diff --git a/saiadmin-artd/src/views/plugin/dice/api/player_wallet_record/index.ts b/saiadmin-artd/src/views/plugin/dice/api/player_wallet_record/index.ts index c1beb16..52a8ba7 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/player_wallet_record/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/player_wallet_record/index.ts @@ -10,7 +10,7 @@ export default { * @returns 数据列表 */ list(params: Record) { - return request.get({ + return request.get({ url: '/core/dice/player_wallet_record/DicePlayerWalletRecord/index', params }) @@ -66,9 +66,10 @@ export default { /** * 获取玩家选项(id、username)用于下拉 */ - getPlayerOptions() { + getPlayerOptions(params?: Record) { return request.get<{ id: number; username: string }[]>({ - url: '/core/dice/player_wallet_record/DicePlayerWalletRecord/getPlayerOptions' + url: '/core/dice/player_wallet_record/DicePlayerWalletRecord/getPlayerOptions', + params }) }, diff --git a/saiadmin-artd/src/views/plugin/dice/api/reward/index.ts b/saiadmin-artd/src/views/plugin/dice/api/reward/index.ts index 59490d0..3f47bbb 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/reward/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/reward/index.ts @@ -19,19 +19,20 @@ export default { * 权重编辑弹窗:按档位分组获取当前方向的配置+权重(单方向) * @param direction 0=顺时针 1=逆时针 */ - weightRatioList(direction: 0 | 1) { + weightRatioList(direction: 0 | 1, params?: Record) { return request.get({ url: '/core/dice/reward/DiceReward/weightRatioList', - params: { direction } + params: { direction, ...(params || {}) } }) }, /** * 权重编辑弹窗:按档位分组获取配置+顺时针/逆时针权重(dice_reward 双方向) */ - weightRatioListWithDirection() { + weightRatioListWithDirection(params?: Record) { return request.get({ - url: '/core/dice/reward/DiceReward/weightRatioListWithDirection' + url: '/core/dice/reward/DiceReward/weightRatioListWithDirection', + params }) }, @@ -39,10 +40,13 @@ export default { * 权重编辑弹窗:按 DiceReward 主键 id 批量更新 weight * @param items [{ id: DiceReward.id, weight: 1-10000 }, ...] */ - batchUpdateWeights(items: Array<{ id: number; weight: number }>) { + batchUpdateWeights( + items: Array<{ id: number; weight: number }>, + extra?: Record + ) { return request.post({ url: '/core/dice/reward/DiceReward/batchUpdateWeights', - data: { items } + data: { items, ...(extra || {}) } }) }, @@ -62,6 +66,7 @@ export default { */ startWeightTest(params: { ante?: number + ante_config_id?: number lottery_config_id?: number paid_lottery_config_id?: number free_lottery_config_id?: number diff --git a/saiadmin-artd/src/views/plugin/dice/api/reward_config/index.ts b/saiadmin-artd/src/views/plugin/dice/api/reward_config/index.ts index 2df7fda..4788744 100644 --- a/saiadmin-artd/src/views/plugin/dice/api/reward_config/index.ts +++ b/saiadmin-artd/src/views/plugin/dice/api/reward_config/index.ts @@ -66,19 +66,23 @@ export default { /** * 批量更新奖励索引配置(第一页:id、grid_number、ui_text、real_ev、tier、remark) */ - batchUpdate(items: Array<{ id: number; grid_number?: number; ui_text?: string; real_ev?: number; tier?: string; remark?: string }>) { + batchUpdate( + items: Array<{ id: number; grid_number?: number; ui_text?: string; real_ev?: number; tier?: string; remark?: string }>, + extra?: Record + ) { return request.post({ url: '/core/dice/reward_config/DiceRewardConfig/batchUpdate', - data: { items } + data: { items, ...(extra || {}) } }) }, /** * T1-T5、BIGWIN 权重配比:按档位分组获取配置列表 */ - weightRatioList() { + weightRatioList(params?: Record) { return request.get({ - url: '/core/dice/reward_config/DiceRewardConfig/weightRatioList' + url: '/core/dice/reward_config/DiceRewardConfig/weightRatioList', + params }) }, @@ -86,34 +90,41 @@ export default { * T1-T5、BIGWIN 权重配比:批量更新顺时针/逆时针权重(写入 dice_reward) */ /** 按 DiceReward 主键 id 批量更新 weight;items: [{ id, weight }, ...] */ - batchUpdateWeights(items: Array<{ id: number; weight: number }>) { + batchUpdateWeights( + items: Array<{ id: number; weight: number }>, + extra?: Record + ) { return request.post({ url: '/core/dice/reward_config/DiceRewardConfig/batchUpdateWeights', - data: { items } + data: { items, ...(extra || {}) } }) }, /** * 大奖权重:按 grid_number 批量保存 BIGWIN 权重(无需 reward id,不存在则自动创建) */ - saveBigwinWeightsByGrid(items: Array<{ grid_number: number; weight: number }>) { + saveBigwinWeightsByGrid( + items: Array<{ grid_number: number; weight: number }>, + extra?: Record + ) { return request.post({ url: '/core/dice/reward_config/DiceRewardConfig/saveBigwinWeightsByGrid', - data: { items } + data: { items, ...(extra || {}) } }) }, /** * 创建奖励对照:按当前奖励配置为顺时针(0)、逆时针(1)生成所有色子可能对应的 dice_reward 记录,权重默认 1,可在奖励对照页权重编辑中调整 */ - createRewardReference() { + createRewardReference(params?: Record) { return request.post<{ created_clockwise: number created_counterclockwise: number updated_clockwise: number updated_counterclockwise: number }>({ - url: '/core/dice/reward_config/DiceRewardConfig/createRewardReference' + url: '/core/dice/reward_config/DiceRewardConfig/createRewardReference', + data: params || {} }) } } diff --git a/saiadmin-artd/src/views/plugin/dice/config/index/index.vue b/saiadmin-artd/src/views/plugin/dice/config/index/index.vue index b83226c..9dbffd2 100644 --- a/saiadmin-artd/src/views/plugin/dice/config/index/index.vue +++ b/saiadmin-artd/src/views/plugin/dice/config/index/index.vue @@ -107,6 +107,7 @@ } = useTable({ core: { apiFn: api.list, + apiParams: { limit: 100 }, columnsFactory: () => [ // { type: 'selection' }, { prop: 'group', label: 'page.table.group', minWidth: 140, align: 'center' }, diff --git a/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue b/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue index f2f928c..68fa0ee 100644 --- a/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue +++ b/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue @@ -47,6 +47,7 @@ import { ElMessage } from 'element-plus' import type { FormInstance, FormRules } from 'element-plus' import { useI18n } from 'vue-i18n' + import { withChannelDeptParams } from '@/composables/useChannelDeptScope' const { t } = useI18n() @@ -162,10 +163,10 @@ try { await formRef.value.validate() if (props.dialogType === 'add') { - await api.save(formData) + await api.save(withChannelDeptParams(formData)) ElMessage.success(t('page.form.saveSuccess')) } else { - await api.update(formData) + await api.update(withChannelDeptParams(formData)) ElMessage.success(t('page.form.updateSuccess')) } emit('success') diff --git a/saiadmin-artd/src/views/plugin/dice/game/index/index.vue b/saiadmin-artd/src/views/plugin/dice/game/index/index.vue index 82431be..f37d13e 100644 --- a/saiadmin-artd/src/views/plugin/dice/game/index/index.vue +++ b/saiadmin-artd/src/views/plugin/dice/game/index/index.vue @@ -40,7 +40,9 @@ @pagination:current-change="handleCurrentChange" >