wupengfei
6 天以前 e5b6f4180bd311bb63c3c5c9b3074e3b6b60e19e
feat: 任务
2个文件已添加
1 文件已重命名
14个文件已修改
451 ■■■■ 已修改文件
.eslintrc-auto-import.json 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/task.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/user.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/dictionary.ts 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/task.ts 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/user.ts 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Permission/OperationUserManage.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/TaskManageDetail.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/TaskManageList.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/components/SelltementDetailView.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/components/SignDetailView.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
types/global.d.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -34,13 +34,20 @@
    "EnumRoleWebApiDataPowerText": true,
    "EnumRoleWebApiDataPowerTextForFilter": true,
    "EnumSettlementCycle": true,
    "EnumSettlementCycleText": true,
    "EnumSmsAccess": true,
    "EnumSmsAccessText": true,
    "EnumTaskCheckReceiveStatus": true,
    "EnumTaskRecommendStatus": true,
    "EnumTaskRecommendStatusText": true,
    "EnumTaskReleaseStatus": true,
    "EnumTaskReleaseStatusText": true,
    "EnumTaskSettlementStatus": true,
    "EnumTaskStatus": true,
    "EnumTaskStatusText": true,
    "EnumUserGender": true,
    "EnumUserInfoStatus": true,
    "EnumUserInfoStatusText": true,
    "EnumUserStatus": true,
    "EnumUserType": true,
    "EnumUserTypeText": true,
    "ExtractDefaultPropTypes": true,
auto-imports.d.ts
@@ -41,13 +41,21 @@
  const EnumRoleWebApiDataPowerText: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText']
  const EnumRoleWebApiDataPowerTextForFilter: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter']
  const EnumSettlementCycle: typeof import('./src/constants/apiEnum')['EnumSettlementCycle']
  const EnumSettlementCycleText: typeof import('./src/constants/task')['EnumSettlementCycleText']
  const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
  const EnumSmsAccessText: typeof import('./src/constants/enterprise')['EnumSmsAccessText']
  const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
  const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']
  const EnumTaskRecommendStatusText: typeof import('./src/constants/task')['EnumTaskRecommendStatusText']
  const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']
  const EnumTaskReleaseStatusText: typeof import('./src/constants/task')['EnumTaskReleaseStatusText']
  const EnumTaskSettlementStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']
  const EnumTaskStatus: typeof import('./src/constants/apiEnum')['EnumTaskStatus']
  const EnumTaskStatusText: typeof import('./src/constants/task')['EnumTaskStatusText']
  const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
  const EnumUserInfoStatus: typeof import('./src/constants/apiEnum')['EnumUserInfoStatus']
  const EnumUserInfoStatusText: typeof import('./src/constants/user')['EnumUserInfoStatusText']
  const EnumUserStatus: typeof import('./src/constants/apiEnum')['EnumUserStatus']
  const EnumUserType: typeof import('./src/constants/apiEnum')['EnumUserType']
  const EnumUserTypeText: typeof import('./src/constants/apiEnumText')['EnumUserTypeText']
  const EnumWebApiMethod: typeof import('./src/constants/apiEnum')['EnumWebApiMethod']
@@ -211,7 +219,7 @@
  export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
  import('vue')
  // @ts-ignore
  export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskReleaseStatus, EnumTaskStatus, EnumUserGender, EnumUserInfoStatus, EnumUserType, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskReleaseStatus, EnumTaskStatus, EnumUserGender, EnumUserInfoStatus, EnumUserType } from './src/constants/apiEnum'
  export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType } from './src/constants/apiEnum'
  import('./src/constants/apiEnum')
  // @ts-ignore
  export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
@@ -283,13 +291,20 @@
    readonly EnumRoleWebApiDataPowerText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText']>
    readonly EnumRoleWebApiDataPowerTextForFilter: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter']>
    readonly EnumSettlementCycle: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSettlementCycle']>
    readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']>
    readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']>
    readonly EnumSmsAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessText']>
    readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']>
    readonly EnumTaskRecommendStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']>
    readonly EnumTaskRecommendStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskRecommendStatusText']>
    readonly EnumTaskReleaseStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']>
    readonly EnumTaskReleaseStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskReleaseStatusText']>
    readonly EnumTaskSettlementStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']>
    readonly EnumTaskStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskStatus']>
    readonly EnumTaskStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskStatusText']>
    readonly EnumUserGender: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserGender']>
    readonly EnumUserInfoStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserInfoStatus']>
    readonly EnumUserInfoStatusText: UnwrapRef<typeof import('./src/constants/user')['EnumUserInfoStatusText']>
    readonly EnumUserStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserStatus']>
    readonly EnumUserType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserType']>
    readonly EnumUserTypeText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumUserTypeText']>
    readonly FastButtonMap: UnwrapRef<typeof import('./src/constants/module')['FastButtonMap']>
src/constants/apiEnum.ts
@@ -76,7 +76,7 @@
  /**用户角色 */
  Role = 5,
  /**用户信息 */
  UserInfo = 6,
  User = 6,
  /**企业信息 */
  Enterprise = 7,
}
@@ -125,12 +125,36 @@
  AliyunSms = 10,
}
/** 任务结算状态 */
export enum EnumTaskCheckReceiveStatus {
  /**待验收 */
  Wait = 10,
  /**已验收 */
  Completed = 30,
}
/** 任务推荐状态 */
export enum EnumTaskRecommendStatus {
  /**未推荐 */
  No = 10,
  /**已推荐 */
  Yes = 20,
}
/** 任务发布状态 */
export enum EnumTaskReleaseStatus {
  /**发布中 */
  InProcess = 20,
  /**已停止 */
  Stopped = 100,
}
/** 任务结算状态 */
export enum EnumTaskSettlementStatus {
  /**待结算 */
  Wait = 10,
  /**已结算 */
  Completed = 30,
}
/** 任务安排状态 */
@@ -150,7 +174,7 @@
}
/** 用户信息状态 */
export enum EnumUserInfoStatus {
export enum EnumUserStatus {
  /**正常 */
  Normal = 10,
  /**禁用 */
src/constants/index.ts
@@ -16,3 +16,4 @@
export * from './apiEnumText';
export * from './user';
export * from './dic';
export * from './task';
src/constants/task.ts
New file
@@ -0,0 +1,18 @@
export const EnumTaskStatusText = {
  [EnumTaskStatus.Wait]: '待安排',
  [EnumTaskStatus.Complete]: '已安排',
};
export const EnumSettlementCycleText = {
  [EnumSettlementCycle.Month]: '月结',
  [EnumSettlementCycle.Week]: '周结',
  [EnumSettlementCycle.Day]: '日结',
};
export const EnumTaskReleaseStatusText = {
  [EnumTaskReleaseStatus.InProcess]: '发布中',
  [EnumTaskReleaseStatus.Stopped]: '已停止',
};
export const EnumTaskRecommendStatusText = {
  [EnumTaskRecommendStatus.No]: '未推荐',
  [EnumTaskRecommendStatus.Yes]: '已推荐',
};
src/constants/user.ts
@@ -1,4 +1,4 @@
export const EnumUserInfoStatusText = {
  [EnumUserInfoStatus.Normal]: '正常',
  [EnumUserInfoStatus.Disabled]: '禁用',
  [EnumUserStatus.Normal]: '正常',
  [EnumUserStatus.Disabled]: '禁用',
};
src/services/api/dictionary.ts
@@ -2,12 +2,12 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 删除数据字典类别 DELETE /api/main/dictionary/deleteDictionaryCategory */
/** 删除数据字典类别 DELETE /api/flexjob/dictionary/deleteDictionaryCategory */
export async function deleteDictionaryCategory(
  body: API.DeleteDictionaryCategoryCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/main/dictionary/deleteDictionaryCategory', {
  return request<number>('/api/flexjob/dictionary/deleteDictionaryCategory', {
    method: 'DELETE',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -17,13 +17,13 @@
  });
}
/** 获取数据字典类别分页列表数据 POST /api/main/dictionary/getDictionaryCategories */
/** 获取数据字典类别分页列表数据 POST /api/flexjob/dictionary/getDictionaryCategories */
export async function getDictionaryCategories(
  body: API.GetDictionaryCategoriesQuery,
  options?: API.RequestConfig
) {
  return request<API.PagedListQueryResultGetDictionaryCategoriesQueryResultItem>(
    '/api/main/dictionary/getDictionaryCategories',
    '/api/flexjob/dictionary/getDictionaryCategories',
    {
      method: 'POST',
      headers: {
@@ -35,14 +35,14 @@
  );
}
/** 查询数据字典类别选择器数据 GET /api/main/dictionary/getDictionaryCategorySelect */
/** 查询数据字典类别选择器数据 GET /api/flexjob/dictionary/getDictionaryCategorySelect */
export async function getDictionaryCategorySelect(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetDictionaryCategorySelectParams,
  options?: API.RequestConfig
) {
  return request<API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[]>(
    '/api/main/dictionary/getDictionaryCategorySelect',
    '/api/flexjob/dictionary/getDictionaryCategorySelect',
    {
      method: 'GET',
      params: {
@@ -55,13 +55,13 @@
  );
}
/** 获取数据字典分页列表数据 POST /api/main/dictionary/getDictionaryDatas */
/** 获取数据字典分页列表数据 POST /api/flexjob/dictionary/getDictionaryDatas */
export async function getDictionaryDatas(
  body: API.GetDictionaryDatasQuery,
  options?: API.RequestConfig
) {
  return request<API.PagedListQueryResultGetDictionaryDatasQueryResultItem>(
    '/api/main/dictionary/getDictionaryDatas',
    '/api/flexjob/dictionary/getDictionaryDatas',
    {
      method: 'POST',
      headers: {
@@ -73,14 +73,14 @@
  );
}
/** 查询数据字典选择器 GET /api/main/dictionary/getDictionaryDataSelect */
/** 查询数据字典选择器 GET /api/flexjob/dictionary/getDictionaryDataSelect */
export async function getDictionaryDataSelect(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetDictionaryDataSelectParams,
  options?: API.RequestConfig
) {
  return request<API.SelectOptionStringGetDictionaryDataSelectQueryResultOption[]>(
    '/api/main/dictionary/getDictionaryDataSelect',
    '/api/flexjob/dictionary/getDictionaryDataSelect',
    {
      method: 'GET',
      params: {
@@ -91,12 +91,12 @@
  );
}
/** 保存数据字典类别 POST /api/main/dictionary/saveDictionaryCategory */
/** 保存数据字典类别 POST /api/flexjob/dictionary/saveDictionaryCategory */
export async function saveDictionaryCategory(
  body: API.SaveDictionaryCategoryCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/main/dictionary/saveDictionaryCategory', {
  return request<string>('/api/flexjob/dictionary/saveDictionaryCategory', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -106,12 +106,12 @@
  });
}
/** 保存数据字典 POST /api/main/dictionary/saveDictionaryData */
/** 保存数据字典 POST /api/flexjob/dictionary/saveDictionaryData */
export async function saveDictionaryData(
  body: API.SaveDictionaryDataCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/main/dictionary/saveDictionaryData', {
  return request<string>('/api/flexjob/dictionary/saveDictionaryData', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -121,12 +121,12 @@
  });
}
/** 设置数据字典是否禁用 PUT /api/main/dictionary/setDictionaryDataIsDisabled */
/** 设置数据字典是否禁用 PUT /api/flexjob/dictionary/setDictionaryDataIsDisabled */
export async function setDictionaryDataIsDisabled(
  body: API.SetDictionaryDataIsDisabledCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/main/dictionary/setDictionaryDataIsDisabled', {
  return request<number>('/api/flexjob/dictionary/setDictionaryDataIsDisabled', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -136,12 +136,12 @@
  });
}
/** 同步人力资源地区字典数据 POST /api/main/dictionary/syncHumanResourcesAreaDictionaryData */
/** 同步人力资源地区字典数据 POST /api/flexjob/dictionary/syncHumanResourcesAreaDictionaryData */
export async function syncHumanResourcesAreaDictionaryData(
  body: API.SyncHumanResourcesAreaDictionaryDataCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/main/dictionary/syncHumanResourcesAreaDictionaryData', {
  return request<number>('/api/flexjob/dictionary/syncHumanResourcesAreaDictionaryData', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
src/services/api/index.ts
@@ -2,21 +2,21 @@
/* eslint-disable */
// API 更新时间:
// API 唯一标识:
import * as userInfo from './userInfo';
import * as auth from './auth';
import * as dictionary from './dictionary';
import * as menu from './menu';
import * as resource from './resource';
import * as role from './role';
import * as enterprise from './enterprise';
import * as task from './task';
import * as auth from './auth';
import * as user from './user';
import * as role from './role';
import * as resource from './resource';
export default {
  userInfo,
  auth,
  dictionary,
  menu,
  resource,
  role,
  enterprise,
  task,
  auth,
  user,
  role,
  resource,
};
src/services/api/task.ts
@@ -2,13 +2,13 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 查询任务详情 GET /api/main/task/getTaskInfo */
/** 查询任务详情 GET /api/flexjob/task/getTaskInfo */
export async function getTaskInfo(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetTaskInfoParams,
  options?: API.RequestConfig
) {
  return request<API.GetTaskInfoQueryResult>('/api/main/task/getTaskInfo', {
  return request<API.GetTaskInfoQueryResult>('/api/flexjob/task/getTaskInfo', {
    method: 'GET',
    params: {
      ...params,
@@ -17,10 +17,10 @@
  });
}
/** 查询任务分页列表 POST /api/main/task/getTaskInfos */
/** 查询任务分页列表 POST /api/flexjob/task/getTaskInfos */
export async function getTaskInfos(body: API.GetTaskInfosQuery, options?: API.RequestConfig) {
  return request<API.PagedListQueryResultGetTaskInfosQueryResultItem>(
    '/api/main/task/getTaskInfos',
    '/api/flexjob/task/getTaskInfos',
    {
      method: 'POST',
      headers: {
@@ -32,9 +32,9 @@
  );
}
/** 保存任务 POST /api/main/task/saveTaskInfo */
/** 保存任务 POST /api/flexjob/task/saveTaskInfo */
export async function saveTaskInfo(body: API.SaveTaskInfoCommand, options?: API.RequestConfig) {
  return request<string>('/api/main/task/saveTaskInfo', {
  return request<string>('/api/flexjob/task/saveTaskInfo', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -43,3 +43,33 @@
    ...(options || {}),
  });
}
/** 设置任务是否推荐 PUT /api/flexjob/task/setTaskInfoRecommendStatus */
export async function setTaskInfoRecommendStatus(
  body: API.SetTaskInfoRecommendStatusCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/flexjob/task/setTaskInfoRecommendStatus', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 设置任务发布状态 PUT /api/flexjob/task/setTaskInfoReleaseStatus */
export async function setTaskInfoReleaseStatus(
  body: API.SetTaskInfoReleaseStatusCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/flexjob/task/setTaskInfoReleaseStatus', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/typings.d.ts
@@ -192,7 +192,7 @@
    /**用户角色 */
    Role = 5,
    /**用户信息 */
    UserInfo = 6,
    User = 6,
    /**企业信息 */
    Enterprise = 7,
  }
@@ -237,11 +237,32 @@
    AliyunSms = 10,
  }
  enum EnumTaskCheckReceiveStatus {
    /**待验收 */
    Wait = 10,
    /**已验收 */
    Completed = 30,
  }
  enum EnumTaskRecommendStatus {
    /**未推荐 */
    No = 10,
    /**已推荐 */
    Yes = 20,
  }
  enum EnumTaskReleaseStatus {
    /**发布中 */
    InProcess = 20,
    /**已停止 */
    Stopped = 100,
  }
  enum EnumTaskSettlementStatus {
    /**待结算 */
    Wait = 10,
    /**已结算 */
    Completed = 30,
  }
  enum EnumTaskStatus {
@@ -258,7 +279,7 @@
    Female = 20,
  }
  enum EnumUserInfoStatus {
  enum EnumUserStatus {
    /**正常 */
    Normal = 10,
    /**禁用 */
@@ -996,7 +1017,7 @@
    remark?: string;
    /** 角色 */
    roles?: GetOperationUserInfosQueryResultItemRole[];
    status?: EnumUserInfoStatus;
    status?: EnumUserStatus;
  }
  interface GetOperationUserInfosQueryResultItemRole {
@@ -1102,6 +1123,12 @@
  interface GetTaskInfoQueryResult {
    /** Id */
    id?: string;
    /** 企业Id */
    enterpriseId?: string;
    /** 企业全称 */
    enterpriseName?: string;
    /** 在招岗位数量 */
    taskCount?: number;
    /** 任务名称 */
    name?: string;
    billingMethod?: EnumBillingMethod;
@@ -1125,14 +1152,18 @@
    cityCode?: string;
    /** 任务地点所属城市 */
    cityName?: string;
    /** 任务地点名称 */
    addressName?: string;
    /** 任务地点详细地址 */
    address?: string;
    addressDetail?: string;
    /** 任务开始时间 */
    beginTime?: string;
    /** 任务结束时间 */
    endTime?: string;
    /** 创建时间 */
    createdTime?: string;
    /** 是否已收藏 */
    isCollected?: boolean;
  }
  interface GetTaskInfosQuery {
@@ -1141,11 +1172,20 @@
    keywords?: string;
    /** 发布时间 */
    time?: string;
    /** 任务地点所属城市编号 */
    cityCode?: string;
    settlementCycle?: EnumSettlementCycle;
    /** 员工福利 */
    benefitCodes?: string[];
    genderLimit?: EnumUserGender;
    status?: EnumTaskStatus;
    releaseStatus?: EnumTaskReleaseStatus;
    recommendStatus?: EnumTaskRecommendStatus;
  }
  interface GetTaskInfosQueryResultItem {
    /** Id */
    id?: string;
    /** 任务名称 */
    name: string;
    /** 任务单号 */
@@ -1163,6 +1203,11 @@
    /** 任务结束时间 */
    endTime?: string;
    releaseStatus?: EnumTaskReleaseStatus;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    settlementStatus?: EnumTaskSettlementStatus;
    recommendStatus?: EnumTaskRecommendStatus;
    /** 创建时间 */
    createdTime?: string;
  }
  interface GetUserInfoRolesQueryResultItem {
@@ -1492,8 +1537,14 @@
    provinceCode: string;
    /** 任务地点所属城市编号 */
    cityCode: string;
    /** 任务地点名称 */
    addressName: string;
    /** 任务地点详细地址 */
    address: string;
    addressDetail: string;
    /** 经度 */
    longitude?: number;
    /** 纬度 */
    latitude?: number;
    /** 任务开始时间 */
    beginTime: string;
    /** 任务结束时间 */
@@ -1567,6 +1618,18 @@
    userInfoIds?: string[];
  }
  interface SetTaskInfoRecommendStatusCommand {
    /** Id */
    ids?: string[];
    recommendStatus?: EnumTaskRecommendStatus;
  }
  interface SetTaskInfoReleaseStatusCommand {
    /** Id */
    ids?: string[];
    releaseStatus?: EnumTaskReleaseStatus;
  }
  interface SetUserInfoRolesCommand {
    /** 用户Id */
    userInfoId?: string;
@@ -1577,7 +1640,7 @@
  interface SetUserInfoStatusCommand {
    /** Id */
    ids?: string[];
    status?: EnumUserInfoStatus;
    status?: EnumUserStatus;
  }
  type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
src/services/api/user.ts
File was renamed from src/services/api/userInfo.ts
@@ -2,13 +2,13 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 查询运营端用户分页列表数据 POST /api/user/userInfo/getOperationUserInfos */
/** 查询运营端用户分页列表数据 POST /api/user/user/getOperationUserInfos */
export async function getOperationUserInfos(
  body: API.GetOperationUserInfosQuery,
  options?: API.RequestConfig
) {
  return request<API.PagedListQueryResultGetOperationUserInfosQueryResultItem>(
    '/api/user/userInfo/getOperationUserInfos',
    '/api/user/user/getOperationUserInfos',
    {
      method: 'POST',
      headers: {
@@ -20,13 +20,13 @@
  );
}
/** 查询用户角色列表 GET /api/user/userInfo/getUserInfoRoles */
/** 查询用户角色列表 GET /api/user/user/getUserInfoRoles */
export async function getUserInfoRoles(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetUserInfoRolesParams,
  options?: API.RequestConfig
) {
  return request<API.GetUserInfoRolesQueryResultItem[]>('/api/user/userInfo/getUserInfoRoles', {
  return request<API.GetUserInfoRolesQueryResultItem[]>('/api/user/user/getUserInfoRoles', {
    method: 'GET',
    params: {
      ...params,
@@ -35,12 +35,12 @@
  });
}
/** 设置用户信息角色 PUT /api/user/userInfo/setUserInfoRoles */
/** 设置用户信息角色 PUT /api/user/user/setUserInfoRoles */
export async function setUserInfoRoles(
  body: API.SetUserInfoRolesCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/user/userInfo/setUserInfoRoles', {
  return request<number>('/api/user/user/setUserInfoRoles', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -50,12 +50,12 @@
  });
}
/** 设置用户信息状态 PUT /api/user/userInfo/setUserInfoStatus */
/** 设置用户信息状态 PUT /api/user/user/setUserInfoStatus */
export async function setUserInfoStatus(
  body: API.SetUserInfoStatusCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/user/userInfo/setUserInfoStatus', {
  return request<number>('/api/user/user/setUserInfoStatus', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
src/views/Permission/OperationUserManage.vue
@@ -24,8 +24,8 @@
            v-model="row.status"
            active-text="启用"
            inactive-text="禁用"
            :active-value="EnumUserInfoStatus.Normal"
            :inactive-value="EnumUserInfoStatus.Disabled"
            :active-value="EnumUserStatus.Normal"
            :inactive-value="EnumUserStatus.Disabled"
            :before-change="() => setStatus(row)"
          />
        </template>
@@ -50,9 +50,9 @@
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import { formatRoleName } from '@/utils';
import * as userInfoServices from '@/services/api/userInfo';
import * as userServices from '@/services/api/user';
import { Message } from '@bole-core/core';
import { EnumUserInfoStatus } from '@/constants';
import { EnumUserStatus } from '@/constants';
import SetOperationUserRoleDialog from './components/SetOperationUserRoleDialog.vue';
defineOptions({
@@ -95,7 +95,7 @@
        },
        keywords: extraParamState.keywords,
      };
      let res = await userInfoServices.getOperationUserInfos(params, {
      let res = await userServices.getOperationUserInfos(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -106,7 +106,7 @@
      keywords: '',
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    queryKey: ['userInfoServices/getOperationUserInfos'],
    queryKey: ['userServices/getOperationUserInfos'],
    columnsRenderProps: {},
  }
);
@@ -114,16 +114,14 @@
async function setStatus(row: API.GetOperationUserInfosQueryResultItem) {
  try {
    await Message.tipMessage(
      `确认要${row.status === EnumUserInfoStatus.Normal ? '禁用' : '启用'}该账号吗?`
      `确认要${row.status === EnumUserStatus.Normal ? '禁用' : '启用'}该账号吗?`
    );
    let params: API.SetUserInfoStatusCommand = {
      ids: [row.id],
      status:
        row.status === EnumUserInfoStatus.Normal
          ? EnumUserInfoStatus.Disabled
          : EnumUserInfoStatus.Normal,
        row.status === EnumUserStatus.Normal ? EnumUserStatus.Disabled : EnumUserStatus.Normal,
    };
    let res = await userInfoServices.setUserInfoStatus(params);
    let res = await userServices.setUserInfoStatus(params);
    return !!res;
  } catch (error) {}
}
@@ -154,7 +152,7 @@
      userInfoId: editForm.userInfoId,
      roleIds: editForm.roleIds,
    };
    let res = await userInfoServices.setUserInfoRoles(params);
    let res = await userServices.setUserInfoRoles(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
@@ -168,7 +166,7 @@
      userInfoId: row.id,
      // clientType: row.clientType,
    };
    let res = await userInfoServices.getUserInfoRoles(params);
    let res = await userServices.getUserInfoRoles(params);
    return res;
  } catch (error) {}
}
src/views/TaskManage/TaskManageDetail.vue
@@ -8,6 +8,9 @@
        <ProTabPane lazy label="报名详情" name="sign">
          <SignDetailView></SignDetailView>
        </ProTabPane>
        <ProTabPane lazy label="结算详情" name="settle">
          <SelltementDetailView></SelltementDetailView>
        </ProTabPane>
      </ProTabs>
    </AppContainer>
  </LoadingLayout>
@@ -17,6 +20,7 @@
import { AppContainer, ProTabs, ProTabPane } from '@bole-core/components';
import TaskDetailView from './components/TaskDetailView.vue';
import SignDetailView from './components/SignDetailView.vue';
import SelltementDetailView from './components/SelltementDetailView.vue';
defineOptions({
  name: 'TaskManageDetail',
src/views/TaskManage/TaskManageList.vue
@@ -5,11 +5,8 @@
        <template #query>
          <QueryFilterItem tip-content="发布状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="[
                { value: true, label: '发布中' },
                { value: false, label: '已停止' },
              ]"
              v-model="extraParamState.releaseStatus"
              :value-enum="EnumTaskReleaseStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -17,11 +14,8 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="推荐状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="[
                { value: true, label: '已推荐' },
                { value: false, label: '未推荐' },
              ]"
              v-model="extraParamState.recommendStatus"
              :value-enum="EnumTaskRecommendStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -29,7 +23,7 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="发布时间">
            <FieldDatePicker
              v-model="extraParamState.beginDate"
              v-model="extraParamState.time"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
@@ -40,7 +34,7 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.keyword"
              v-model="extraParamState.keywords"
              style="width: 260px"
              placeholder="任务名称"
              @on-click-search="getList"
@@ -70,7 +64,8 @@
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import { ModelValueType } from 'element-plus';
import * as enterpriseServices from '@/services/api/enterprise';
import * as taskServices from '@/services/api/task';
import { EnumTaskReleaseStatusText, EnumTaskRecommendStatusText } from '@/constants';
defineOptions({
  name: 'OperationManageList',
@@ -118,15 +113,18 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetEnterprisesQuery = {
      let params: API.GetTaskInfosQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        // searchKeys: extraParamState.keyword,
        keywords: extraParamState.keywords,
        releaseStatus: extraParamState.releaseStatus,
        recommendStatus: extraParamState.recommendStatus,
        // time: extraParamState.time,
      };
      let res = await enterpriseServices.getEnterprises(params, {
      let res = await taskServices.getTaskInfos(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -134,11 +132,10 @@
  },
  {
    defaultExtraParams: {
      keyword: '',
      pageType: '' as any as number,
      status: '' as any as boolean,
      beginDate: [] as unknown as ModelValueType,
      endDate: [] as unknown as ModelValueType,
      keywords: '',
      releaseStatus: '' as any as EnumTaskReleaseStatus,
      recommendStatus: '' as any as EnumTaskRecommendStatus,
      time: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {},
src/views/TaskManage/components/SelltementDetailView.vue
New file
@@ -0,0 +1,83 @@
<template>
  <LoadingLayout :loading="state.loading">
    <AppContainer>
      <ProTableV2
        v-bind="proTableProps"
        :columns="settleColumns"
        :operationBtns="settleOperationBtns"
      >
      </ProTableV2>
    </AppContainer>
  </LoadingLayout>
</template>
<script setup lang="ts">
import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components';
import { ModelValueType } from 'element-plus';
import * as enterpriseServices from '@/services/api/enterprise';
defineOptions({
  name: 'SelltementDetailView',
});
const operationBtnMap: Record<string, OperationBtnType> = {
  'settle-downloadBtn': { emits: { onClick: (role) => handleDownload(role) } },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const [settleColumns] = useGroupColumns(column, ['settle-']);
const [settleOperationBtns] = useGroupOperationBtns(operationBtns, ['settle-']);
const router = useRouter();
const BaseState = {
  loading: true,
};
const state = reactive({ ...BaseState });
onMounted(async () => {
  await getList();
  state.loading = false;
});
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetEnterprisesQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        // searchKeys: extraParamState.keyword,
      };
      let res = await enterpriseServices.getEnterprises(params, {
        showLoading: !state.loading,
      });
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      keyword: '',
      pageType: '' as any as number,
      status: '' as any as boolean,
      beginDate: [] as unknown as ModelValueType,
      endDate: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {},
  }
);
function handleDownload(row) {}
</script>
src/views/TaskManage/components/SignDetailView.vue
@@ -1,21 +1,14 @@
<template>
  <LoadingLayout :loading="state.loading">
    <AppContainer>
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      <ProTableV2 v-bind="proTableProps" :columns="signColumns" :operationBtns="signOperationBtns">
      </ProTableV2>
    </AppContainer>
  </LoadingLayout>
</template>
<script setup lang="ts">
import {
  OperationBtnType,
  ProTableV2,
  LoadingLayout,
  AppContainer,
  useTable,
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components';
import { ModelValueType } from 'element-plus';
import * as enterpriseServices from '@/services/api/enterprise';
@@ -24,25 +17,15 @@
});
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: { emits: { onClick: (role) => goDetail(role) } },
  recommendBtn: {
    emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
    extraProps: {
      hide: (row) => row.status,
    },
  },
  cancelRecommendBtn: {
    emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
    props: { type: 'danger' },
    extraProps: {
      hide: (row) => !row.status,
    },
  },
  'sign-detailBtn': { emits: { onClick: (role) => goDetail(role) } },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const [signColumns] = useGroupColumns(column, ['sign-']);
const [signOperationBtns] = useGroupOperationBtns(operationBtns, ['sign-']);
const router = useRouter();
const BaseState = {
@@ -92,7 +75,7 @@
  }
);
async function setAdvertiseOnShowStatus(row) {
async function handleRecommend(row) {
  try {
  } catch (error) {}
}
types/global.d.ts
@@ -137,9 +137,9 @@
    provinceName?: string;
    cityName?: string;
    countyName?: string;
    provinceCode?: number;
    cityCode?: number;
    countyCode?: number;
    provinceCode?: string;
    cityCode?: string;
    countyCode?: string;
    address?: string;
  }