From d01295c254063b3349a86a4474e04a62b284bd19 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 24 三月 2026 16:26:07 +0800
Subject: [PATCH] 一些配置
---
Code/WCS/WIDESEAWCS_Client/src/views/quartzJob/scheduler.vue | 136 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 136 insertions(+), 0 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Client/src/views/quartzJob/scheduler.vue b/Code/WCS/WIDESEAWCS_Client/src/views/quartzJob/scheduler.vue
new file mode 100644
index 0000000..479100f
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_Client/src/views/quartzJob/scheduler.vue
@@ -0,0 +1,136 @@
+<template>
+ <div class="scheduler-page">
+ <el-card shadow="never" class="card-item">
+ <template #header>
+ <span>璋冨害鏈嶅姟鎺у埗</span>
+ </template>
+ <div class="button-row">
+ <el-button type="success" @click="handleSchedulerAction('StartSchedule')">鍚姩璋冨害鏈嶅姟</el-button>
+ <el-button type="warning" @click="handleSchedulerAction('StopSchedule')">鍋滄璋冨害鏈嶅姟</el-button>
+ </div>
+ </el-card>
+
+ <el-card shadow="never" class="card-item">
+ <template #header>
+ <span>浠诲姟璋冨害鎿嶄綔</span>
+ </template>
+ <el-form :model="jobForm" label-width="110px" class="form-wrap">
+ <el-row :gutter="16">
+ <el-col :span="8">
+ <el-form-item label="浠诲姟鍚嶇О">
+ <el-input v-model="jobForm.name" placeholder="璇疯緭鍏ヤ换鍔″悕绉�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="浠诲姟鍒嗙粍">
+ <el-input v-model="jobForm.jobGroup" placeholder="璇疯緭鍏ヤ换鍔″垎缁�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎵ц绫诲悕">
+ <el-input v-model="jobForm.className" placeholder="璇疯緭鍏ユ墽琛岀被鍚�" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <div class="button-row">
+ <el-button type="primary" @click="handleSchedulerAction('PauseJob')">鏆傚仠浠诲姟</el-button>
+ <el-button type="primary" @click="handleSchedulerAction('ResumeJob')">鎭㈠浠诲姟</el-button>
+ <el-button type="primary" @click="handleSchedulerAction('ExecuteJob')">绔嬪嵆鎵ц</el-button>
+ <el-button type="danger" @click="handleSchedulerAction('DeleteScheduleJob')">鍒犻櫎浠诲姟</el-button>
+ </div>
+ </el-card>
+ </div>
+</template>
+
+<script>
+import { defineComponent, ref } from "vue";
+import { ElMessage } from "element-plus";
+import http from "@/api/http";
+
+export default defineComponent({
+ setup() {
+ const jobForm = ref({
+ name: "",
+ jobGroup: "",
+ className: "",
+ assemblyName: "",
+ intervalSecond: 0,
+ beginTime: "",
+ endTime: "",
+ remark: "",
+ });
+
+ /**
+ * 鏂规硶鐩殑锛氭牎楠屼换鍔$骇璋冨害鎿嶄綔鎵�闇�鍙傛暟锛岄伩鍏嶆彁浜ゆ棤鏁堣姹傘��
+ * 鍙傛暟鍚箟锛氭棤锛堢洿鎺ヨ鍙栧綋鍓� jobForm锛夈��
+ * 杩斿洖鍊硷細true 琛ㄧず鏍¢獙閫氳繃锛沠alse 琛ㄧず鏍¢獙澶辫触骞跺脊鍑烘彁绀恒��
+ * 寮傚父澶勭悊锛氭湰鍦版牎楠屼笉鎶涘紓甯革紝閫氳繃娑堟伅鎻愮ず寮曞鐢ㄦ埛琛ュ叏鍏抽敭瀛楁銆�
+ */
+ const validateJobPayload = () => {
+ if (!jobForm.value.name || !jobForm.value.jobGroup || !jobForm.value.className) {
+ ElMessage.error("璇峰厛濉啓浠诲姟鍚嶇О銆佷换鍔″垎缁勩�佹墽琛岀被鍚�");
+ return false;
+ }
+ return true;
+ };
+
+ /**
+ * 鏂规硶鐩殑锛氱粺涓�澶勭悊璋冨害鎺у埗璇锋眰锛屽吋瀹� GET 涓� POST 涓ょ被鎺ュ彛銆�
+ * 鍙傛暟鍚箟锛歛ction 涓鸿皟搴﹀姩浣滃悕绉帮紝瀵瑰簲鍚庣 api/Scheduler/{action}銆�
+ * 杩斿洖鍊硷細Promise<void>锛屾墽琛屽畬鎴愬悗閫氳繃娑堟伅鎻愮ず缁撴灉銆�
+ * 鍏抽敭閫昏緫锛�
+ * 1. 鍏ㄥ眬鍔ㄤ綔锛堝惎鍔�/鍋滄锛夎蛋 GET銆�
+ * 2. 浠诲姟鍔ㄤ綔锛堟殏鍋�/鎭㈠/鎵ц/鍒犻櫎锛夎蛋 POST锛屽苟鎻愪氦 jobForm銆�
+ * 3. 鎺ュ彛杩斿洖 status=false 鏃舵彁绀哄悗绔� message銆�
+ * 寮傚父澶勭悊锛氫娇鐢� try-catch 鎹曡幏璇锋眰寮傚父骞朵繚鐣欓敊璇笂涓嬫枃杈撳嚭銆�
+ */
+ const handleSchedulerAction = async (action) => {
+ try {
+ const isGlobalAction = action === "StartSchedule" || action === "StopSchedule";
+ if (!isGlobalAction && !validateJobPayload()) {
+ return;
+ }
+
+ let result;
+ if (isGlobalAction) {
+ result = await http.get(`/api/Scheduler/${action}`, {}, true);
+ } else {
+ result = await http.post(`/api/Scheduler/${action}`, jobForm.value, true);
+ }
+
+ if (result && result.status) {
+ ElMessage.success(result.message || "鎿嶄綔鎴愬姛");
+ return;
+ }
+
+ ElMessage.error((result && result.message) || "鎿嶄綔澶辫触");
+ } catch (error) {
+ console.error("璋冨害璇锋眰寮傚父", { action, jobForm: jobForm.value, error });
+ ElMessage.error("璋冨害璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯");
+ }
+ };
+
+ return {
+ jobForm,
+ handleSchedulerAction,
+ };
+ },
+});
+</script>
+
+<style scoped>
+.scheduler-page {
+ padding: 12px;
+}
+
+.card-item {
+ margin-bottom: 12px;
+}
+
+.button-row {
+ display: flex;
+ gap: 10px;
+ flex-wrap: wrap;
+}
+</style>
--
Gitblit v1.9.3