2025-02-15 11:00:49 +08:00
|
|
|
<template>
|
|
|
|
<div class="task-process-panel">
|
2025-03-07 16:30:46 +08:00
|
|
|
<el-row :gutter="10">
|
|
|
|
<el-col :span="24" v-for="member in memberList" :key="member.id">
|
|
|
|
<div class="process-item">
|
|
|
|
<div class="user-info">
|
|
|
|
<avatar :size="24" :src="member.userAvatar" :name="member.userName" :id="member.userId" :char-index="-1" />
|
|
|
|
<span class="user-name">{{ member.userName }}</span>
|
|
|
|
<div class="status-tag">
|
|
|
|
<dict-tag :value="member.status" :options="dict.type.task_member_status" size="mini" />
|
2025-02-15 11:00:49 +08:00
|
|
|
</div>
|
2025-03-07 16:30:46 +08:00
|
|
|
</div>
|
|
|
|
<div class="process-info">
|
|
|
|
<div class="info-item">
|
|
|
|
<span class="label">接收时间</span>
|
|
|
|
<span class="value">{{member.receiveTime | dv}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="info-item">
|
|
|
|
<span class="label">提交时间</span>
|
|
|
|
<span class="value">{{member.submitTime | dv}}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</el-col>
|
|
|
|
</el-row>
|
2025-02-15 11:00:49 +08:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import Avatar from '@/components/Avatar'
|
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'TaskProcessPanel',
|
2025-03-07 16:30:46 +08:00
|
|
|
dicts: ['task_member_status'],
|
2025-02-15 11:00:49 +08:00
|
|
|
components: {
|
|
|
|
Avatar
|
|
|
|
},
|
|
|
|
props: {
|
|
|
|
detail: {
|
|
|
|
type: Object,
|
|
|
|
required: true
|
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
2025-03-07 16:30:46 +08:00
|
|
|
memberList() {
|
|
|
|
return this.detail.memberList || []
|
2025-02-15 11:00:49 +08:00
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.task-process-panel {
|
2025-03-07 16:30:46 +08:00
|
|
|
.process-item {
|
|
|
|
padding: 8px 12px;
|
|
|
|
margin-bottom: 4px;
|
|
|
|
border: 1px solid #ebeef5;
|
|
|
|
border-radius: 4px;
|
|
|
|
transition: all 0.3s;
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
&:hover {
|
|
|
|
box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);
|
|
|
|
}
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
.user-info {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
margin-bottom: 6px;
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
.user-name {
|
|
|
|
margin-left: 6px;
|
|
|
|
font-size: 13px;
|
|
|
|
font-weight: bold;
|
|
|
|
flex: 1;
|
|
|
|
}
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
.status-tag {
|
|
|
|
margin-left: auto;
|
2025-02-15 11:00:49 +08:00
|
|
|
}
|
2025-03-07 16:30:46 +08:00
|
|
|
}
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
.process-info {
|
|
|
|
display: flex;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
gap: 8px;
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
.info-item {
|
|
|
|
font-size: 12px;
|
|
|
|
flex: 1;
|
|
|
|
min-width: 120px;
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
.label {
|
|
|
|
color: #909399;
|
|
|
|
}
|
2025-02-15 11:00:49 +08:00
|
|
|
|
2025-03-07 16:30:46 +08:00
|
|
|
.value {
|
|
|
|
color: #303133;
|
|
|
|
margin-left: 4px;
|
2025-02-15 11:00:49 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|