Quellcode durchsuchen

调度任务增加完成按钮

wangzhengguang vor 3 Monaten
Ursprung
Commit
e5bde79405
1 geänderte Dateien mit 66 neuen und 5 gelöschten Zeilen
  1. 66 5
      src/components/TransferTask.vue

+ 66 - 5
src/components/TransferTask.vue

@@ -60,13 +60,26 @@
           <template #default>
             <van-tag v-if="record.success === true" color="#07c160">成功</van-tag>
             <van-tag v-if="record.executeStatus === '未开始'" color="#07c160">未开始</van-tag>
-            <van-tag v-else color="#ff4d4f">失败</van-tag>
+            <van-tag v-if="record.success === false && record.executeStatus !== '未开始'" color="#ff4d4f">失败</van-tag>
           </template>
         </van-cell>
-        <div class="task-operations">
-          <van-tag v-if="record.executeStatus === '已完成'" color="#07c160">已完成</van-tag>
-          <van-button v-if="record.executeStatus === '执行中'" type="danger" size="small" @click="cancelTask(record)">取消任务</van-button>
-          <van-button v-if="record.executeStatus === '未开始'" type="primary" size="small" @click="executeTask(record)">执行</van-button>
+        <div class="task-operations" style="display: flex; align-items: center;">
+          <!-- 固定在左侧的按钮 -->
+          <van-button
+            v-if="record.executeStatus !== '已完成'"
+            type="primary"
+            size="small"
+            @click="completedWorkByManual(record)"
+          >
+            完成
+          </van-button>
+
+          <!-- 右侧自动排列的按钮 -->
+          <div style="margin-left: auto; display: flex; gap: 8px;">
+            <van-tag v-if="record.executeStatus === '已完成'" color="#07c160">已完成</van-tag>
+            <van-button v-if="record.executeStatus === '执行中'" type="danger" size="small" @click="cancelTask(record)">取消任务</van-button>
+            <van-button v-if="record.executeStatus === '未开始'" type="primary" size="small" @click="executeTask(record)">执行</van-button>
+          </div>
         </div>
       </van-cell-group>
     </van-list>
@@ -202,6 +215,33 @@ const executeTask = async record => {
   }
 };
 
+/**
+ * 手动完成任务
+ * @param record
+ * @returns {Promise<void>}
+ */
+const completedWorkByManual = async record => {
+  executing.value = true;
+  try {
+    await completedWork(record.schedulingTasksId);
+    await searchDatas();
+    showToast({
+      type: 'success',
+      message: '执行成功!',
+      duration: 2000,
+    });
+  } catch (error) {
+    console.log('error',error);
+    showToast({
+      type: 'warning',
+      message: error,
+      duration: 3000,
+    });
+  } finally {
+    executing.value = false;
+  }
+};
+
 // 取消任务
 const cancelTask = async record => {
   executing.value = true;
@@ -365,6 +405,27 @@ const executeTaskById = id => {
   );
 };
 
+/**
+ * 手动完成任务
+ * @param id
+ * @returns {Promise<unknown>}
+ */
+const completedWork = id => {
+  const url = `/api/SchedulingTasksResource/completedWorkByManual?schedulingTasksId=${id}`;
+  return ajaxApiGet(url).then(
+    success => {
+      const { errorCode, errorMessage } = success;
+      if (errorCode !== 0) {
+        return Promise.reject(errorMessage);
+      }
+    },
+    error => {
+      processException(error);
+      return Promise.reject(error);
+    },
+  );
+};
+
 // 取消任务Api
 const cancelTaskById = id => {
   const url = `/api/SchedulingTasksResource/cancelWorkById?schedulingTasksId=${id}`;