fix(产品需求、项目需求、工作报告、我的绩效、加班申请): 1、修复搜索区域的下拉框,无法搜索的问题。2、修复工作报告内容溢出的问题。3、修复我的待办 - 待审批,里面的二级tabs没有加权限的问题。4、优化周报里工作日志展示时的分隔符。5、优化项目需求池、我的绩效请求重复发送、影响效率的问题。

feat(我的绩效): 1、增加我的绩效在工作台可以直接处理的功能。2、增加我的绩效全部导出时,合并多个excel的sheet为一个excel的功能。
This commit is contained in:
dk
2026-06-24 18:02:36 +08:00
parent b26a9c8a39
commit 3ffdad142d
16 changed files with 569 additions and 81 deletions

View File

@@ -26,11 +26,13 @@ interface Props {
rowData?: Api.Performance.Sheet.Sheet | null;
mode: 'view' | 'edit' | 'create';
subordinateOptions?: SubordinateOption[];
showApprovalFooter?: boolean;
}
const props = withDefaults(defineProps<Props>(), {
rowData: null,
subordinateOptions: () => []
subordinateOptions: () => [],
showApprovalFooter: false
});
const visible = defineModel<boolean>('visible', { default: false });
@@ -38,6 +40,7 @@ const visible = defineModel<boolean>('visible', { default: false });
const emit = defineEmits<{
saved: [];
savedAndSent: [];
startApproval: [];
}>();
const { formRef, validate } = useForm();
@@ -83,6 +86,7 @@ const drawerTitle = computed(() => {
return `${action}绩效 Excel${name ? ` - ${name}` : ''}`;
});
const canSave = computed(() => props.mode !== 'view');
const showApprovalFooter = computed(() => props.mode === 'view' && props.showApprovalFooter);
const drawerSize = computed(() => (viewportWidth.value >= 2560 ? '60%' : '88%'));
function syncViewportWidth() {
@@ -93,6 +97,10 @@ function handleClose() {
visible.value = false;
}
function handleStartApproval() {
emit('startApproval');
}
function disposeUniver() {
try {
univerInstance?.dispose?.();
@@ -687,10 +695,16 @@ onMounted(() => {
<div ref="containerRef" class="performance-excel-editor__container" />
</div>
<template v-if="canSave" #footer>
<template v-if="canSave || showApprovalFooter" #footer>
<div class="performance-excel-editor__footer">
<ElButton :loading="saving" :disabled="sending" @click="handleSaveDraft">保存草稿</ElButton>
<ElButton type="primary" :loading="sending" :disabled="saving" @click="handleSaveAndSend">发送绩效</ElButton>
<template v-if="canSave">
<ElButton :loading="saving" :disabled="sending" @click="handleSaveDraft">保存草稿</ElButton>
<ElButton type="primary" :loading="sending" :disabled="saving" @click="handleSaveAndSend">发送绩效</ElButton>
</template>
<template v-else-if="showApprovalFooter">
<ElButton @click="handleClose">退出审批</ElButton>
<ElButton type="primary" @click="handleStartApproval">开始审批</ElButton>
</template>
</div>
</template>
</ElDrawer>