|
|
@@ -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}`;
|