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

---
 src/views/EmploymentManage/EmploymentManage.vue |  122 ++++++++++++++++++++++++----------------
 1 files changed, 74 insertions(+), 48 deletions(-)

diff --git a/src/views/EmploymentManage/EmploymentManage.vue b/src/views/EmploymentManage/EmploymentManage.vue
index b23d4e1..3750b03 100644
--- a/src/views/EmploymentManage/EmploymentManage.vue
+++ b/src/views/EmploymentManage/EmploymentManage.vue
@@ -3,49 +3,41 @@
     <AppContainer>
       <ProTableQueryFilterBar @on-reset="reset">
         <template #query>
-          <QueryFilterItem tip-content="褰曠敤鐘舵��">
+          <QueryFilterItem tip-content="浠诲姟鐘舵��">
             <FieldRadio
-              v-model="extraParamState.flexEnterpriseSettingStatus"
-              :value-enum="[
-                { label: '宸插畨鎺�', value: 1 },
-                { label: '寰呭畨鎺�', value: 0 },
-              ]"
+              v-model="extraParamState.status"
+              :value-enum="EnumTaskStatusText"
               buttonStyle
               showAllBtn
               @change="getList()"
             />
           </QueryFilterItem>
-          <QueryFilterItem tip-content="瀹炲悕鐘舵��">
+          <QueryFilterItem tip-content="鍙戝竷鐘舵��">
             <FieldRadio
-              v-model="extraParamState.flexEnterpriseSettingStatus"
-              :value-enum="[
-                { label: '鍙戝竷涓�', value: 1 },
-                { label: '宸插仠姝�', value: 0 },
-              ]"
+              v-model="extraParamState.releaseStatus"
+              :value-enum="EnumTaskReleaseStatusText"
               buttonStyle
               showAllBtn
               @change="getList()"
             />
           </QueryFilterItem>
-          <QueryFilterItem>
+          <QueryFilterItem tip-content="鍙戝竷鏃堕棿">
             <FieldDatePicker
-              v-model="extraParamState.flexEnterpriseSettingStatus"
+              v-model="extraParamState.time"
               type="daterange"
               range-separator="~"
-              start-placeholder="璧峰鏃ユ湡"
-              end-placeholder="鎴鏃ユ湡"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
               clearable
               @change="getList()"
-              tooltipContent="鍙戝竷鏃堕棿"
             ></FieldDatePicker>
           </QueryFilterItem>
           <QueryFilterItem>
             <SearchInput
-              v-model="extraParamState.searchWord"
-              style="width: 250px"
+              v-model="extraParamState.keywords"
+              style="width: 260px"
               placeholder="浠诲姟鍚嶇О"
               @on-click-search="getList"
-              @keyup.enter="getList()"
             >
             </SearchInput>
           </QueryFilterItem>
@@ -59,8 +51,10 @@
         :columns="EmploymentManageColumns"
         :operationBtns="operationBtns"
       >
-        <template #signNum="{ row }">
-          <el-button link type="primary" @click="goSignList(row)">{{ row.signNum || 0 }}</el-button>
+        <template #userCount="{ row }">
+          <el-button link type="primary" @click="goSignList(row)">{{
+            row.userCount || 0
+          }}</el-button>
         </template>
       </ProTableV2>
     </AppContainer>
@@ -80,11 +74,13 @@
   FieldRadio,
   defineOperationBtns,
 } from '@bole-core/components';
-import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
 import { EmploymentManageColumns } from './constants';
-import { FlexEnterpriseSettingStatus, Gender } from '@/constants';
-import { OrderInputType } from '@bole-core/core';
+import { EnumTaskStatusText, EnumTaskReleaseStatusText } from '@/constants';
 import { useGlobalEventContext } from '@/hooks';
+import * as taskServices from '@/services/api/task';
+import { format } from '@/utils';
+import { ModelValueType } from 'element-plus';
+import { Message } from '@bole-core/core';
 
 defineOptions({
   name: 'EmploymentManageList',
@@ -106,7 +102,7 @@
       name: '璇︽儏',
     },
     emits: {
-      onClick: (role) => goDetail(role),
+      onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
     },
   },
   {
@@ -115,10 +111,12 @@
       name: '鍙戝竷',
     },
     emits: {
-      onClick: (role) => handlePublish(role),
+      onClick: (row: API.GetTaskInfosQueryResultItem) =>
+        setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess),
     },
     extraProps: {
-      hide: (row) => false,
+      hide: (row: API.GetTaskInfosQueryResultItem) =>
+        row.releaseStatus === EnumTaskReleaseStatus.InProcess,
     },
   },
   {
@@ -127,10 +125,12 @@
       name: '鍋滄鍙戝竷',
     },
     emits: {
-      onClick: (role) => handleUnPublish(role),
+      onClick: (row: API.GetTaskInfosQueryResultItem) =>
+        setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
     },
     extraProps: {
-      hide: (row) => false,
+      hide: (row: API.GetTaskInfosQueryResultItem) =>
+        row.releaseStatus === EnumTaskReleaseStatus.Stopped,
     },
   },
   {
@@ -139,7 +139,7 @@
       name: '瀹夋帓',
     },
     emits: {
-      onClick: (role) => handleArrange(role),
+      onClick: (row: API.GetTaskInfosQueryResultItem) => handleArrange(row),
     },
   },
 ]);
@@ -176,17 +176,20 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetFlexEnterpriseInput = {
+      let params: API.GetTaskInfosQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
-        flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
-        searchWord: extraParamState.searchWord,
+        keywords: extraParamState.keywords,
+        status: extraParamState.status,
+        releaseStatus: extraParamState.releaseStatus,
+        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 flexEnterpriseServices.getFlexEnterpriseList(params, {
+      let res = await taskServices.getTaskInfos(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -196,23 +199,46 @@
   },
   {
     defaultExtraParams: {
-      searchWord: '',
-      orderInput: [{ property: 'id', order: OrderInputType.Desc }],
+      keywords: '',
+      status: '' as any as EnumTaskStatus,
+      releaseStatus: '' as any as EnumTaskReleaseStatus,
+      time: [] as unknown as ModelValueType,
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus,
     },
-    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
-    columnsRenderProps: {},
+    queryKey: ['taskServices/getTaskInfos'],
+    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 },
+      beginTime: { type: 'date', format: 'YYYY-MM-DD' },
+      endTime: { type: 'date', format: 'YYYY-MM-DD' },
+      serviceFee: { type: 'money' },
+    },
   }
 );
 
-function handlePublish(row) {
-  console.log(row);
-}
-function handleUnPublish(row) {
-  console.log(row);
+async function setTaskInfoReleaseStatus(
+  row: API.GetTaskInfosQueryResultItem,
+  releaseStatus: EnumTaskReleaseStatus
+) {
+  try {
+    await Message.tipMessage(`纭瑕�${EnumTaskReleaseStatusTextForTip[releaseStatus]}鍚楋紵`);
+    let params: API.SetTaskInfoReleaseStatusCommand = {
+      ids: [row.id],
+      releaseStatus: releaseStatus,
+    };
+    let res = await taskServices.setTaskInfoReleaseStatus(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
 }
 
-function handleArrange(row) {
+function handleArrange(row: API.GetTaskInfosQueryResultItem) {
   router.push({
     name: 'EmploymentManageArrange',
     params: {
@@ -220,7 +246,7 @@
     },
   });
 }
-function goAddOrEdit(row?) {
+function goAddOrEdit(row?: API.GetTaskInfosQueryResultItem) {
   router.push({
     name: 'AddOrEditEmployment',
     params: {
@@ -228,7 +254,7 @@
     },
   });
 }
-function goDetail(row) {
+function goDetail(row: API.GetTaskInfosQueryResultItem) {
   router.push({
     name: 'EmploymentManageDetail',
     params: {
@@ -237,7 +263,7 @@
   });
 }
 
-function goSignList(row) {
+function goSignList(row: API.GetTaskInfosQueryResultItem) {
   router.push({
     name: 'EmploymentSignList',
     params: {

--
Gitblit v1.9.1