diff --git a/src/apis/project/type.ts b/src/apis/project/type.ts index c15d7e8..cbdb186 100644 --- a/src/apis/project/type.ts +++ b/src/apis/project/type.ts @@ -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' } /** 导入结果响应 */ diff --git a/src/apis/system/user.ts b/src/apis/system/user.ts index 921d118..59257e1 100644 --- a/src/apis/system/user.ts +++ b/src/apis/system/user.ts @@ -3,9 +3,10 @@ import http from '@/utils/http' const BASE_URL = '/user' -/** @desc 查询用户列表 */ +/** @desc 分页查询用户列表 */ export function listUser(query: T.UserPageQuery) { - return http.get>(`${BASE_URL}`, query) + // 后端分页接口为 /user/page + return http.get>(`${BASE_URL}/page`, query) } /** @desc 查询所有用户列表 */ diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts index 369aad4..eab6be6 100644 --- a/src/types/auto-imports.d.ts +++ b/src/types/auto-imports.d.ts @@ -70,6 +70,6 @@ declare global { // for type re-export declare global { // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' import('vue') } diff --git a/src/types/components.d.ts b/src/types/components.d.ts index 14a0fe7..2c3bca4 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -7,8 +7,68 @@ export {} declare module 'vue' { export interface GlobalComponents { + ApprovalAssistant: typeof import('./../components/ApprovalAssistant/index.vue')['default'] + Avatar: typeof import('./../components/Avatar/index.vue')['default'] + Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default'] + CellCopy: typeof import('./../components/CellCopy/index.vue')['default'] + Chart: typeof import('./../components/Chart/index.vue')['default'] + ColumnSetting: typeof import('./../components/GiTable/src/components/ColumnSetting.vue')['default'] + CronForm: typeof import('./../components/GenCron/CronForm/index.vue')['default'] + CronModal: typeof import('./../components/GenCron/CronModal/index.vue')['default'] + DateRangePicker: typeof import('./../components/DateRangePicker/index.vue')['default'] + DayForm: typeof import('./../components/GenCron/CronForm/component/day-form.vue')['default'] + FilePreview: typeof import('./../components/FilePreview/index.vue')['default'] + GiCellAvatar: typeof import('./../components/GiCell/GiCellAvatar.vue')['default'] + GiCellGender: typeof import('./../components/GiCell/GiCellGender.vue')['default'] + GiCellStatus: typeof import('./../components/GiCell/GiCellStatus.vue')['default'] + GiCellTag: typeof import('./../components/GiCell/GiCellTag.vue')['default'] + GiCellTags: typeof import('./../components/GiCell/GiCellTags.vue')['default'] + GiCodeView: typeof import('./../components/GiCodeView/index.vue')['default'] + GiDot: typeof import('./../components/GiDot/index.tsx')['default'] + GiEditTable: typeof import('./../components/GiEditTable/GiEditTable.vue')['default'] + GiFooter: typeof import('./../components/GiFooter/index.vue')['default'] + GiForm: typeof import('./../components/GiForm/src/GiForm.vue')['default'] + GiIconBox: typeof import('./../components/GiIconBox/index.vue')['default'] + GiIconSelector: typeof import('./../components/GiIconSelector/index.vue')['default'] + GiIframe: typeof import('./../components/GiIframe/index.vue')['default'] + GiOption: typeof import('./../components/GiOption/index.vue')['default'] + GiOptionItem: typeof import('./../components/GiOptionItem/index.vue')['default'] + GiPageLayout: typeof import('./../components/GiPageLayout/index.vue')['default'] + GiSpace: typeof import('./../components/GiSpace/index.vue')['default'] + GiSplitButton: typeof import('./../components/GiSplitButton/index.vue')['default'] + GiSplitPane: typeof import('./../components/GiSplitPane/index.vue')['default'] + GiSplitPaneFlexibleBox: typeof import('./../components/GiSplitPane/components/GiSplitPaneFlexibleBox.vue')['default'] + GiSvgIcon: typeof import('./../components/GiSvgIcon/index.vue')['default'] + GiTable: typeof import('./../components/GiTable/src/GiTable.vue')['default'] + GiTag: typeof import('./../components/GiTag/index.tsx')['default'] + GiThemeBtn: typeof import('./../components/GiThemeBtn/index.vue')['default'] + HourForm: typeof import('./../components/GenCron/CronForm/component/hour-form.vue')['default'] + Icon403: typeof import('./../components/icons/Icon403.vue')['default'] + Icon404: typeof import('./../components/icons/Icon404.vue')['default'] + Icon500: typeof import('./../components/icons/Icon500.vue')['default'] + IconBorders: typeof import('./../components/icons/IconBorders.vue')['default'] + IconTableSize: typeof import('./../components/icons/IconTableSize.vue')['default'] + IconTreeAdd: typeof import('./../components/icons/IconTreeAdd.vue')['default'] + IconTreeReduce: typeof import('./../components/icons/IconTreeReduce.vue')['default'] + ImageImport: typeof import('./../components/ImageImport/index.vue')['default'] + ImageImportWizard: typeof import('./../components/ImageImportWizard/index.vue')['default'] + IndustrialImageList: typeof import('./../components/IndustrialImageList/index.vue')['default'] + JsonPretty: typeof import('./../components/JsonPretty/index.vue')['default'] + MinuteForm: typeof import('./../components/GenCron/CronForm/component/minute-form.vue')['default'] + MonthForm: typeof import('./../components/GenCron/CronForm/component/month-form.vue')['default'] NotificationCenter: typeof import('./../components/NotificationCenter/index.vue')['default'] + ParentView: typeof import('./../components/ParentView/index.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + SecondForm: typeof import('./../components/GenCron/CronForm/component/second-form.vue')['default'] + SplitPanel: typeof import('./../components/SplitPanel/index.vue')['default'] + TextCopy: typeof import('./../components/TextCopy/index.vue')['default'] + TurbineGrid: typeof import('./../components/TurbineGrid/index.vue')['default'] + UserSelect: typeof import('./../components/UserSelect/index.vue')['default'] + Verify: typeof import('./../components/Verify/index.vue')['default'] + VerifyPoints: typeof import('./../components/Verify/Verify/VerifyPoints.vue')['default'] + VerifySlide: typeof import('./../components/Verify/Verify/VerifySlide.vue')['default'] + WeekForm: typeof import('./../components/GenCron/CronForm/component/week-form.vue')['default'] + YearForm: typeof import('./../components/GenCron/CronForm/component/year-form.vue')['default'] } } diff --git a/src/views/project-management/contract/expense-contract/ContractEdit.vue b/src/views/project-management/contract/expense-contract/ContractEdit.vue index 4ced636..d3d9c06 100644 --- a/src/views/project-management/contract/expense-contract/ContractEdit.vue +++ b/src/views/project-management/contract/expense-contract/ContractEdit.vue @@ -7,8 +7,16 @@ - - + + @@ -66,8 +74,27 @@ - - + + + + + + + @@ -88,6 +115,10 @@