From 801e83de3caae9a44c50c7fd627728dd3a95ec75 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 08 八月 2025 15:12:53 +0800
Subject: [PATCH] feat: 任务

---
 src/views/TaskManage/TaskManageList.vue |   97 +++++++++++++++++++++++++++++-------------------
 1 files changed, 58 insertions(+), 39 deletions(-)

diff --git a/src/views/TaskManage/TaskManageList.vue b/src/views/TaskManage/TaskManageList.vue
index 3be9206..717e553 100644
--- a/src/views/TaskManage/TaskManageList.vue
+++ b/src/views/TaskManage/TaskManageList.vue
@@ -3,19 +3,10 @@
     <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()"
@@ -23,8 +14,8 @@
           </QueryFilterItem>
           <QueryFilterItem tip-content="鎺ㄨ崘鐘舵��">
             <FieldRadio
-              v-model="extraParamState.status"
-              :value-enum="FlexWorkerEleSignEnumText"
+              v-model="extraParamState.recommendStatus"
+              :value-enum="EnumTaskRecommendStatusText"
               buttonStyle
               showAllBtn
               @change="getList()"
@@ -32,7 +23,7 @@
           </QueryFilterItem>
           <QueryFilterItem tip-content="鍙戝竷鏃堕棿">
             <FieldDatePicker
-              v-model="extraParamState.beginDate"
+              v-model="extraParamState.time"
               type="daterange"
               range-separator="~"
               start-placeholder="寮�濮嬫棩鏈�"
@@ -43,7 +34,7 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <SearchInput
-              v-model="extraParamState.keyword"
+              v-model="extraParamState.keywords"
               style="width: 260px"
               placeholder="浠诲姟鍚嶇О"
               @on-click-search="getList"
@@ -69,31 +60,31 @@
   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,
     },
   },
 };
@@ -123,15 +114,19 @@
 } = 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;
@@ -139,24 +134,48 @@
   },
   {
     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: 'id', order: EnumPagedListOrder.Asc }],
     },
-    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' },
+      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) {}
 }
 
 function goDetail(row) {
-  router.push({ name: 'TaskDetail', params: { id: row?.id ?? '' } });
+  router.push({ name: 'TaskManageDetail', params: { id: row?.id ?? '' } });
 }
 </script>

--
Gitblit v1.9.1