fix: hide likei displays in admin
This commit is contained in:
parent
44531d62bb
commit
32c4e70187
@ -5,7 +5,10 @@ import { useAccessStore } from '@vben/stores';
|
|||||||
|
|
||||||
import { Input, Select } from 'antdv-next';
|
import { Input, Select } from 'antdv-next';
|
||||||
|
|
||||||
import { getAllowedSysOrigins } from '#/views/system/shared';
|
import {
|
||||||
|
getAllowedSysOrigins,
|
||||||
|
getDisplayableSysOriginOptions,
|
||||||
|
} from '#/views/system/shared';
|
||||||
import SysOriginSelect from '#/components/sys-origin-select.vue';
|
import SysOriginSelect from '#/components/sys-origin-select.vue';
|
||||||
|
|
||||||
type AccountSelectType = 'LONG' | 'SHORT';
|
type AccountSelectType = 'LONG' | 'SHORT';
|
||||||
@ -44,9 +47,12 @@ const sysOriginType = ref('');
|
|||||||
const sysOriginOptions = computed(() =>
|
const sysOriginOptions = computed(() =>
|
||||||
getAllowedSysOrigins(accessStore.accessCodes || []),
|
getAllowedSysOrigins(accessStore.accessCodes || []),
|
||||||
);
|
);
|
||||||
|
const displaySysOriginOptions = computed(() =>
|
||||||
|
getDisplayableSysOriginOptions(sysOriginOptions.value),
|
||||||
|
);
|
||||||
|
|
||||||
const showSysOriginTypeSelect = computed(
|
const showSysOriginTypeSelect = computed(
|
||||||
() => !props.sysOrigin && sysOriginOptions.value.length > 0,
|
() => !props.sysOrigin && displaySysOriginOptions.value.length > 0,
|
||||||
);
|
);
|
||||||
|
|
||||||
const sysOriginVal = computed(() => props.sysOrigin || sysOriginType.value);
|
const sysOriginVal = computed(() => props.sysOrigin || sysOriginType.value);
|
||||||
@ -192,7 +198,7 @@ watch(
|
|||||||
v-if="showSysOriginTypeSelect && selectType !== 'LONG'"
|
v-if="showSysOriginTypeSelect && selectType !== 'LONG'"
|
||||||
v-model:value="sysOriginType"
|
v-model:value="sysOriginType"
|
||||||
class="account-input__origin"
|
class="account-input__origin"
|
||||||
:options="sysOriginOptions"
|
:options="displaySysOriginOptions"
|
||||||
@change="handleSysOriginTypeChange"
|
@change="handleSysOriginTypeChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
|
|
||||||
import { SYS_ORIGIN_OPTIONS } from '#/views/system/shared';
|
import {
|
||||||
|
SYS_ORIGIN_OPTIONS,
|
||||||
|
getDisplaySysOriginText,
|
||||||
|
getDisplayableSysOriginOptions,
|
||||||
|
isHiddenSysOrigin,
|
||||||
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import SysOriginIcon from './sys-origin-icon.vue';
|
import SysOriginIcon from './sys-origin-icon.vue';
|
||||||
|
|
||||||
@ -16,15 +21,18 @@ const props = withDefaults(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const optionMap = new Map(SYS_ORIGIN_OPTIONS.map((item) => [item.value, item]));
|
const optionMap = new Map(
|
||||||
|
getDisplayableSysOriginOptions(SYS_ORIGIN_OPTIONS).map((item) => [item.value, item]),
|
||||||
|
);
|
||||||
|
|
||||||
|
const hidden = computed(() => isHiddenSysOrigin(props.value));
|
||||||
const option = computed(() => optionMap.get(String(props.value || '')));
|
const option = computed(() => optionMap.get(String(props.value || '')));
|
||||||
const label = computed(() => option.value?.label || String(props.value || '-'));
|
const label = computed(() => option.value?.label || getDisplaySysOriginText(props.value));
|
||||||
const iconCode = computed(() => option.value?.icon || String(props.value || ''));
|
const iconCode = computed(() => option.value?.icon || getDisplaySysOriginText(props.value));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<span class="sys-origin-label">
|
<span v-if="!hidden && label" class="sys-origin-label">
|
||||||
<SysOriginIcon :code="iconCode" :label="label" :size="size" />
|
<SysOriginIcon :code="iconCode" :label="label" :size="size" />
|
||||||
<span class="sys-origin-label__text">{{ label }}</span>
|
<span class="sys-origin-label__text">{{ label }}</span>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@ -7,7 +7,9 @@ import { Select } from 'antdv-next';
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
SYS_ORIGIN_OPTIONS,
|
SYS_ORIGIN_OPTIONS,
|
||||||
getAllowedSysOrigins,
|
getDisplayableSysOriginOptions,
|
||||||
|
getDisplayableSysOrigins,
|
||||||
|
isHiddenSysOrigin,
|
||||||
} from '#/views/system/shared';
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import SysOriginIcon from './sys-origin-icon.vue';
|
import SysOriginIcon from './sys-origin-icon.vue';
|
||||||
@ -40,27 +42,36 @@ const attrs = useAttrs();
|
|||||||
const accessStore = useAccessStore();
|
const accessStore = useAccessStore();
|
||||||
|
|
||||||
const fallbackOptions = computed(() => {
|
const fallbackOptions = computed(() => {
|
||||||
const options = getAllowedSysOrigins(accessStore.accessCodes || []);
|
const options = getDisplayableSysOrigins(accessStore.accessCodes || []);
|
||||||
return (options.length > 0 ? options : SYS_ORIGIN_OPTIONS) as AppOriginOption[];
|
return (options.length > 0 ? options : getDisplayableSysOriginOptions(SYS_ORIGIN_OPTIONS)) as AppOriginOption[];
|
||||||
});
|
});
|
||||||
|
|
||||||
const normalizedOptions = computed(() =>
|
const normalizedOptions = computed(() =>
|
||||||
(props.options?.length ? props.options : fallbackOptions.value).map((item) => {
|
getDisplayableSysOriginOptions(props.options?.length ? props.options : fallbackOptions.value).map(
|
||||||
const value = String(item.value ?? '');
|
(item) => {
|
||||||
const label = String(item.label ?? ('name' in item ? item.name : '') ?? value);
|
const value = String(item.value ?? '');
|
||||||
return {
|
const label = String(item.label ?? ('name' in item ? item.name : '') ?? value);
|
||||||
...item,
|
return {
|
||||||
icon: String(item.icon || value).toLowerCase(),
|
...item,
|
||||||
label: label || value,
|
icon: String(item.icon || value).toLowerCase(),
|
||||||
value,
|
label: label || value,
|
||||||
};
|
value,
|
||||||
}),
|
};
|
||||||
|
},
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
const optionMap = computed(
|
const optionMap = computed(
|
||||||
() => new Map(normalizedOptions.value.map((item) => [String(item.value), item])),
|
() => new Map(normalizedOptions.value.map((item) => [String(item.value), item])),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const displayValue = computed<SelectValue>(() => {
|
||||||
|
if (Array.isArray(props.value)) {
|
||||||
|
return props.value.filter((item) => !isHiddenSysOrigin(item));
|
||||||
|
}
|
||||||
|
return isHiddenSysOrigin(props.value) ? undefined : props.value;
|
||||||
|
});
|
||||||
|
|
||||||
const selectAttrs = computed(() => {
|
const selectAttrs = computed(() => {
|
||||||
const nextAttrs = { ...attrs } as Record<string, any>;
|
const nextAttrs = { ...attrs } as Record<string, any>;
|
||||||
delete nextAttrs.options;
|
delete nextAttrs.options;
|
||||||
@ -75,7 +86,7 @@ const selectAttrs = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function renderContent(option?: Record<string, any> | null) {
|
function renderContent(option?: Record<string, any> | null) {
|
||||||
if (!option) {
|
if (!option || isHiddenSysOrigin(option.value ?? option.label ?? option.name)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
const label = String(option.label || option.name || option.value || '-');
|
const label = String(option.label || option.name || option.value || '-');
|
||||||
@ -109,6 +120,9 @@ function renderOption(option: Record<string, any>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function renderLabel(item: Record<string, any>) {
|
function renderLabel(item: Record<string, any>) {
|
||||||
|
if (isHiddenSysOrigin(item?.value ?? item?.label)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return renderContent(
|
return renderContent(
|
||||||
resolveOption(item) || {
|
resolveOption(item) || {
|
||||||
icon: item?.value,
|
icon: item?.value,
|
||||||
@ -127,7 +141,7 @@ function handleChange(value: SelectValue, option: any) {
|
|||||||
<template>
|
<template>
|
||||||
<Select
|
<Select
|
||||||
v-bind="selectAttrs"
|
v-bind="selectAttrs"
|
||||||
:value="value"
|
:value="displayValue"
|
||||||
:options="normalizedOptions"
|
:options="normalizedOptions"
|
||||||
option-filter-prop="label"
|
option-filter-prop="label"
|
||||||
option-label-prop="label"
|
option-label-prop="label"
|
||||||
|
|||||||
17
apps/src/components/sys-origin-tag.vue
Normal file
17
apps/src/components/sys-origin-tag.vue
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
import { computed } from 'vue';
|
||||||
|
|
||||||
|
import { Tag } from 'antdv-next';
|
||||||
|
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
value?: unknown;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
const text = computed(() => getDisplaySysOriginText(props.value));
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<Tag v-if="text">{{ text }}</Tag>
|
||||||
|
</template>
|
||||||
@ -3,7 +3,10 @@ import { computed, reactive, ref, watch } from 'vue';
|
|||||||
|
|
||||||
import type { LegacyVersionItem } from '#/api/legacy/app-system';
|
import type { LegacyVersionItem } from '#/api/legacy/app-system';
|
||||||
import { addAppVersion, updateAppVersion } from '#/api/legacy/app-system';
|
import { addAppVersion, updateAppVersion } from '#/api/legacy/app-system';
|
||||||
import { PLATFORM_ORIGINS } from '#/views/system/shared';
|
import {
|
||||||
|
PLATFORM_ORIGINS,
|
||||||
|
getDisplaySysOriginText,
|
||||||
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Form,
|
Form,
|
||||||
@ -45,9 +48,16 @@ const form = reactive<Record<string, any>>({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const isAdd = computed(() => !props.updateData);
|
const isAdd = computed(() => !props.updateData);
|
||||||
const title = computed(() =>
|
const title = computed(() => {
|
||||||
isAdd.value ? `添加(${props.sysOrigin || '-'})` : `修改(${props.updateData?.sysOrigin || '-'})`,
|
const sysOrigin = getDisplaySysOriginText(
|
||||||
);
|
isAdd.value ? props.sysOrigin : props.updateData?.sysOrigin,
|
||||||
|
);
|
||||||
|
return sysOrigin
|
||||||
|
? `${isAdd.value ? '添加' : '修改'}(${sysOrigin})`
|
||||||
|
: isAdd.value
|
||||||
|
? '添加'
|
||||||
|
: '修改';
|
||||||
|
});
|
||||||
|
|
||||||
const selectedPlatform = computed(
|
const selectedPlatform = computed(
|
||||||
() => PLATFORM_ORIGINS.find((item) => item.value === form.platform) || null,
|
() => PLATFORM_ORIGINS.find((item) => item.value === form.platform) || null,
|
||||||
|
|||||||
@ -16,7 +16,11 @@ import {
|
|||||||
} from '#/api/legacy/oss';
|
} from '#/api/legacy/oss';
|
||||||
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
||||||
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
||||||
import { formatDate, getAllowedSysOrigins } from '#/views/system/shared';
|
import {
|
||||||
|
formatDate,
|
||||||
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText,
|
||||||
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -279,7 +283,7 @@ loadData(true);
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
{{ record.sysOrigin || '-' }}
|
{{ getDisplaySysOriginText(record.sysOrigin) }}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'cover'">
|
<template v-else-if="column.key === 'cover'">
|
||||||
<img
|
<img
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import {
|
|||||||
getAccessImgUrl,
|
getAccessImgUrl,
|
||||||
simpleUploadFile,
|
simpleUploadFile,
|
||||||
} from '#/api/legacy/oss';
|
} from '#/api/legacy/oss';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
||||||
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
||||||
import {
|
import {
|
||||||
@ -37,7 +38,6 @@ import {
|
|||||||
SelectOption,
|
SelectOption,
|
||||||
Switch,
|
Switch,
|
||||||
Table,
|
Table,
|
||||||
Tag,
|
|
||||||
message,
|
message,
|
||||||
} from 'antdv-next';
|
} from 'antdv-next';
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ loadData(true);
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
<Tag>{{ record.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="record.sysOrigin" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'sourceType'">
|
<template v-else-if="column.key === 'sourceType'">
|
||||||
{{ getSourceTypeName(record.sourceType as number | string) }}
|
{{ getSourceTypeName(record.sourceType as number | string) }}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
import { computed, ref, watch } from 'vue';
|
import { computed, ref, watch } from 'vue';
|
||||||
|
|
||||||
import { getRoomProfileDetailsByRoomId } from '#/api/legacy/app-system';
|
import { getRoomProfileDetailsByRoomId } from '#/api/legacy/app-system';
|
||||||
import { formatDate } from '#/views/system/shared';
|
import { formatDate, getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Card,
|
Card,
|
||||||
@ -129,7 +129,7 @@ watch(
|
|||||||
{{ roomDetails.del ? 'Yes' : 'NO' }}
|
{{ roomDetails.del ? 'Yes' : 'NO' }}
|
||||||
</DescriptionsItem>
|
</DescriptionsItem>
|
||||||
<DescriptionsItem label="平台">
|
<DescriptionsItem label="平台">
|
||||||
{{ userProfile.sysOriginChild || userProfile.originSys || '-' }}
|
{{ getDisplaySysOriginText(userProfile.sysOriginChild || userProfile.originSys) }}
|
||||||
</DescriptionsItem>
|
</DescriptionsItem>
|
||||||
<DescriptionsItem label="公告">
|
<DescriptionsItem label="公告">
|
||||||
{{ roomDetails.roomDesc || '-' }}
|
{{ roomDetails.roomDesc || '-' }}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { computed, reactive, ref, watch } from 'vue';
|
|||||||
import { saveOrUpdateSpecialId } from '#/api/legacy/app-system';
|
import { saveOrUpdateSpecialId } from '#/api/legacy/app-system';
|
||||||
import { getUserBaseInfoBySysOriginAccount } from '#/api/legacy/user';
|
import { getUserBaseInfoBySysOriginAccount } from '#/api/legacy/user';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -173,7 +174,7 @@ async function handleSubmit() {
|
|||||||
>
|
>
|
||||||
<Form :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" layout="horizontal">
|
<Form :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" layout="horizontal">
|
||||||
<FormItem label="系统">
|
<FormItem label="系统">
|
||||||
<div class="readonly-value">{{ sysOrigin }}</div>
|
<div class="readonly-value">{{ getDisplaySysOriginText(sysOrigin) }}</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="用户">
|
<FormItem label="用户">
|
||||||
<AccountInput
|
<AccountInput
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import {
|
|||||||
updateSpecialIdExpiredTime,
|
updateSpecialIdExpiredTime,
|
||||||
} from '#/api/legacy/app-system';
|
} from '#/api/legacy/app-system';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
||||||
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
@ -36,7 +37,6 @@ import {
|
|||||||
Table,
|
Table,
|
||||||
Tabs,
|
Tabs,
|
||||||
TabPane,
|
TabPane,
|
||||||
Tag,
|
|
||||||
message,
|
message,
|
||||||
} from 'antdv-next';
|
} from 'antdv-next';
|
||||||
|
|
||||||
@ -398,7 +398,7 @@ loadLogData(true);
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
<Tag>{{ getSpecialInfo(record).sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="getSpecialInfo(record).sysOrigin" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'user'">
|
<template v-else-if="column.key === 'user'">
|
||||||
<button class="user-cell" type="button" @click="openUserDetails(record)">
|
<button class="user-cell" type="button" @click="openUserDetails(record)">
|
||||||
@ -509,7 +509,7 @@ loadLogData(true);
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
<Tag>{{ record.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="record.sysOrigin" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'user'">
|
<template v-else-if="column.key === 'user'">
|
||||||
<button class="user-cell" type="button" @click="openUserDetails(record as any)">
|
<button class="user-cell" type="button" @click="openUserDetails(record as any)">
|
||||||
|
|||||||
@ -11,6 +11,8 @@ import SysOriginSelect from '#/components/sys-origin-select.vue';
|
|||||||
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
import InlineFilterField from '#/views/_shared/inline-filter-field.vue';
|
||||||
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
import InlineFilterToolbar from '#/views/_shared/inline-filter-toolbar.vue';
|
||||||
import { getAllowedSysOrigins } from '#/views/system/shared';
|
import { getAllowedSysOrigins } from '#/views/system/shared';
|
||||||
|
import { getDisplaySysOriginText, getDisplayableSysOrigins } from '#/views/system/shared';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -79,6 +81,9 @@ const sysOriginOptions = computed(() => {
|
|||||||
const options = getAllowedSysOrigins(accessStore.accessCodes || []);
|
const options = getAllowedSysOrigins(accessStore.accessCodes || []);
|
||||||
return options.length > 0 ? options : SYS_ORIGIN_OPTIONS;
|
return options.length > 0 ? options : SYS_ORIGIN_OPTIONS;
|
||||||
});
|
});
|
||||||
|
const displaySysOriginOptions = computed(() =>
|
||||||
|
getDisplayableSysOrigins(accessStore.accessCodes || []),
|
||||||
|
);
|
||||||
|
|
||||||
const currentPage = computed<
|
const currentPage = computed<
|
||||||
ApprovalGalleryPage | ApprovalHistoryPage | ApprovalTablePage | null
|
ApprovalGalleryPage | ApprovalHistoryPage | ApprovalTablePage | null
|
||||||
@ -435,6 +440,9 @@ async function handleBulkAction(action: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function renderCellText(cell: ApprovalTableCell) {
|
function renderCellText(cell: ApprovalTableCell) {
|
||||||
|
if (cell.type === 'origin') {
|
||||||
|
return getDisplaySysOriginText(cell.text);
|
||||||
|
}
|
||||||
return cell.text || '-';
|
return cell.text || '-';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -502,6 +510,7 @@ function isAccountFilter(filter: ApprovalFilter) {
|
|||||||
<InlineFilterToolbar>
|
<InlineFilterToolbar>
|
||||||
<template v-for="filter in currentPage?.filters || []" :key="`${filter.type}-${filter.field || filter.label}`">
|
<template v-for="filter in currentPage?.filters || []" :key="`${filter.type}-${filter.field || filter.label}`">
|
||||||
<InlineFilterField
|
<InlineFilterField
|
||||||
|
v-if="filter.type !== 'sysOrigin' || displaySysOriginOptions.length > 0"
|
||||||
:control-width="getFilterControlWidth(filter)"
|
:control-width="getFilterControlWidth(filter)"
|
||||||
:label="filter.label"
|
:label="filter.label"
|
||||||
:label-width="getFilterLabelWidth(filter)"
|
:label-width="getFilterLabelWidth(filter)"
|
||||||
@ -730,7 +739,7 @@ function isAccountFilter(filter: ApprovalFilter) {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-else-if="cell.type === 'origin'">
|
<template v-else-if="cell.type === 'origin'">
|
||||||
<Tag>{{ renderCellText(cell) }}</Tag>
|
<SysOriginTag :value="cell.text" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-else-if="cell.type === 'images'">
|
<template v-else-if="cell.type === 'images'">
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import {
|
|||||||
userDynamicTable,
|
userDynamicTable,
|
||||||
} from '#/api/legacy/dynamic';
|
} from '#/api/legacy/dynamic';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins } from '#/views/system/shared';
|
||||||
|
|
||||||
@ -370,7 +371,7 @@ loadData(true);
|
|||||||
<div class="top-form">
|
<div class="top-form">
|
||||||
<div class="top-row">
|
<div class="top-row">
|
||||||
<span>平台</span>
|
<span>平台</span>
|
||||||
<Tag>{{ query.sysOrigin }}</Tag>
|
<SysOriginTag :value="query.sysOrigin" />
|
||||||
</div>
|
</div>
|
||||||
<div class="top-row top-input">
|
<div class="top-row top-input">
|
||||||
<span>权重</span>
|
<span>权重</span>
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import {
|
|||||||
activityPicture,
|
activityPicture,
|
||||||
deleteActivityPicture,
|
deleteActivityPicture,
|
||||||
} from '#/api/legacy/activity';
|
} from '#/api/legacy/activity';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import { getAllowedSysOrigins } from '#/views/system/shared';
|
import { getAllowedSysOrigins } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -17,7 +18,6 @@ import {
|
|||||||
Modal,
|
Modal,
|
||||||
Pagination,
|
Pagination,
|
||||||
Table,
|
Table,
|
||||||
Tag,
|
|
||||||
message,
|
message,
|
||||||
} from 'antdv-next';
|
} from 'antdv-next';
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ async function handleCopy(id?: number | string) {
|
|||||||
<Page title="活动配置">
|
<Page title="活动配置">
|
||||||
<Card>
|
<Card>
|
||||||
<div class="toolbar">
|
<div class="toolbar">
|
||||||
<Tag>{{ query.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="query.sysOrigin" />
|
||||||
<Button :loading="loading" type="primary" @click="handleSearch">
|
<Button :loading="loading" type="primary" @click="handleSearch">
|
||||||
搜索
|
搜索
|
||||||
</Button>
|
</Button>
|
||||||
@ -149,7 +149,7 @@ async function handleCopy(id?: number | string) {
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
<Tag>{{ record.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="record.sysOrigin" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'picture'">
|
<template v-else-if="column.key === 'picture'">
|
||||||
<Image :src="record.picture" class="picture" />
|
<Image :src="record.picture" class="picture" />
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import {
|
|||||||
updateBadge,
|
updateBadge,
|
||||||
} from '#/api/legacy/badge';
|
} from '#/api/legacy/badge';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
import { formatDate } from '#/views/system/shared';
|
import { formatDate, getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -326,7 +326,9 @@ watch(
|
|||||||
class="picture-item"
|
class="picture-item"
|
||||||
>
|
>
|
||||||
<Image :src="item.selectUrl" class="badge-image" />
|
<Image :src="item.selectUrl" class="badge-image" />
|
||||||
<div>{{ item.sysOrigin }}</div>
|
<div v-if="getDisplaySysOriginText(item.sysOrigin)">
|
||||||
|
{{ getDisplaySysOriginText(item.sysOrigin) }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
userBeautifulNumberApplyTable,
|
userBeautifulNumberApplyTable,
|
||||||
} from '#/api/legacy/user';
|
} from '#/api/legacy/user';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins } from '#/views/system/shared';
|
||||||
|
|
||||||
@ -174,7 +175,7 @@ watch(
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
<Tag>{{ record.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="record.sysOrigin" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'userBaseInfo'">
|
<template v-else-if="column.key === 'userBaseInfo'">
|
||||||
<UserProfileLink :profile="record.userBaseInfo" />
|
<UserProfileLink :profile="record.userBaseInfo" />
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import {
|
|||||||
addActivityPicture,
|
addActivityPicture,
|
||||||
updateActivityPicture,
|
updateActivityPicture,
|
||||||
} from '#/api/legacy/activity';
|
} from '#/api/legacy/activity';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import { Button, Image, Input, Modal, message } from 'antdv-next';
|
import { Button, Image, Input, Modal, message } from 'antdv-next';
|
||||||
|
|
||||||
@ -105,7 +106,13 @@ async function submitForm() {
|
|||||||
:confirm-loading="saving"
|
:confirm-loading="saving"
|
||||||
:open="open"
|
:open="open"
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
:title="form.id ? `修改(${sysOrigin})` : `新增(${sysOrigin})`"
|
:title="
|
||||||
|
getDisplaySysOriginText(sysOrigin)
|
||||||
|
? `${form.id ? '修改' : '新增'}(${getDisplaySysOriginText(sysOrigin)})`
|
||||||
|
: form.id
|
||||||
|
? '修改'
|
||||||
|
: '新增'
|
||||||
|
"
|
||||||
width="520px"
|
width="520px"
|
||||||
@cancel="emit('close')"
|
@cancel="emit('close')"
|
||||||
@ok="submitForm"
|
@ok="submitForm"
|
||||||
|
|||||||
@ -10,7 +10,10 @@ import {
|
|||||||
getAccessImgUrl,
|
getAccessImgUrl,
|
||||||
simpleUploadFile,
|
simpleUploadFile,
|
||||||
} from '#/api/legacy/oss';
|
} from '#/api/legacy/oss';
|
||||||
import { getAllowedSysOrigins } from '#/views/system/shared';
|
import {
|
||||||
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText,
|
||||||
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -48,6 +51,11 @@ const imageInputRef = ref<HTMLInputElement | null>(null);
|
|||||||
const sourceInputRef = ref<HTMLInputElement | null>(null);
|
const sourceInputRef = ref<HTMLInputElement | null>(null);
|
||||||
const uploadTarget = ref<{ field: UploadField; index: number } | null>(null);
|
const uploadTarget = ref<{ field: UploadField; index: number } | null>(null);
|
||||||
|
|
||||||
|
function getCardTitle(sysOrigin: unknown) {
|
||||||
|
const text = getDisplaySysOriginText(sysOrigin);
|
||||||
|
return text ? `${text} 徽章资源` : '徽章资源';
|
||||||
|
}
|
||||||
|
|
||||||
function buildRows(row?: Record<string, any> | null) {
|
function buildRows(row?: Record<string, any> | null) {
|
||||||
const pictureMap = new Map<string, Record<string, any>>();
|
const pictureMap = new Map<string, Record<string, any>>();
|
||||||
(row?.badgePictures || []).forEach((item: Record<string, any>) => {
|
(row?.badgePictures || []).forEach((item: Record<string, any>) => {
|
||||||
@ -151,7 +159,7 @@ async function handleRemove(row: Record<string, any>, field: UploadField) {
|
|||||||
v-for="item in list"
|
v-for="item in list"
|
||||||
:key="item.sysOrigin"
|
:key="item.sysOrigin"
|
||||||
size="small"
|
size="small"
|
||||||
:title="`${item.sysOrigin} 徽章资源`"
|
:title="getCardTitle(item.sysOrigin)"
|
||||||
>
|
>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
updateBanner,
|
updateBanner,
|
||||||
} from '#/api/legacy/system';
|
} from '#/api/legacy/system';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AutoComplete,
|
AutoComplete,
|
||||||
@ -324,7 +325,13 @@ async function submitForm() {
|
|||||||
:confirm-loading="saving"
|
:confirm-loading="saving"
|
||||||
:open="open"
|
:open="open"
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
:title="`${form.id ? '修改' : '新增'}(${sysOrigin})`"
|
:title="
|
||||||
|
getDisplaySysOriginText(sysOrigin)
|
||||||
|
? `${form.id ? '修改' : '新增'}(${getDisplaySysOriginText(sysOrigin)})`
|
||||||
|
: form.id
|
||||||
|
? '修改'
|
||||||
|
: '新增'
|
||||||
|
"
|
||||||
width="760px"
|
width="760px"
|
||||||
@cancel="emit('close')"
|
@cancel="emit('close')"
|
||||||
@ok="submitForm"
|
@ok="submitForm"
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import {
|
|||||||
simpleUploadFile,
|
simpleUploadFile,
|
||||||
} from '#/api/legacy/oss';
|
} from '#/api/legacy/oss';
|
||||||
import { addMikeType, updateMikeType } from '#/api/legacy/mike';
|
import { addMikeType, updateMikeType } from '#/api/legacy/mike';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -80,9 +81,10 @@ const form = reactive<Record<string, any>>({
|
|||||||
sysOrigin: '',
|
sysOrigin: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
const title = computed(() =>
|
const title = computed(() => {
|
||||||
`${form.id ? '修改' : '新增'}(${props.sysOrigin || form.sysOrigin || '-'})`,
|
const sysOrigin = getDisplaySysOriginText(props.sysOrigin || form.sysOrigin);
|
||||||
);
|
return sysOrigin ? `${form.id ? '修改' : '新增'}(${sysOrigin})` : form.id ? '修改' : '新增';
|
||||||
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.open,
|
() => props.open,
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
import { computed, ref, watch } from 'vue';
|
import { computed, ref, watch } from 'vue';
|
||||||
|
|
||||||
import { getInAppPurchase } from '#/api/legacy/operate';
|
import { getInAppPurchase } from '#/api/legacy/operate';
|
||||||
import { formatDate } from '#/views/system/shared';
|
import { formatDate, getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Descriptions,
|
Descriptions,
|
||||||
@ -99,7 +99,9 @@ watch(
|
|||||||
<DescriptionsItem label="跟踪ID">{{ record?.details?.trackId || '-' }}</DescriptionsItem>
|
<DescriptionsItem label="跟踪ID">{{ record?.details?.trackId || '-' }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="订阅ID">{{ record?.details?.subscribeId || '-' }}</DescriptionsItem>
|
<DescriptionsItem label="订阅ID">{{ record?.details?.subscribeId || '-' }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="订单ID" :span="2">{{ record?.details?.orderId || '-' }}</DescriptionsItem>
|
<DescriptionsItem label="订单ID" :span="2">{{ record?.details?.orderId || '-' }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="系统">{{ record?.details?.sysOrigin || '-' }}</DescriptionsItem>
|
<DescriptionsItem v-if="getDisplaySysOriginText(record?.details?.sysOrigin)" label="系统">
|
||||||
|
{{ getDisplaySysOriginText(record?.details?.sysOrigin) }}
|
||||||
|
</DescriptionsItem>
|
||||||
<DescriptionsItem label="平台">{{ record?.details?.factory?.platform || '-' }}</DescriptionsItem>
|
<DescriptionsItem label="平台">{{ record?.details?.factory?.platform || '-' }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="渠道">{{ record?.details?.factory?.factoryCode || '-' }}</DescriptionsItem>
|
<DescriptionsItem label="渠道">{{ record?.details?.factory?.factoryCode || '-' }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="国家编号">{{ record?.details?.countryCode || '-' }}</DescriptionsItem>
|
<DescriptionsItem label="国家编号">{{ record?.details?.countryCode || '-' }}</DescriptionsItem>
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import {
|
|||||||
getRoomProfileBySysOriginAccount,
|
getRoomProfileBySysOriginAccount,
|
||||||
listRoomProfileByAccount,
|
listRoomProfileByAccount,
|
||||||
} from '#/api/legacy/room';
|
} from '#/api/legacy/room';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -13,7 +15,6 @@ import {
|
|||||||
Input,
|
Input,
|
||||||
Modal,
|
Modal,
|
||||||
Select,
|
Select,
|
||||||
Tag,
|
|
||||||
} from 'antdv-next';
|
} from 'antdv-next';
|
||||||
|
|
||||||
type RoomSelectType = 'LONG_ID' | 'SHORT_ID';
|
type RoomSelectType = 'LONG_ID' | 'SHORT_ID';
|
||||||
@ -52,6 +53,10 @@ const matchedRoom = ref<Record<string, any> | null>(null);
|
|||||||
const roomProfiles = ref<Array<Record<string, any>>>([]);
|
const roomProfiles = ref<Array<Record<string, any>>>([]);
|
||||||
const selectDialogOpen = ref(false);
|
const selectDialogOpen = ref(false);
|
||||||
|
|
||||||
|
function getVisibleSysOrigin(value: unknown) {
|
||||||
|
return getDisplaySysOriginText(value);
|
||||||
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.roomId,
|
() => props.roomId,
|
||||||
(value) => {
|
(value) => {
|
||||||
@ -177,7 +182,9 @@ async function clickSearch() {
|
|||||||
</div>
|
</div>
|
||||||
<div v-else-if="matchedRoom" class="search-tip search-tip--success">
|
<div v-else-if="matchedRoom" class="search-tip search-tip--success">
|
||||||
已匹配: {{ matchedRoom.roomName || matchedRoom.id || '-' }}
|
已匹配: {{ matchedRoom.roomName || matchedRoom.id || '-' }}
|
||||||
<span v-if="matchedRoom.sysOrigin"> / {{ matchedRoom.sysOrigin }}</span>
|
<span v-if="getVisibleSysOrigin(matchedRoom.sysOrigin)">
|
||||||
|
/ {{ getVisibleSysOrigin(matchedRoom.sysOrigin) }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Modal
|
<Modal
|
||||||
@ -199,7 +206,7 @@ async function clickSearch() {
|
|||||||
/>
|
/>
|
||||||
<div class="room-copy">
|
<div class="room-copy">
|
||||||
<div class="room-title-row">
|
<div class="room-title-row">
|
||||||
<Tag v-if="item.sysOrigin">{{ item.sysOrigin }}</Tag>
|
<SysOriginTag :value="item.sysOrigin" />
|
||||||
<span class="room-name">{{ item.roomName || '-' }}</span>
|
<span class="room-name">{{ item.roomName || '-' }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="room-meta">房间ID {{ item.id || '-' }}</div>
|
<div class="room-meta">房间ID {{ item.id || '-' }}</div>
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import { Button, Input, Modal, message } from 'antdv-next';
|
|||||||
|
|
||||||
import { createBankBalance } from '#/api/legacy/operate';
|
import { createBankBalance } from '#/api/legacy/operate';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
open: boolean;
|
open: boolean;
|
||||||
@ -68,7 +69,7 @@ async function submitForm() {
|
|||||||
<div class="form-grid">
|
<div class="form-grid">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<div class="label">系统</div>
|
<div class="label">系统</div>
|
||||||
<div class="value">{{ sysOrigin || '-' }}</div>
|
<div class="value">{{ getDisplaySysOriginText(sysOrigin) }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<div class="label">用户ID</div>
|
<div class="label">用户ID</div>
|
||||||
|
|||||||
@ -9,7 +9,11 @@ import {
|
|||||||
pageDaysUserData,
|
pageDaysUserData,
|
||||||
} from '#/api/legacy/game';
|
} from '#/api/legacy/game';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
import { formatDate, getAllowedSysOrigins } from '#/views/system/shared';
|
import {
|
||||||
|
formatDate,
|
||||||
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText,
|
||||||
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -256,7 +260,7 @@ function handleTableChange(_: any, __: any, sorter: any) {
|
|||||||
<UserProfileLink :user-profile="record.userProfile" />
|
<UserProfileLink :user-profile="record.userProfile" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'sysOrigin'">
|
<template v-else-if="column.key === 'sysOrigin'">
|
||||||
{{ record.userProfile?.originSys || record.sysOrigin || '-' }}
|
{{ getDisplaySysOriginText(record.userProfile?.originSys || record.sysOrigin) }}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'earningsRate'">
|
<template v-else-if="column.key === 'earningsRate'">
|
||||||
{{ record.earningsRate || 0 }} %
|
{{ record.earningsRate || 0 }} %
|
||||||
|
|||||||
@ -15,7 +15,8 @@ import { useAccessStore } from '@vben/stores';
|
|||||||
import { getClsGoldRunningWater } from '#/api/legacy/operate';
|
import { getClsGoldRunningWater } from '#/api/legacy/operate';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AutoComplete,
|
AutoComplete,
|
||||||
@ -287,7 +288,7 @@ void loadData(true);
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
{{ record.runningWater?.sysOrigin || record.sysOrigin || '-' }}
|
{{ getDisplaySysOriginText(record.runningWater?.sysOrigin || record.sysOrigin) }}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'userProfile'">
|
<template v-else-if="column.key === 'userProfile'">
|
||||||
<UserProfileLink
|
<UserProfileLink
|
||||||
|
|||||||
@ -15,7 +15,11 @@ import {
|
|||||||
setLuckyDrawRatio,
|
setLuckyDrawRatio,
|
||||||
setPoolPutRatio,
|
setPoolPutRatio,
|
||||||
} from '#/api/legacy/game';
|
} from '#/api/legacy/game';
|
||||||
import { formatDate, getAllowedSysOrigins } from '#/views/system/shared';
|
import {
|
||||||
|
formatDate,
|
||||||
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText,
|
||||||
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -268,7 +272,9 @@ loadData(true);
|
|||||||
<Card size="small" title="抽奖情况">
|
<Card size="small" title="抽奖情况">
|
||||||
<Descriptions :column="2" bordered size="small">
|
<Descriptions :column="2" bordered size="small">
|
||||||
<DescriptionsItem label="ID">{{ activeRow.id || '-' }}</DescriptionsItem>
|
<DescriptionsItem label="ID">{{ activeRow.id || '-' }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="系统">{{ activeRow.sysOrigin || '-' }}</DescriptionsItem>
|
<DescriptionsItem v-if="getDisplaySysOriginText(activeRow.sysOrigin)" label="系统">
|
||||||
|
{{ getDisplaySysOriginText(activeRow.sysOrigin) }}
|
||||||
|
</DescriptionsItem>
|
||||||
<DescriptionsItem label="门票">{{ activeRow.tickets || 0 }}</DescriptionsItem>
|
<DescriptionsItem label="门票">{{ activeRow.tickets || 0 }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="抽奖数">{{ activeRow.lotterySize || 0 }}</DescriptionsItem>
|
<DescriptionsItem label="抽奖数">{{ activeRow.lotterySize || 0 }}</DescriptionsItem>
|
||||||
<DescriptionsItem label="礼物价值">{{ activeRow.giftTotalAmount || 0 }}</DescriptionsItem>
|
<DescriptionsItem label="礼物价值">{{ activeRow.giftTotalAmount || 0 }}</DescriptionsItem>
|
||||||
|
|||||||
@ -14,7 +14,8 @@ import {
|
|||||||
standardConfigTable,
|
standardConfigTable,
|
||||||
} from '#/api/legacy/game-lucky-gift';
|
} from '#/api/legacy/game-lucky-gift';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -66,6 +67,10 @@ const columns = [
|
|||||||
{ dataIndex: 'createTime', key: 'createTime', title: '创建时间', width: 180 },
|
{ dataIndex: 'createTime', key: 'createTime', title: '创建时间', width: 180 },
|
||||||
{ dataIndex: 'actions', key: 'actions', title: '操作', width: 220 },
|
{ dataIndex: 'actions', key: 'actions', title: '操作', width: 220 },
|
||||||
];
|
];
|
||||||
|
const editTitle = computed(() => {
|
||||||
|
const sysOrigin = getDisplaySysOriginText(form.id ? form.sysOrigin : query.sysOrigin);
|
||||||
|
return sysOrigin ? `${form.id ? '修改' : '添加'}(${sysOrigin})` : form.id ? '修改' : '添加';
|
||||||
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
sysOriginOptions,
|
sysOriginOptions,
|
||||||
@ -220,7 +225,7 @@ function handlePageChange(page: number, pageSize: number) {
|
|||||||
<Modal
|
<Modal
|
||||||
:confirm-loading="saving"
|
:confirm-loading="saving"
|
||||||
:open="editOpen"
|
:open="editOpen"
|
||||||
:title="form.id ? `修改(${form.sysOrigin || '-'})` : `添加(${query.sysOrigin || '-'})`"
|
:title="editTitle"
|
||||||
@cancel="editOpen = false"
|
@cancel="editOpen = false"
|
||||||
@ok="handleSave"
|
@ok="handleSave"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -13,7 +13,8 @@ import {
|
|||||||
flowLudoGame,
|
flowLudoGame,
|
||||||
} from '#/api/legacy/game';
|
} from '#/api/legacy/game';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -259,7 +260,7 @@ function openPlayers(record: Record<string, any>) {
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
{{ record.history?.sysOrigin || '-' }}
|
{{ getDisplaySysOriginText(record.history?.sysOrigin) }}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'roomInfo'">
|
<template v-else-if="column.key === 'roomInfo'">
|
||||||
<div v-if="record.roomProfile" class="room-info">
|
<div v-if="record.roomProfile" class="room-info">
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import {
|
|||||||
PRODUCT_SHOWCASE_OPTIONS,
|
PRODUCT_SHOWCASE_OPTIONS,
|
||||||
formatDate,
|
formatDate,
|
||||||
getAllowedSysOrigins,
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText,
|
||||||
} from '#/views/system/shared';
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -315,7 +316,7 @@ async function handleShelfChange(record: Record<string, any>, checked: boolean)
|
|||||||
<Image :src="record.cover" class="cover" />
|
<Image :src="record.cover" class="cover" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'sysOrigin'">
|
<template v-else-if="column.key === 'sysOrigin'">
|
||||||
{{ record.sysOrigin || '-' }}
|
{{ getDisplaySysOriginText(record.sysOrigin) }}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'type'">
|
<template v-else-if="column.key === 'type'">
|
||||||
{{ NOTICE_TYPE_LABELS[record.type] || record.type || '-' }}
|
{{ NOTICE_TYPE_LABELS[record.type] || record.type || '-' }}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import {
|
|||||||
} from '#/api/legacy/operate';
|
} from '#/api/legacy/operate';
|
||||||
import { regionConfigTable } from '#/api/legacy/system';
|
import { regionConfigTable } from '#/api/legacy/system';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins } from '#/views/system/shared';
|
||||||
|
|
||||||
@ -254,7 +255,7 @@ void loadData(true);
|
|||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'platform'">
|
<template v-else-if="column.key === 'platform'">
|
||||||
<Space size="small">
|
<Space size="small">
|
||||||
<Tag>{{ record.details?.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="record.details?.sysOrigin" />
|
||||||
<Tag>{{ record.details?.factory?.platform || '-' }}</Tag>
|
<Tag>{{ record.details?.factory?.platform || '-' }}</Tag>
|
||||||
<Tag>{{ record.details?.factory?.factoryCode || '-' }}</Tag>
|
<Tag>{{ record.details?.factory?.factoryCode || '-' }}</Tag>
|
||||||
</Space>
|
</Space>
|
||||||
|
|||||||
@ -12,7 +12,8 @@ import { useAccessStore } from '@vben/stores';
|
|||||||
import { getPurchaseTable } from '#/api/legacy/operate';
|
import { getPurchaseTable } from '#/api/legacy/operate';
|
||||||
import AccountInput from '#/components/account-input.vue';
|
import AccountInput from '#/components/account-input.vue';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -191,7 +192,7 @@ void loadData(true);
|
|||||||
</Tag>
|
</Tag>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'sysOrigin'">
|
<template v-else-if="column.key === 'sysOrigin'">
|
||||||
{{ record.orderPurchase?.sysOrigin || '-' }}
|
{{ getDisplaySysOriginText(record.orderPurchase?.sysOrigin) }}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'userBaseInfo'">
|
<template v-else-if="column.key === 'userBaseInfo'">
|
||||||
<Button type="link" @click="openUserDetails(record)">
|
<Button type="link" @click="openUserDetails(record)">
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
deleteStartPagePlan,
|
deleteStartPagePlan,
|
||||||
pageStartPagePlans,
|
pageStartPagePlans,
|
||||||
} from '#/api/legacy/system';
|
} from '#/api/legacy/system';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import { formatDate,
|
import { formatDate,
|
||||||
getAllowedSysOrigins } from '#/views/system/shared';
|
getAllowedSysOrigins } from '#/views/system/shared';
|
||||||
|
|
||||||
@ -23,7 +24,6 @@ import {
|
|||||||
Pagination,
|
Pagination,
|
||||||
Select,
|
Select,
|
||||||
Table,
|
Table,
|
||||||
Tag,
|
|
||||||
message
|
message
|
||||||
} from 'antdv-next';
|
} from 'antdv-next';
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ function handleDelete(record: Record<string, any>) {
|
|||||||
>
|
>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'sysOrigin'">
|
<template v-if="column.key === 'sysOrigin'">
|
||||||
<Tag>{{ record.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="record.sysOrigin" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'type'">
|
<template v-else-if="column.key === 'type'">
|
||||||
{{ getTypeName(record.type) }}
|
{{ getTypeName(record.type) }}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import {
|
|||||||
deleteBanner,
|
deleteBanner,
|
||||||
regionConfigTable,
|
regionConfigTable,
|
||||||
} from '#/api/legacy/system';
|
} from '#/api/legacy/system';
|
||||||
|
import SysOriginTag from '#/components/sys-origin-tag.vue';
|
||||||
import {
|
import {
|
||||||
formatDate,
|
formatDate,
|
||||||
getAllowedSysOrigins,
|
getAllowedSysOrigins,
|
||||||
@ -263,7 +264,7 @@ function getStatusColor(record: Record<string, any>) {
|
|||||||
<Image :preview="false" :src="record.alertCover" class="small-cover" />
|
<Image :preview="false" :src="record.alertCover" class="small-cover" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'sysOrigin'">
|
<template v-else-if="column.key === 'sysOrigin'">
|
||||||
<Tag>{{ record.sysOrigin || '-' }}</Tag>
|
<SysOriginTag :value="record.sysOrigin" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'content'">
|
<template v-else-if="column.key === 'content'">
|
||||||
<Popover placement="topLeft" trigger="hover">
|
<Popover placement="topLeft" trigger="hover">
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import {
|
|||||||
Switch,
|
Switch,
|
||||||
message,
|
message,
|
||||||
} from 'antdv-next';
|
} from 'antdv-next';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
import RewardIcon from './reward-icon.vue';
|
import RewardIcon from './reward-icon.vue';
|
||||||
import {
|
import {
|
||||||
@ -101,9 +102,10 @@ const sourceOptionsMap = reactive<
|
|||||||
|
|
||||||
const selectedDraftResource = ref<DraftSourceOption | null>(null);
|
const selectedDraftResource = ref<DraftSourceOption | null>(null);
|
||||||
|
|
||||||
const title = computed(() =>
|
const title = computed(() => {
|
||||||
`${form.id ? '修改' : '添加'}(${props.sysOrigin || form.sysOrigin || '-'})`,
|
const sysOrigin = getDisplaySysOriginText(props.sysOrigin || form.sysOrigin);
|
||||||
);
|
return sysOrigin ? `${form.id ? '修改' : '添加'}(${sysOrigin})` : form.id ? '修改' : '添加';
|
||||||
|
});
|
||||||
|
|
||||||
const rewardItems = computed(() => form.rewardConfigList);
|
const rewardItems = computed(() => form.rewardConfigList);
|
||||||
const sourceSelectOptions = computed<DraftSourceOption[]>(
|
const sourceSelectOptions = computed<DraftSourceOption[]>(
|
||||||
|
|||||||
@ -1,10 +1,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onBeforeUnmount, onMounted, reactive } from 'vue';
|
import { onBeforeUnmount, onMounted, reactive } from 'vue';
|
||||||
|
|
||||||
import {
|
import { purchaseTodayTotal } from '#/api/legacy/operate';
|
||||||
purchaseTodayTotal,
|
|
||||||
purchaseTodayTotalBySysOrigin,
|
|
||||||
} from '#/api/legacy/operate';
|
|
||||||
|
|
||||||
defineOptions({ name: 'StatisticsDatavPurchaseCount' });
|
defineOptions({ name: 'StatisticsDatavPurchaseCount' });
|
||||||
|
|
||||||
@ -18,7 +15,6 @@ const props = withDefaults(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const summary = reactive({
|
const summary = reactive({
|
||||||
likeiTotal: 0,
|
|
||||||
total: 0,
|
total: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -36,19 +32,11 @@ function formatValue(value: number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function loadData() {
|
async function loadData() {
|
||||||
const [totalResult, likeiResult] = await Promise.allSettled([
|
try {
|
||||||
purchaseTodayTotal(),
|
summary.total = normalizeNumber(await purchaseTodayTotal());
|
||||||
purchaseTodayTotalBySysOrigin('LIKEI'),
|
} catch {
|
||||||
]);
|
summary.total = 0;
|
||||||
|
}
|
||||||
summary.total =
|
|
||||||
totalResult.status === 'fulfilled'
|
|
||||||
? normalizeNumber(totalResult.value)
|
|
||||||
: 0;
|
|
||||||
summary.likeiTotal =
|
|
||||||
likeiResult.status === 'fulfilled'
|
|
||||||
? normalizeNumber(likeiResult.value)
|
|
||||||
: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@ -71,10 +59,6 @@ onBeforeUnmount(() => {
|
|||||||
<div class="stat-card__label">总额</div>
|
<div class="stat-card__label">总额</div>
|
||||||
<div class="stat-card__value">{{ formatValue(summary.total) }}</div>
|
<div class="stat-card__value">{{ formatValue(summary.total) }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-card">
|
|
||||||
<div class="stat-card__label">LIKEI</div>
|
|
||||||
<div class="stat-card__value">{{ formatValue(summary.likeiTotal) }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -82,7 +66,7 @@ onBeforeUnmount(() => {
|
|||||||
.stat-grid {
|
.stat-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 16px;
|
gap: 16px;
|
||||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
grid-template-columns: minmax(0, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
.stat-card {
|
.stat-card {
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import { useAccessStore } from '@vben/stores';
|
|||||||
import { getAllowedSysOrigins } from '#/views/system/shared';
|
import { getAllowedSysOrigins } from '#/views/system/shared';
|
||||||
|
|
||||||
import LatestPurchaseList from './components/latest-purchase-list.vue';
|
import LatestPurchaseList from './components/latest-purchase-list.vue';
|
||||||
import OnlineUserCountOrigin from './components/online-user-count-origin.vue';
|
|
||||||
import PurchaseCount from './components/purchase-count.vue';
|
import PurchaseCount from './components/purchase-count.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'StatisticsDatav' });
|
defineOptions({ name: 'StatisticsDatav' });
|
||||||
@ -94,13 +93,6 @@ onBeforeUnmount(() => {
|
|||||||
<PurchaseCount />
|
<PurchaseCount />
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="col-info">
|
|
||||||
<div class="title">Likei在线</div>
|
|
||||||
<div class="content">
|
|
||||||
<OnlineUserCountOrigin origin="LIKEI" />
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import {
|
|||||||
BANK_CARD_TYPES,
|
BANK_CARD_TYPES,
|
||||||
formatDate,
|
formatDate,
|
||||||
getAllowedSysOrigins,
|
getAllowedSysOrigins,
|
||||||
|
getDisplaySysOriginText,
|
||||||
REGION_ASSIST_TYPES,
|
REGION_ASSIST_TYPES,
|
||||||
} from '#/views/system/shared';
|
} from '#/views/system/shared';
|
||||||
|
|
||||||
@ -756,7 +757,11 @@ loadCountryOptions();
|
|||||||
|
|
||||||
<Drawer
|
<Drawer
|
||||||
:open="regionDrawerOpen"
|
:open="regionDrawerOpen"
|
||||||
:title="`${regionDrawerTitle}(${regionQuery.sysOrigin})`"
|
:title="
|
||||||
|
getDisplaySysOriginText(regionQuery.sysOrigin)
|
||||||
|
? `${regionDrawerTitle}(${getDisplaySysOriginText(regionQuery.sysOrigin)})`
|
||||||
|
: regionDrawerTitle
|
||||||
|
"
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
width="620"
|
width="620"
|
||||||
@close="regionDrawerOpen = false"
|
@close="regionDrawerOpen = false"
|
||||||
@ -897,7 +902,11 @@ loadCountryOptions();
|
|||||||
|
|
||||||
<Drawer
|
<Drawer
|
||||||
:open="assistDrawerOpen"
|
:open="assistDrawerOpen"
|
||||||
:title="`${assistDrawerTitle}(${assistQuery.sysOrigin})`"
|
:title="
|
||||||
|
getDisplaySysOriginText(assistQuery.sysOrigin)
|
||||||
|
? `${assistDrawerTitle}(${getDisplaySysOriginText(assistQuery.sysOrigin)})`
|
||||||
|
: assistDrawerTitle
|
||||||
|
"
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
width="580"
|
width="580"
|
||||||
@close="assistDrawerOpen = false"
|
@close="assistDrawerOpen = false"
|
||||||
|
|||||||
@ -18,6 +18,37 @@ export const SYS_ORIGIN_OPTIONS: SysOriginOption[] = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const HIDDEN_SYS_ORIGINS = new Set(['LIKEI']);
|
||||||
|
|
||||||
|
export function normalizeSysOrigin(value: unknown) {
|
||||||
|
return String(value ?? '')
|
||||||
|
.trim()
|
||||||
|
.toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isHiddenSysOrigin(value: unknown) {
|
||||||
|
const normalized = normalizeSysOrigin(value);
|
||||||
|
return normalized ? HIDDEN_SYS_ORIGINS.has(normalized) : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getDisplaySysOriginText(value: unknown, fallback = '') {
|
||||||
|
if (isHiddenSysOrigin(value)) {
|
||||||
|
return fallback;
|
||||||
|
}
|
||||||
|
const text = String(value ?? '').trim();
|
||||||
|
return text || fallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getDisplayableSysOriginOptions<T extends { value?: unknown }>(
|
||||||
|
options: T[],
|
||||||
|
) {
|
||||||
|
return options.filter((item) => !isHiddenSysOrigin(item.value));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getDisplayableSysOrigins(accessCodes: string[] = []) {
|
||||||
|
return getDisplayableSysOriginOptions(getAllowedSysOrigins(accessCodes));
|
||||||
|
}
|
||||||
|
|
||||||
export const REGION_ASSIST_TYPES = [
|
export const REGION_ASSIST_TYPES = [
|
||||||
{
|
{
|
||||||
name: '房间贡献活动奖励比例(%)',
|
name: '房间贡献活动奖励比例(%)',
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { nextTick, onBeforeUnmount, ref, watch } from 'vue';
|
import { computed, nextTick, onBeforeUnmount, ref, watch } from 'vue';
|
||||||
|
|
||||||
import { useSortable } from '@vben/hooks';
|
import { useSortable } from '@vben/hooks';
|
||||||
|
|
||||||
@ -33,6 +33,7 @@ import {
|
|||||||
getTeamPolicyRewardSummary,
|
getTeamPolicyRewardSummary,
|
||||||
type TeamPolicyRewardDetailType,
|
type TeamPolicyRewardDetailType,
|
||||||
} from '../policy-shared';
|
} from '../policy-shared';
|
||||||
|
import { getDisplaySysOriginText } from '#/views/system/shared';
|
||||||
|
|
||||||
defineOptions({ name: 'TeamPolicyRewardEditor' });
|
defineOptions({ name: 'TeamPolicyRewardEditor' });
|
||||||
|
|
||||||
@ -56,6 +57,15 @@ const optionMap = ref<Record<string, Array<Record<string, any>>>>({});
|
|||||||
|
|
||||||
let sortableInstance: any = null;
|
let sortableInstance: any = null;
|
||||||
|
|
||||||
|
const drawerTitle = computed(() => {
|
||||||
|
const sysOrigin = getDisplaySysOriginText(props.sysOrigin);
|
||||||
|
return sysOrigin
|
||||||
|
? `${props.allowEdit ? '编辑' : '查看'}(${sysOrigin})`
|
||||||
|
: props.allowEdit
|
||||||
|
? '编辑'
|
||||||
|
: '查看';
|
||||||
|
});
|
||||||
|
|
||||||
function isCurrency(type?: string) {
|
function isCurrency(type?: string) {
|
||||||
return type === 'DIAMOND' || type === 'GOLD';
|
return type === 'DIAMOND' || type === 'GOLD';
|
||||||
}
|
}
|
||||||
@ -374,7 +384,7 @@ onBeforeUnmount(() => {
|
|||||||
<template>
|
<template>
|
||||||
<Drawer
|
<Drawer
|
||||||
:open="open"
|
:open="open"
|
||||||
:title="`${allowEdit ? '编辑' : '查看'}(${sysOrigin || '-'})`"
|
:title="drawerTitle"
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
width="960"
|
width="960"
|
||||||
@close="emit('close')"
|
@close="emit('close')"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user