fix: org department commander display

This commit is contained in:
xinxin.wu
2025-04-27 14:32:51 +08:00
committed by Craftsman
parent 7ad2054c6a
commit 08722751e7
6 changed files with 50 additions and 5 deletions

View File

@@ -59,6 +59,7 @@ export interface MemberItem extends BaseMemberInfo {
updateTime: number;
departmentName: string;
supervisorName: string; // 直属上级名称
commander: boolean; // 是否是负责人
}
export interface MemberParams extends BaseMemberInfo {

View File

@@ -22,7 +22,7 @@
:disabled="props.tooltipDisabled"
>
<template #trigger>
<div class="one-line-text">
<div class="one-line-text !leading-none">
<slot></slot>
</div>
</template>

View File

@@ -50,7 +50,12 @@
@select="handleNodeSelect"
@more-action-select="handleFolderMoreSelect"
/>
<SetDepHeadModal v-model:show="showSetHeadModal" :department-id="departmentId" @close="closeSetCommanderId" />
<SetDepHeadModal
v-model:show="showSetHeadModal"
:department-id="departmentId"
@close="closeSetCommanderId"
@load-list="() => emit('loadList')"
/>
</template>
<script setup lang="ts">
@@ -89,6 +94,7 @@
const emit = defineEmits<{
(e: 'selectNode', _selectedKeys: Array<string | number>, offspringIds: string[]): void;
(e: 'loadList'): void;
}>();
const orgModuleTree = ref<CrmTreeNodeData[]>([]);

View File

@@ -97,6 +97,7 @@
import { BatchActionConfig, CrmDataTableColumn } from '@/components/pure/crm-table/type';
import useTable from '@/components/pure/crm-table/useTable';
import CrmTableButton from '@/components/pure/crm-table-button/index.vue';
import CrmTag from '@/components/pure/crm-tag/index.vue';
import type { CrmFileItem } from '@/components/pure/crm-upload/types';
import CrmEditableText from '@/components/business/crm-editable-text/index.vue';
import ImportModal from '@/components/business/crm-import-button/components/importModal.vue';
@@ -482,11 +483,38 @@
{
default: () => {
return h(
CrmTableButton,
'div',
{
onClick: () => showDetail(row.id),
class: 'w-full flex items-center',
},
{ default: () => row.userName, trigger: () => row.userName }
[
h(
'div',
{
class: 'one-line-text max-w-[calc(100%-44px)] inline-block',
},
[
h(
CrmTableButton,
{
onClick: () => showDetail(row.id),
},
{ default: () => row.userName, trigger: () => row.userName }
),
]
),
row.commander
? h(
CrmTag,
{
type: 'primary',
theme: 'lightOutLine',
class: 'ml-[8px]',
},
{ default: () => t('common.head') }
)
: null,
]
);
},
}
@@ -949,6 +977,10 @@
initOrgList();
}
);
defineExpose({
initOrgList,
});
</script>
<style scoped></style>

View File

@@ -49,6 +49,7 @@
const emit = defineEmits<{
(e: 'close'): void;
(e: 'loadList'): void;
}>();
const showModal = defineModel<boolean>('show', {
@@ -122,6 +123,7 @@
...form.value,
departmentId: props.departmentId,
});
emit('loadList');
closeHandler();
Message.success(t('org.setupSuccess'));
} catch (e) {

View File

@@ -7,11 +7,13 @@
ref="orgModuleTreeRef"
:is-sync-from-third-checked="isSyncFromThirdChecked"
@select-node="selectNode"
@load-list="() => orgTableRef?.initOrgList()"
/>
</div>
</template>
<template #2>
<OrgTable
ref="orgTableRef"
:is-sync-from-third-checked="isSyncFromThirdChecked"
:active-node="activeNodeId"
:offspring-ids="offspringIds"
@@ -53,6 +55,8 @@
}
}
const orgTableRef = ref<InstanceType<typeof OrgTable>>();
onBeforeMount(() => {
initCheckSyncType();
});