| | |
| | | <AppContainer> |
| | | <ProTableQueryFilterBar @on-reset="reset"> |
| | | <template #query> |
| | | <QueryFilterItem tip-content="录用状态"> |
| | | <QueryFilterItem> |
| | | <FieldRadio |
| | | v-model="extraParamState.flexEnterpriseSettingStatus" |
| | | :value-enum="[ |
| | | { label: '已安排', value: 1 }, |
| | | { label: '待安排', value: 0 }, |
| | | ]" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | | /> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem tip-content="实名状态"> |
| | | <FieldRadio |
| | | v-model="extraParamState.flexEnterpriseSettingStatus" |
| | | :value-enum="[ |
| | | { label: '发布中', value: 1 }, |
| | | { label: '已停止', value: 0 }, |
| | | ]" |
| | | v-model="extraParamState.arrangeStatus" |
| | | :value-enum="EnumTaskUserArrangeStatusText" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | | /> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem> |
| | | <FieldDatePicker |
| | | v-model="extraParamState.flexEnterpriseSettingStatus" |
| | | type="daterange" |
| | | range-separator="~" |
| | | start-placeholder="起始日期" |
| | | end-placeholder="截止日期" |
| | | clearable |
| | | <FieldRadio |
| | | v-model="extraParamState.applyStatus" |
| | | :value-enum="EnumGetArrangeTaskUsersQueryApplyStatusText" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | | tooltipContent="发布时间" |
| | | ></FieldDatePicker> |
| | | /> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem> |
| | | <SearchInput |
| | |
| | | </QueryFilterItem> |
| | | </template> |
| | | </ProTableQueryFilterBar> |
| | | <ProTableV2 |
| | | v-bind="proTableProps" |
| | | :columns="EmploymentArrangeColumns" |
| | | :operationBtns="operationBtns" |
| | | > |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> |
| | | </ProTableV2> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | |
| | | AppContainer, |
| | | QueryFilterItem, |
| | | useTable, |
| | | FieldDatePicker, |
| | | FieldRadio, |
| | | defineOperationBtns, |
| | | } from '@bole-core/components'; |
| | | import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; |
| | | import { EmploymentArrangeColumns } from './constants'; |
| | | import { OrderInputType, Message } from '@bole-core/core'; |
| | | import { FlexEnterpriseSettingStatus } from '@/constants'; |
| | | import { Message } from '@bole-core/core'; |
| | | import * as taskUserServices from '@/services/api/taskUser'; |
| | | import { |
| | | EnumTaskUserArrangeStatusText, |
| | | EnumGetArrangeTaskUsersQueryApplyStatusText, |
| | | } from '@/constants'; |
| | | import { hiddenIDNumberForEnd4 } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'EmploymentManageArrange', |
| | | }); |
| | | |
| | | const operationBtns = defineOperationBtns([ |
| | | { |
| | | data: { |
| | | enCode: 'arrangeBtn', |
| | | name: '安排', |
| | | }, |
| | | const operationBtnMap: Record<string, OperationBtnType> = { |
| | | arrangeBtn: { |
| | | emits: { |
| | | onClick: (role) => handleArrange(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetArrangeTaskUsersQueryResultItem) => |
| | | row.arrangeStatus === EnumTaskUserArrangeStatus.Complete, |
| | | }, |
| | | }, |
| | | ]); |
| | | cancelRecruitBtn: { |
| | | emits: { |
| | | onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Cancel), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetArrangeTaskUsersQueryResultItem) => |
| | | row.arrangeStatus === EnumTaskUserArrangeStatus.Complete || !row.taskInfoUserId, |
| | | }, |
| | | }, |
| | | }; |
| | | |
| | | const { column, operationBtns } = useAccess({ |
| | | operationBtnMap, |
| | | }); |
| | | |
| | | const router = useRouter(); |
| | | const route = useRoute(); |
| | | const id = route.params.id as string; |
| | | |
| | | const BaseState = { |
| | | loading: true, |
| | |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetFlexEnterpriseInput = { |
| | | let params: API.GetArrangeTaskUsersQuery = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, |
| | | searchWord: extraParamState.searchWord, |
| | | id: id, |
| | | keywords: extraParamState.searchWord, |
| | | arrangeStatus: extraParamState.arrangeStatus, |
| | | applyStatus: extraParamState.applyStatus, |
| | | }; |
| | | |
| | | let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { |
| | | let res = await taskUserServices.getArrangeTaskUsers(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | return res; |
| | |
| | | { |
| | | defaultExtraParams: { |
| | | searchWord: '', |
| | | orderInput: [{ property: 'id', order: OrderInputType.Desc }], |
| | | flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | arrangeStatus: '' as any as EnumTaskUserArrangeStatus, |
| | | applyStatus: '' as any as EnumGetArrangeTaskUsersQueryApplyStatus, |
| | | }, |
| | | queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], |
| | | columnsRenderProps: {}, |
| | | queryKey: ['taskUserServices/getArrangeTaskUsers'], |
| | | columnsRenderProps: { |
| | | gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson }, |
| | | arrangeStatus: { type: 'enum', valueEnum: EnumTaskUserArrangeStatusText }, |
| | | identity: { |
| | | formatter: (row: API.GetArrangeTaskUsersQueryResultItem) => { |
| | | return hiddenIDNumberForEnd4(row.identity); |
| | | }, |
| | | }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | function handleArrange(row) { |
| | | console.log('row: ', row); |
| | | async function handleArrange(row: API.GetArrangeTaskUsersQueryResultItem) { |
| | | try { |
| | | let res = await taskUserServices.setTaskUserArrange({ |
| | | enterpriseEmployeeId: row.id, |
| | | taskInfoId: id, |
| | | arrangeStatus: EnumTaskUserArrangeStatus.Complete, |
| | | }); |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | getList(paginationState.pageIndex); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | async function setTaskUserHire( |
| | | row: API.GetArrangeTaskUsersQueryResultItem, |
| | | hireStatus: EnumTaskUserHireStatus |
| | | ) { |
| | | try { |
| | | await Message.tipMessage(`确认要取消录用吗?`); |
| | | let params: API.SetTaskUserHireCommand = { |
| | | id: row.taskInfoUserId, |
| | | hireStatus: hireStatus, |
| | | }; |
| | | let res = await taskUserServices.setTaskUserHire(params); |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | getList(paginationState.pageIndex); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |