导航功能示例,修复Preferences不生效的问题

This commit is contained in:
z9130 2024-10-09 12:20:36 +08:00
parent d921b78951
commit 49011f6812
9 changed files with 62 additions and 21 deletions

View File

@ -9,5 +9,6 @@ export const overridesPreferences = defineOverridesPreferences({
app: {
name: import.meta.env.VITE_APP_TITLE,
authPageLayout: 'panel-center',
enablePreferences:true
},
});

View File

@ -89,9 +89,9 @@ const routes: RouteRecordRaw[] = [
},
component: () => import('#/views/meeting/edit/index.vue'),
meta: {
hideInMenu: true,
hideInTab: true,
activePath: '/meeting/list',
// hideInMenu: true,
// hideInTab: true,
activePath: '/meeting/edit/:id?',
icon: 'lucide:area-chart',
title: '会议填报',
},

View File

@ -35,7 +35,7 @@ const [SpokenPersonEditModal, spokenPersonEditModalApi] = useVbenModal({
const router = useRouter();
const route = useRoute();
const id = route.params.id;
const id = ref(route.params.id);
let sortable2: any;
const showHelpTip = ref(false);
@ -466,10 +466,15 @@ const currData = ref({});
onMounted(async () => {
isLoading.value = true;
console.log(id);
console.log(id.value)
if(id.value === ':id'){
id.value = ''
}
try {
if (id) {
let data = await Apis.meeting.get_page({ params: { guid: id } });
if (id.value) {
let data = await Apis.meeting.get_page({ params: { guid: id.value } });
data = data.rows[0];
console.log(data);
@ -522,7 +527,7 @@ onMounted(async () => {
let initTime: any;
nextTick(() => {
//
if (id) {
if (id.value) {
initTime = setTimeout(() => {
rowDrop();
}, 500);

View File

@ -83,6 +83,7 @@ export function getColumns(params: any = {}): VxeGridPropTypes.Columns {
if (params.type !== 'taizhang') {
columns.unshift({
field: 'radio',
type: 'radio',
width: 40,
slots: { radio: 'radio_cell' },

View File

@ -106,6 +106,9 @@ function handleExport() {
if ($grid) {
$grid.exportData({
type: 'xlsx',
columnFilterMethod: ({ column }) => {
return column.type === 'radio' ? false : true;
},
});
message.success('导出成功');
}

View File

@ -31,7 +31,7 @@ export function getColumns(params: any = {}): VxeGridPropTypes.Columns {
},
},
{
field: 'meetingDate',
field: 'meetingInfo',
title: '会议信息',
width: 200,
slots: { default: 'meetingInfoSlot' },

View File

@ -1,5 +1,5 @@
<script setup lang="ts">
import { computed, onMounted, ref } from 'vue';
import { computed, nextTick, onMounted, ref, watch } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { message, Modal } from 'ant-design-vue';
@ -34,6 +34,9 @@ const textColor = ref('text-gray-700');
const bgColor = ref('bg-gray-50');
const isBold = ref(false);
const textContainerRef = ref();
let alignItemsValue = ref('center');
const currData = ref({
guid: '',
meetingTheme: '',
@ -46,6 +49,11 @@ const currData = ref({
fileUuidAfter: '',
});
watch(textSize, () => {
checkOverflow()
});
async function loadDataByMeeting() {
try {
const data = await Apis.meeting.get_page({
@ -147,6 +155,7 @@ const startMeeting = () => {
//
if (addressorData.value.length > 0) {
meetingStarted.value = true;
checkOverflow();
} else {
message.warning('暂无发言人员,请先添加发言人员后再试');
}
@ -156,12 +165,14 @@ const nextSpeaker = () => {
if (currentIndex.value < addressorData.value.length - 1) {
currentIndex.value++;
}
checkOverflow();
};
const prevSpeaker = () => {
if (currentIndex.value > 0) {
currentIndex.value--;
}
checkOverflow();
};
const endMeeting = () => {
@ -179,6 +190,23 @@ function downloadFile(fileUrl) {
link.click();
link.remove();
}
function checkOverflow() {
nextTick(() => {
const container = textContainerRef.value;
if (container) {
const containerHeight = container.clientHeight; //
const contentHeight = container.scrollHeight; //
console.log(containerHeight, contentHeight);
// `align-items`
if (contentHeight > containerHeight) {
alignItemsValue.value = 'flex-start'; //
} else {
alignItemsValue.value = 'center'; //
}
}
});
}
</script>
<template>
@ -372,15 +400,16 @@ function downloadFile(fileUrl) {
class="content-area mb-4 flex h-[50vh] items-center overflow-y-auto rounded-lg p-4"
>
<div
ref="textContainerRef"
:class="[textColor, textSize, { 'font-bold': isBold }]"
class="text-left"
style="
white-space: pre-line;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
"
:style="{
whiteSpace: 'pre-line',
display: 'flex',
alignItems: alignItemsValue, // align-items
justifyContent: 'center',
height: '100%',
}"
>
{{ currentSpeaker.abstracts }}
</div>

View File

@ -24,7 +24,7 @@ export const overridesPreferences = defineOverridesPreferences({
enablePreferences: false,
enableRefreshToken: false,
isMobile: false,
layout: 'sidebar-nav',
layout: 'sidebar-topbar',
locale: 'zh-CN',
loginExpiredMode: 'page',
preferencesButtonPosition: 'auto',

View File

@ -31,7 +31,7 @@ function mergeDeep(target: any, source: any) {
*/
function defineOverridesPreferences(preferences: DeepPartial<Preferences>) {
return mergeDeep(preferences, {
let defaultPreferences: DeepPartial<Preferences> = {
app: {
accessMode: 'frontend',
colorGrayMode: false,
@ -45,7 +45,7 @@ function defineOverridesPreferences(preferences: DeepPartial<Preferences>) {
// 检查更新的时间间隔,单位为分钟
checkUpdatesInterval: 1,
// 开启布局设置按钮
enablePreferences: true,
enablePreferences: false,
enableRefreshToken: false,
},
theme: {
@ -78,7 +78,9 @@ function defineOverridesPreferences(preferences: DeepPartial<Preferences>) {
languageToggle: false,
themeToggle: false,
},
});
};
console.log('页面配置信息:', mergeDeep(defaultPreferences, preferences));
return mergeDeep(defaultPreferences, preferences);
}
export { defineOverridesPreferences };