|  |  |  | 
|---|
|  |  |  | <AppContainer> | 
|---|
|  |  |  | <ProTableQueryFilterBar @on-reset="reset"> | 
|---|
|  |  |  | <template #query> | 
|---|
|  |  |  | <QueryFilterItem> | 
|---|
|  |  |  | <FieldSelect | 
|---|
|  |  |  | v-model="extraParamState.pageType" | 
|---|
|  |  |  | placeholder="广告页面" | 
|---|
|  |  |  | :value-enum="FlexWorkerEleSignEnumText" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem tip-content="发布状态"> | 
|---|
|  |  |  | <FieldRadio | 
|---|
|  |  |  | v-model="extraParamState.status" | 
|---|
|  |  |  | :value-enum="FlexWorkerEleSignEnumText" | 
|---|
|  |  |  | v-model="extraParamState.releaseStatus" | 
|---|
|  |  |  | :value-enum="EnumTaskReleaseStatusText" | 
|---|
|  |  |  | buttonStyle | 
|---|
|  |  |  | showAllBtn | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem tip-content="推荐状态"> | 
|---|
|  |  |  | <FieldRadio | 
|---|
|  |  |  | v-model="extraParamState.status" | 
|---|
|  |  |  | :value-enum="FlexWorkerEleSignEnumText" | 
|---|
|  |  |  | 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" | 
|---|
|  |  |  | 
|---|
|  |  |  | QueryFilterItem, | 
|---|
|  |  |  | useTable, | 
|---|
|  |  |  | FieldDatePicker, | 
|---|
|  |  |  | FieldSelect, | 
|---|
|  |  |  | FieldRadio, | 
|---|
|  |  |  | } from '@bole-core/components'; | 
|---|
|  |  |  | import { useAccess } from '@/hooks'; | 
|---|
|  |  |  | import { FlexWorkerEleSignEnumText } from '@/constants'; | 
|---|
|  |  |  | import { ModelValueType } from 'element-plus'; | 
|---|
|  |  |  | import { OrderInputType } from '@bole-core/core'; | 
|---|
|  |  |  | 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) } }, | 
|---|
|  |  |  | takeOnBtn: { | 
|---|
|  |  |  | emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, | 
|---|
|  |  |  | detailBtn: { emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row) } }, | 
|---|
|  |  |  | recommendBtn: { | 
|---|
|  |  |  | emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => setTaskInfoRecommendStatus(row) }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: (row) => row.status, | 
|---|
|  |  |  | hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.Yes, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | takeDownBtn: { | 
|---|
|  |  |  | emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, | 
|---|
|  |  |  | props: { type: 'danger' }, | 
|---|
|  |  |  | cancelRecommendBtn: { | 
|---|
|  |  |  | 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.GetUserClientForBackInput = { | 
|---|
|  |  |  | 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 flexEnterpriseWokerServices.getUserClientList(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, | 
|---|
|  |  |  | orderInput: [{ property: 'sort', order: OrderInputType.Asc }], | 
|---|
|  |  |  | keywords: '', | 
|---|
|  |  |  | releaseStatus: '' as any as EnumTaskReleaseStatus, | 
|---|
|  |  |  | recommendStatus: '' as any as EnumTaskRecommendStatus, | 
|---|
|  |  |  | time: [] as unknown as ModelValueType, | 
|---|
|  |  |  | orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | columnsRenderProps: {}, | 
|---|
|  |  |  | columnPropsMap: ['advertiseBeginDate', 'advertiseEndDate'], | 
|---|
|  |  |  | 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' }, | 
|---|
|  |  |  | createdTime: { type: 'date', format: 'YYYY-MM-DD' }, | 
|---|
|  |  |  | endTime: { type: 'date', format: 'YYYY-MM-DD' }, | 
|---|
|  |  |  | serviceFee: { | 
|---|
|  |  |  | type: 'money', | 
|---|
|  |  |  | formatter: (row) => { | 
|---|
|  |  |  | return row.billingMethod === EnumBillingMethod.Face | 
|---|
|  |  |  | ? '' | 
|---|
|  |  |  | : `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goDetail(row) { | 
|---|
|  |  |  | router.push({ name: 'TaskDetail', params: { id: row?.id ?? '' } }); | 
|---|
|  |  |  | router.push({ name: 'TaskManageDetail', params: { id: row?.id ?? '' } }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|