实现团队成员更新功能和筛选功能
This commit is contained in:
parent
a80a23fd74
commit
e60e4cf095
|
@ -156,14 +156,14 @@ export interface ProjectDetailResp extends ProjectCard {
|
|||
export interface TeamMemberResp {
|
||||
id: string | number
|
||||
name: string
|
||||
position: string
|
||||
roleType: string
|
||||
phone?: string
|
||||
email?: string
|
||||
avatar?: string
|
||||
joinDate?: string
|
||||
performance?: number
|
||||
remark?: string
|
||||
status?: 'available' | 'busy' | 'offline'
|
||||
status?: 'ACTIVE' | 'SUSPENDED' | 'INACTIVE'
|
||||
}
|
||||
|
||||
/** 后端返回的团队成员数据结构 */
|
||||
|
@ -182,7 +182,7 @@ export interface BackendTeamMemberResp {
|
|||
phone: string | null
|
||||
email: string | null
|
||||
position: string
|
||||
status: 'ACTIVE' | 'BUSY' | 'OFFLINE'
|
||||
status: 'ACTIVE' | 'SUSPENDED' | 'INACTIVE'
|
||||
skills: string
|
||||
joinDate: string
|
||||
remark: string
|
||||
|
@ -201,11 +201,11 @@ export interface BackendTeamMemberResp {
|
|||
export interface TeamMemberQuery extends PageQuery {
|
||||
projectId: string | number
|
||||
name?: string // 姓名搜索
|
||||
position?: string // 岗位筛选
|
||||
position?: string // 项目岗位筛选
|
||||
status?: string // 状态筛选
|
||||
joinDateStart?: string // 入职日期开始
|
||||
joinDateEnd?: string // 入职日期结束
|
||||
sortBy?: 'name' | 'position' | 'joinDate' | 'status' // 排序字段
|
||||
sortBy?: 'name' | 'roleType' | 'joinDate' | 'status' // 排序字段
|
||||
sortOrder?: 'asc' | 'desc' // 排序方向
|
||||
}
|
||||
|
||||
|
@ -213,33 +213,33 @@ export interface TeamMemberQuery extends PageQuery {
|
|||
export interface TeamMemberExportQuery {
|
||||
projectId: string | number
|
||||
name?: string // 姓名搜索
|
||||
position?: string // 岗位筛选
|
||||
position?: string // 项目岗位筛选
|
||||
status?: string // 状态筛选
|
||||
joinDateStart?: string // 入职日期开始
|
||||
joinDateEnd?: string // 入职日期结束
|
||||
sortBy?: 'name' | 'position' | 'joinDate' | 'status' // 排序字段
|
||||
sortBy?: 'name' | 'roleType' | 'joinDate' | 'status' // 排序字段
|
||||
sortOrder?: 'asc' | 'desc' // 排序方向
|
||||
}
|
||||
|
||||
/** 创建团队成员表单 */
|
||||
export interface CreateTeamMemberForm {
|
||||
projectId: string | number
|
||||
roleType: string // 项目岗位
|
||||
name: string
|
||||
phone: string
|
||||
email?: string
|
||||
position: string
|
||||
status?: 'available' | 'busy' | 'offline'
|
||||
status?: 'ACTIVE' | 'SUSPENDED' | 'INACTIVE'
|
||||
joinDate?: string
|
||||
remark?: string
|
||||
}
|
||||
|
||||
/** 更新团队成员表单 */
|
||||
export interface UpdateTeamMemberForm {
|
||||
roleType?: string // 项目岗位
|
||||
name?: string
|
||||
phone?: string
|
||||
email?: string
|
||||
position?: string
|
||||
status?: 'available' | 'busy' | 'offline'
|
||||
status?: 'ACTIVE' | 'SUSPENDED' | 'INACTIVE'
|
||||
joinDate?: string
|
||||
remark?: string
|
||||
}
|
||||
|
@ -250,7 +250,7 @@ export interface UpdateTeamMemberForm {
|
|||
export interface BatchOperationForm {
|
||||
ids: (string | number)[]
|
||||
operation: 'delete' | 'updateStatus'
|
||||
status?: 'available' | 'busy' | 'offline'
|
||||
status?: 'ACTIVE' | 'SUSPENDED' | 'INACTIVE'
|
||||
}
|
||||
|
||||
/** 导入结果响应 */
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -265,7 +265,7 @@
|
|||
<div class="member-position">{{ member.position || '未设置岗位' }}</div>
|
||||
<div class="member-details">
|
||||
<span class="member-status" :class="member.status">
|
||||
{{ member.status === 'available' ? '在线' : '离线' }}
|
||||
{{ member.status === 'ACTIVE' ? '在线' : '离线' }}
|
||||
</span>
|
||||
<span class="member-date">入职: {{ member.joinDate || '未设置' }}</span>
|
||||
</div>
|
||||
|
@ -468,7 +468,7 @@ const mapProjectRespToProjectCard = (projectResp: any): any => {
|
|||
position: member.roleTypeDesc || member.jobCodeDesc || '未设置岗位',
|
||||
phone: member.phone || '', // 后端数据中的电话字段
|
||||
email: member.email || '', // 后端数据中的邮箱字段
|
||||
status: member.status === 'ACTIVE' ? 'available' : 'offline',
|
||||
status: member.status === 'ACTIVE' ? 'ACTIVE' : 'INACTIVE',
|
||||
skills: [], // 后端数据中没有技能字段
|
||||
joinDate: member.joinDate || '未设置',
|
||||
remark: member.remark || member.jobDesc || '',
|
||||
|
@ -1326,13 +1326,13 @@ onMounted(async () => {
|
|||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
|
||||
&.available {
|
||||
&.ACTIVE {
|
||||
background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%);
|
||||
color: #1890ff;
|
||||
border: 1px solid #91d5ff;
|
||||
}
|
||||
|
||||
&.offline {
|
||||
&.INACTIVE {
|
||||
background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);
|
||||
color: #8c8c8c;
|
||||
border: 1px solid #d9d9d9;
|
||||
|
|
Loading…
Reference in New Issue