Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdmin
| | |
| | | "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, |
| | | "EnumUserInfoStatusText": true, |
| | | "EnumUserStatus": true, |
| | |
| | | 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'] |
| | |
| | | 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 EnumUserInfoStatusText: UnwrapRef<typeof import('./src/constants/user')['EnumUserInfoStatusText']> |
| | | readonly EnumUserStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserStatus']> |
| | |
| | | export * from './apiEnumText'; |
| | | export * from './user'; |
| | | export * from './dic'; |
| | | export * from './task'; |
New file |
| | |
| | | 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]: '已推荐', |
| | | }; |
| | |
| | | export const EnumUserInfoStatusText = { |
| | | [EnumUserInfoStatus.Normal]: '正常', |
| | | [EnumUserInfoStatus.Disabled]: '禁用', |
| | | [EnumUserStatus.Normal]: '正常', |
| | | [EnumUserStatus.Disabled]: '禁用', |
| | | }; |
| | |
| | | addressName?: string; |
| | | /** 任务地点详细地址 */ |
| | | addressDetail?: string; |
| | | /** 经度 */ |
| | | longitude?: number; |
| | | /** 纬度 */ |
| | | latitude?: number; |
| | | /** 任务开始时间 */ |
| | | beginTime?: string; |
| | | /** 任务结束时间 */ |
| | |
| | | pageModel?: PagedListQueryPageModel; |
| | | /** 关键字(任务名称) */ |
| | | keywords?: string; |
| | | /** 发布时间-开始 */ |
| | | beginTime?: string; |
| | | /** 发布时间-结束 */ |
| | | endTime?: string; |
| | | /** 发布时间 */ |
| | | time?: string; |
| | | /** 任务地点所属城市编号 */ |
| | | cityCode?: string; |
| | | settlementCycle?: EnumSettlementCycle; |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 查询用户简历 GET /api/user/user/getUserResume */ |
| | | export async function getUserResume( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | | params: API.APIgetUserResumeParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetUserResumeQueryResult>('/api/user/user/getUserResume', { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 设置用户信息角色 PUT /api/user/user/setUserInfoRoles */ |
| | | export async function setUserInfoRoles( |
| | | body: API.SetUserInfoRolesCommand, |
| | |
| | | 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> |
| | |
| | | } 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({ |
| | |
| | | }, |
| | | keywords: extraParamState.keywords, |
| | | }; |
| | | let res = await userInfoServices.getOperationUserInfos(params, { |
| | | let res = await userServices.getOperationUserInfos(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | return res; |
| | |
| | | keywords: '', |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | queryKey: ['userInfoServices/getOperationUserInfos'], |
| | | queryKey: ['userServices/getOperationUserInfos'], |
| | | columnsRenderProps: {}, |
| | | } |
| | | ); |
| | |
| | | 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) {} |
| | | } |
| | |
| | | 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); |
| | |
| | | userInfoId: row.id, |
| | | // clientType: row.clientType, |
| | | }; |
| | | let res = await userInfoServices.getUserInfoRoles(params); |
| | | let res = await userServices.getUserInfoRoles(params); |
| | | return res; |
| | | } catch (error) {} |
| | | } |
| | |
| | | <ProTabPane lazy label="报名详情" name="sign"> |
| | | <SignDetailView></SignDetailView> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="结算详情" name="settle"> |
| | | <SelltementDetailView></SelltementDetailView> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | |
| | | 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', |
| | |
| | | <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()" |
| | |
| | | </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()" |
| | |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="发布时间"> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.beginDate" |
| | | v-model="extraParamState.time" |
| | | type="daterange" |
| | | range-separator="~" |
| | | start-placeholder="开始日期" |
| | |
| | | </QueryFilterItem> |
| | | <QueryFilterItem> |
| | | <SearchInput |
| | | v-model="extraParamState.keyword" |
| | | v-model="extraParamState.keywords" |
| | | style="width: 260px" |
| | | placeholder="任务名称" |
| | | @on-click-search="getList" |
| | |
| | | } 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', |
| | |
| | | } = 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; |
| | |
| | | }, |
| | | { |
| | | 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: {}, |
New file |
| | |
| | | <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> |
| | |
| | | <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'; |
| | | |
| | |
| | | }); |
| | | |
| | | 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 = { |
| | |
| | | } |
| | | ); |
| | | |
| | | async function setAdvertiseOnShowStatus(row) { |
| | | async function handleRecommend(row) { |
| | | try { |
| | | } catch (error) {} |
| | | } |
| | |
| | | provinceName?: string; |
| | | cityName?: string; |
| | | countyName?: string; |
| | | provinceCode?: number; |
| | | cityCode?: number; |
| | | countyCode?: number; |
| | | provinceCode?: string; |
| | | cityCode?: string; |
| | | countyCode?: string; |
| | | address?: string; |
| | | } |
| | | |