| | |
| | | <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'; |
| | | import { format } from '@/utils'; |
| | | import { Message } from '@bole-core/core'; |
| | | |
| | | defineOptions({ |
| | | name: 'OperationManageList', |
| | | }); |
| | | |
| | | const operationBtnMap: Record<string, OperationBtnType> = { |
| | | detailBtn: { emits: { onClick: (role) => goDetail(role) } }, |
| | | detailBtn: { emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row) } }, |
| | | recommendBtn: { |
| | | emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, |
| | | emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => setTaskInfoRecommendStatus(row) }, |
| | | extraProps: { |
| | | hide: (row) => row.status, |
| | | hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.Yes, |
| | | }, |
| | | }, |
| | | cancelRecommendBtn: { |
| | | emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, |
| | | props: { type: 'danger' }, |
| | | emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => setTaskInfoRecommendStatus(row) }, |
| | | extraProps: { |
| | | hide: (row) => !row.status, |
| | | hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.No, |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | } = 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, |
| | | beginTime: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), |
| | | endTime: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), |
| | | }; |
| | | 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: {}, |
| | | columnsRenderProps: { |
| | | billingMethod: { type: 'enum', valueEnum: EnumBillingMethodText }, |
| | | settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText }, |
| | | genderLimit: { type: 'enum', valueEnum: EnumUserGenderText }, |
| | | status: { type: 'enum', valueEnum: EnumTaskStatusText }, |
| | | releaseStatus: { type: 'enum', valueEnum: EnumTaskReleaseStatusText }, |
| | | checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText }, |
| | | settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText }, |
| | | beginTime: { type: 'date', format: 'YYYY-MM-DD' }, |
| | | endTime: { type: 'date', format: 'YYYY-MM-DD' }, |
| | | serviceFee: { type: 'money' }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | async function setAdvertiseOnShowStatus(row) { |
| | | async function setTaskInfoRecommendStatus(row: API.GetTaskInfosQueryResultItem) { |
| | | try { |
| | | await Message.tipMessage( |
| | | `确认要${row.recommendStatus === EnumTaskRecommendStatus.Yes ? '取消' : '推荐'}吗?` |
| | | ); |
| | | let params: API.SetTaskInfoRecommendStatusCommand = { |
| | | ids: [row.id], |
| | | recommendStatus: |
| | | row.recommendStatus === EnumTaskRecommendStatus.Yes |
| | | ? EnumTaskRecommendStatus.No |
| | | : EnumTaskRecommendStatus.Yes, |
| | | }; |
| | | let res = await taskServices.setTaskInfoRecommendStatus(params); |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | getList(paginationState.pageIndex); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |