fix
This commit is contained in:
@@ -135,6 +135,14 @@ function quickReplies(mode: ReplyMode) {
|
||||
return mode === "success" ? executorSuccessReplies : executorFailureReplies;
|
||||
}
|
||||
|
||||
function employeeName(employee: Employee | null | undefined) {
|
||||
return employee?.name || employee?.short_name || "не указан";
|
||||
}
|
||||
|
||||
function showEmployeeName(employee: Employee | null | undefined) {
|
||||
showToast(employeeName(employee));
|
||||
}
|
||||
|
||||
async function sendMessage(status: string, text: string) {
|
||||
const key = actionKey(status);
|
||||
if (sendingActionKey.value) {
|
||||
@@ -184,67 +192,48 @@ async function sendMessage(status: string, text: string) {
|
||||
>
|
||||
<div class="approval-task-head">
|
||||
<div class="approval-task-head__main">
|
||||
<div class="approval-task-title">
|
||||
{{ task.text?.trim() || task.result?.trim() || `Задача #${task.id}` }}
|
||||
<div class="approval-task-title-row">
|
||||
<RemoteImage
|
||||
class="approval-person-avatar approval-person-avatar--author"
|
||||
round
|
||||
width="30"
|
||||
height="30"
|
||||
:src="task.author?.avatar_small ?? ''"
|
||||
:fallback-text="employeeName(task.author)"
|
||||
@click.stop="showEmployeeName(task.author)"
|
||||
/>
|
||||
<div class="approval-task-title">
|
||||
{{ task.text?.trim() || task.result?.trim() || `Задача #${task.id}` }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="approval-task-meta">ID {{ task.id }} · {{ task.deadline }}</div>
|
||||
</div>
|
||||
<van-tag plain :type="statusType(task.get_status_class)">
|
||||
{{ task.get_status }}
|
||||
</van-tag>
|
||||
</div>
|
||||
|
||||
<van-cell-group inset>
|
||||
<div class="approval-person-list">
|
||||
<div class="approval-person-item">
|
||||
<div class="approval-task-status">
|
||||
<van-tag plain :type="statusType(task.get_status_class)">
|
||||
{{ task.get_status }}
|
||||
</van-tag>
|
||||
<div class="approval-status-avatars">
|
||||
<RemoteImage
|
||||
class="approval-person-avatar"
|
||||
round
|
||||
width="32"
|
||||
height="32"
|
||||
width="28"
|
||||
height="28"
|
||||
:src="task.doer?.avatar_small ?? ''"
|
||||
:fallback-text="employeeName(task.doer)"
|
||||
@click.stop="showEmployeeName(task.doer)"
|
||||
/>
|
||||
<div class="approval-person-body">
|
||||
<div class="approval-person-role">Исполнитель</div>
|
||||
<div class="approval-person-name">
|
||||
{{ task.doer?.short_name ?? task.doer?.name ?? 'не указан' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="approval-person-item">
|
||||
<RemoteImage
|
||||
class="approval-person-avatar"
|
||||
round
|
||||
width="32"
|
||||
height="32"
|
||||
:src="task.author?.avatar_small ?? ''"
|
||||
/>
|
||||
<div class="approval-person-body">
|
||||
<div class="approval-person-role">Автор</div>
|
||||
<div class="approval-person-name">
|
||||
{{ task.author?.short_name ?? task.author?.name ?? 'не указан' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="approval-person-item">
|
||||
<RemoteImage
|
||||
class="approval-person-avatar"
|
||||
round
|
||||
width="32"
|
||||
height="32"
|
||||
width="28"
|
||||
height="28"
|
||||
:src="task.responsible?.avatar_small ?? ''"
|
||||
:fallback-text="employeeName(task.responsible)"
|
||||
@click.stop="showEmployeeName(task.responsible)"
|
||||
/>
|
||||
<div class="approval-person-body">
|
||||
<div class="approval-person-role">Ответственный</div>
|
||||
<div class="approval-person-name">
|
||||
{{ task.responsible?.short_name ?? task.responsible?.name ?? 'не указан' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
|
||||
<div class="approval-task-messages">
|
||||
<div class="approval-task-messages__title">Сообщения</div>
|
||||
@@ -436,13 +425,34 @@ async function sendMessage(status: string, text: string) {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.approval-task-title-row {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.approval-task-title {
|
||||
min-width: 0;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
line-height: 1.35;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.approval-task-status {
|
||||
display: flex;
|
||||
flex: none;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.approval-status-avatars {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.approval-task-meta {
|
||||
margin-top: 4px;
|
||||
color: #6b7280;
|
||||
@@ -453,41 +463,13 @@ async function sendMessage(status: string, text: string) {
|
||||
padding: 12px 16px 16px;
|
||||
}
|
||||
|
||||
.approval-person-list {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 6px;
|
||||
padding: 8px 10px;
|
||||
}
|
||||
|
||||
.approval-person-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.approval-person-avatar {
|
||||
flex: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.approval-person-body {
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.approval-person-role {
|
||||
color: #6b7280;
|
||||
font-size: 10px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.approval-person-name {
|
||||
.approval-person-avatar--author {
|
||||
margin-top: 1px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
line-height: 1.35;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.approval-task-messages__title {
|
||||
|
||||
Reference in New Issue
Block a user