|  |  | 
 |  |  |         <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, | 
 |  |  |       orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }], | 
 |  |  |       keywords: '', | 
 |  |  |       releaseStatus: '' as any as EnumTaskReleaseStatus, | 
 |  |  |       recommendStatus: '' as any as EnumTaskRecommendStatus, | 
 |  |  |       time: [] as unknown as ModelValueType, | 
 |  |  |       orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }], | 
 |  |  |     }, | 
 |  |  |     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' }, | 
 |  |  |       createdTime: { type: 'date', format: 'YYYY-MM-DD' }, | 
 |  |  |       endTime: { type: 'date', format: 'YYYY-MM-DD' }, | 
 |  |  |       serviceFee: { | 
 |  |  |         type: 'money', | 
 |  |  |         formatter: (row) => { | 
 |  |  |           return `${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) {} | 
 |  |  | } | 
 |  |  |  |