From 2f2347d1dc116aab8fe0b1363d9f92e56a9ea062 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 07 十二月 2024 10:05:19 +0800
Subject: [PATCH] 1

---
 docker-compose/mysql/initdb/se_cloud_20241119.sql                                        |   25 +
 se-ui/src/api/system/taskCtrl.js                                                         |   44 +++
 se-modules/se-system/src/main/java/com/se/system/controller/SysStatusCtrlController.java |   14 
 se-ui/src/api/system/statusCtrl.js                                                       |   44 +++
 se-ui/src/views/system/taskCtrl/index.vue                                                |  319 ++++++++++++++++++++++
 docker-compose/mysql/initdb/se_cloud_20241204.sql                                        |   46 +++
 se-ui/src/views/system/statusCtrl/index.vue                                              |  305 +++++++++++++++++++++
 7 files changed, 790 insertions(+), 7 deletions(-)

diff --git a/docker-compose/mysql/initdb/se_cloud_20241119.sql b/docker-compose/mysql/initdb/se_cloud_20241119.sql
index 3ffedee..c9d6c1a 100644
--- a/docker-compose/mysql/initdb/se_cloud_20241119.sql
+++ b/docker-compose/mysql/initdb/se_cloud_20241119.sql
@@ -33,6 +33,31 @@
 insert into sys_soft (name, type, args) values ('se-system', 4, 'se-system');
 insert into sys_soft (name, type, args) values ('se-wgcloud', 4, 'se-wgcloud');
 
+
+-- 鑿滃崟 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('杞欢', '1', '8', 'soft', 'system/soft/index', 1, 0, 'C', '0', '0', 'system:soft:list', '#', 'admin', sysdate(), '', null, '杞欢鑿滃崟');
+
+-- 鎸夐挳鐖惰彍鍗旾D
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 鎸夐挳 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('杞欢鏌ヨ', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:soft:query',        '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('杞欢鏂板', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:soft:add',          '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('杞欢淇敼', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:soft:edit',         '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('杞欢鍒犻櫎', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:soft:remove',       '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('杞欢瀵煎嚭', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:soft:export',       '#', 'admin', sysdate(), '', null, '');
+
+update sys_menu set mark = 'sys' where menu_id >= @parentId;
 -- ----------------------------
 -- 02銆佺‖浠惰〃
 -- ----------------------------
diff --git a/docker-compose/mysql/initdb/se_cloud_20241204.sql b/docker-compose/mysql/initdb/se_cloud_20241204.sql
index 96764e5..531f55e 100644
--- a/docker-compose/mysql/initdb/se_cloud_20241204.sql
+++ b/docker-compose/mysql/initdb/se_cloud_20241204.sql
@@ -29,7 +29,30 @@
 ) engine=innodb auto_increment=1 comment = '鍒嗙郴缁熶换鍔℃帶鍒惰〃';
 select * from sys_task_ctrl order by task_id;
 
+-- 鑿滃崟 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('鍒嗙郴缁熶换鍔℃帶鍒�', '1', '10', 'taskCtrl', 'system/taskCtrl/index', 1, 0, 'C', '0', '0', 'system:taskCtrl:list', '#', 'admin', sysdate(), '', null, '鍒嗙郴缁熶换鍔℃帶鍒惰彍鍗�');
 
+-- 鎸夐挳鐖惰彍鍗旾D
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 鎸夐挳 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('鍒嗙郴缁熶换鍔℃帶鍒舵煡璇�', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:taskCtrl:query',        '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('鍒嗙郴缁熶换鍔℃帶鍒舵柊澧�', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:taskCtrl:add',          '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('鍒嗙郴缁熶换鍔℃帶鍒朵慨鏀�', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:taskCtrl:edit',         '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('鍒嗙郴缁熶换鍔℃帶鍒跺垹闄�', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:taskCtrl:remove',       '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('鍒嗙郴缁熶换鍔℃帶鍒跺鍑�', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:taskCtrl:export',       '#', 'admin', sysdate(), '', null, '');
+
+update sys_menu set mark = 'sys' where menu_id >= @parentId;
 -- ----------------------------
 -- 02銆佺郴缁熺姸鎬佺洃鎺ц〃
 -- ----------------------------
@@ -53,6 +76,29 @@
 
 insert into sys_status_ctrl (sys_name, ip, url, method, order_num) values ('鍒嗙郴缁�01', '127.0.0.1', 'http://localhost:8080/system/health', 'GET', 1);
 
+-- 鑿滃崟 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('绯荤粺鐘舵�佺洃鎺�', '1', '9', 'statusCtrl', 'system/statusCtrl/index', 1, 0, 'C', '0', '0', 'system:statusCtrl:list', '#', 'admin', sysdate(), '', null, '绯荤粺鐘舵�佺洃鎺ц彍鍗�');
 
+-- 鎸夐挳鐖惰彍鍗旾D
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 鎸夐挳 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('绯荤粺鐘舵�佺洃鎺ф煡璇�', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:statusCtrl:query',        '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('绯荤粺鐘舵�佺洃鎺ф柊澧�', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:statusCtrl:add',          '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('绯荤粺鐘舵�佺洃鎺т慨鏀�', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:statusCtrl:edit',         '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('绯荤粺鐘舵�佺洃鎺у垹闄�', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:statusCtrl:remove',       '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('绯荤粺鐘舵�佺洃鎺у鍑�', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:statusCtrl:export',       '#', 'admin', sysdate(), '', null, '');
+
+update sys_menu set mark = 'sys' where menu_id >= @parentId;
 -- ----------------------------
                                                                                                                                                                                
diff --git a/se-modules/se-system/src/main/java/com/se/system/controller/SysStatusCtrlController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysStatusCtrlController.java
index 7c14795..6382769 100644
--- a/se-modules/se-system/src/main/java/com/se/system/controller/SysStatusCtrlController.java
+++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysStatusCtrlController.java
@@ -29,7 +29,7 @@
  * @date 2024-12-07
  */
 @RestController
-@RequestMapping("/ctrl")
+@RequestMapping("/statusCtrl")
 public class SysStatusCtrlController extends BaseController
 {
     @Resource
@@ -38,7 +38,7 @@
     /**
      * 鏌ヨ绯荤粺鐘舵�佺洃鎺у垪琛�
      */
-    @RequiresPermissions("system:ctrl:list")
+    @RequiresPermissions("system:statusCtrl:list")
     @GetMapping("/list")
     public TableDataInfo list(SysStatusCtrl sysStatusCtrl)
     {
@@ -50,7 +50,7 @@
     /**
      * 瀵煎嚭绯荤粺鐘舵�佺洃鎺у垪琛�
      */
-    @RequiresPermissions("system:ctrl:export")
+    @RequiresPermissions("system:statusCtrl:export")
     @Log(title = "绯荤粺鐘舵�佺洃鎺�", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysStatusCtrl sysStatusCtrl)
@@ -63,7 +63,7 @@
     /**
      * 鑾峰彇绯荤粺鐘舵�佺洃鎺ц缁嗕俊鎭�
      */
-    @RequiresPermissions("system:ctrl:query")
+    @RequiresPermissions("system:statusCtrl:query")
     @GetMapping(value = "/{statusId}")
     public AjaxResult getInfo(@PathVariable("statusId") Long statusId)
     {
@@ -73,7 +73,7 @@
     /**
      * 鏂板绯荤粺鐘舵�佺洃鎺�
      */
-    @RequiresPermissions("system:ctrl:add")
+    @RequiresPermissions("system:statusCtrl:add")
     @Log(title = "绯荤粺鐘舵�佺洃鎺�", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody SysStatusCtrl sysStatusCtrl)
@@ -84,7 +84,7 @@
     /**
      * 淇敼绯荤粺鐘舵�佺洃鎺�
      */
-    @RequiresPermissions("system:ctrl:edit")
+    @RequiresPermissions("system:statusCtrl:edit")
     @Log(title = "绯荤粺鐘舵�佺洃鎺�", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody SysStatusCtrl sysStatusCtrl)
@@ -95,7 +95,7 @@
     /**
      * 鍒犻櫎绯荤粺鐘舵�佺洃鎺�
      */
-    @RequiresPermissions("system:ctrl:remove")
+    @RequiresPermissions("system:statusCtrl:remove")
     @Log(title = "绯荤粺鐘舵�佺洃鎺�", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{statusIds}")
     public AjaxResult remove(@PathVariable Long[] statusIds)
diff --git a/se-ui/src/api/system/statusCtrl.js b/se-ui/src/api/system/statusCtrl.js
new file mode 100644
index 0000000..c7b9f2a
--- /dev/null
+++ b/se-ui/src/api/system/statusCtrl.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ绯荤粺鐘舵�佺洃鎺у垪琛�
+export function listStatusCtrl(query) {
+  return request({
+    url: '/system/statusCtrl/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ绯荤粺鐘舵�佺洃鎺ц缁�
+export function getStatusCtrl(statusId) {
+  return request({
+    url: '/system/statusCtrl/' + statusId,
+    method: 'get'
+  })
+}
+
+// 鏂板绯荤粺鐘舵�佺洃鎺�
+export function addStatusCtrl(data) {
+  return request({
+    url: '/system/statusCtrl',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼绯荤粺鐘舵�佺洃鎺�
+export function updateStatusCtrl(data) {
+  return request({
+    url: '/system/statusCtrl',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎绯荤粺鐘舵�佺洃鎺�
+export function delStatusCtrl(statusId) {
+  return request({
+    url: '/system/statusCtrl/' + statusId,
+    method: 'delete'
+  })
+}
diff --git a/se-ui/src/api/system/taskCtrl.js b/se-ui/src/api/system/taskCtrl.js
new file mode 100644
index 0000000..a557741
--- /dev/null
+++ b/se-ui/src/api/system/taskCtrl.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鍒嗙郴缁熶换鍔℃帶鍒跺垪琛�
+export function listTaskCtrl(query) {
+  return request({
+    url: '/system/taskCtrl/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ鍒嗙郴缁熶换鍔℃帶鍒惰缁�
+export function getTaskCtrl(taskId) {
+  return request({
+    url: '/system/taskCtrl/' + taskId,
+    method: 'get'
+  })
+}
+
+// 鏂板鍒嗙郴缁熶换鍔℃帶鍒�
+export function addTaskCtrl(data) {
+  return request({
+    url: '/system/taskCtrl',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼鍒嗙郴缁熶换鍔℃帶鍒�
+export function updateTaskCtrl(data) {
+  return request({
+    url: '/system/taskCtrl',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎鍒嗙郴缁熶换鍔℃帶鍒�
+export function delTaskCtrl(taskId) {
+  return request({
+    url: '/system/taskCtrl/' + taskId,
+    method: 'delete'
+  })
+}
diff --git a/se-ui/src/views/system/statusCtrl/index.vue b/se-ui/src/views/system/statusCtrl/index.vue
new file mode 100644
index 0000000..ac48b9c
--- /dev/null
+++ b/se-ui/src/views/system/statusCtrl/index.vue
@@ -0,0 +1,305 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="鍚嶇О" prop="sysName">
+        <el-input
+          v-model="queryParams.sysName"
+          placeholder="璇疯緭鍏ュ悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="IP" prop="ip">
+        <el-input
+          v-model="queryParams.ip"
+          placeholder="璇疯緭鍏P"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="璇锋眰鏂规硶" prop="method">
+        <el-input
+          v-model="queryParams.method"
+          placeholder="璇疯緭鍏ヨ姹傛柟娉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鏄剧ず椤哄簭" prop="orderNum">
+        <el-input
+          v-model="queryParams.orderNum"
+          placeholder="璇疯緭鍏ユ樉绀洪『搴�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:statusCtrl:add']"
+        >鏂板</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:statusCtrl:edit']"
+        >淇敼</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:statusCtrl:remove']"
+        >鍒犻櫎</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:statusCtrl:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="statusCtrlList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="鐘舵�両D" align="center" prop="statusId" />
+      <el-table-column label="鍚嶇О" align="center" prop="sysName" />
+      <el-table-column label="IP" align="center" prop="ip" />
+      <el-table-column label="URL" align="center" prop="url" />
+      <el-table-column label="璇锋眰鏂规硶" align="center" prop="method" />
+      <el-table-column label="鏄剧ず椤哄簭" align="center" prop="orderNum" />
+      <el-table-column label="鐘舵��" align="center" prop="status" />
+      <el-table-column label="澶囨敞" align="center" prop="remark" />
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:statusCtrl:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:statusCtrl:remove']"
+          >鍒犻櫎</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 娣诲姞鎴栦慨鏀圭郴缁熺姸鎬佺洃鎺у璇濇 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="鍚嶇О" prop="sysName">
+          <el-input v-model="form.sysName" placeholder="璇疯緭鍏ュ悕绉�" />
+        </el-form-item>
+        <el-form-item label="IP" prop="ip">
+          <el-input v-model="form.ip" placeholder="璇疯緭鍏P" />
+        </el-form-item>
+        <el-form-item label="URL" prop="url">
+          <el-input v-model="form.url" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="璇锋眰鏂规硶" prop="method">
+          <el-input v-model="form.method" placeholder="璇疯緭鍏ヨ姹傛柟娉�" />
+        </el-form-item>
+        <el-form-item label="鏄剧ず椤哄簭" prop="orderNum">
+          <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ユ樉绀洪『搴�" />
+        </el-form-item>
+        <el-form-item label="澶囨敞" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listStatusCtrl, getStatusCtrl, delStatusCtrl, addStatusCtrl, updateStatusCtrl } from "@/api/system/statusCtrl";
+
+export default {
+  name: "StatusCtrl",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 绯荤粺鐘舵�佺洃鎺ц〃鏍兼暟鎹�
+      statusCtrlList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        sysName: null,
+        ip: null,
+        url: null,
+        method: null,
+        orderNum: null,
+        status: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ绯荤粺鐘舵�佺洃鎺у垪琛� */
+    getList() {
+      this.loading = true;
+      listStatusCtrl(this.queryParams).then(response => {
+        this.statusCtrlList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        statusId: null,
+        sysName: null,
+        ip: null,
+        url: null,
+        method: null,
+        orderNum: null,
+        status: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        remark: null
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.statusId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞绯荤粺鐘舵�佺洃鎺�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const statusId = row.statusId || this.ids
+      getStatusCtrl(statusId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼绯荤粺鐘舵�佺洃鎺�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.statusId != null) {
+            updateStatusCtrl(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addStatusCtrl(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const statusIds = row.statusId || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎绯荤粺鐘舵�佺洃鎺х紪鍙蜂负"' + statusIds + '"鐨勬暟鎹」锛�').then(function() {
+        return delStatusCtrl(statusIds);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('system/statusCtrl/export', {
+        ...this.queryParams
+      }, `statusCtrl_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/se-ui/src/views/system/taskCtrl/index.vue b/se-ui/src/views/system/taskCtrl/index.vue
new file mode 100644
index 0000000..1df5853
--- /dev/null
+++ b/se-ui/src/views/system/taskCtrl/index.vue
@@ -0,0 +1,319 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="浠诲姟ID" prop="prjId">
+        <el-input
+          v-model="queryParams.prjId"
+          placeholder="璇疯緭鍏ヤ换鍔D"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="浠诲姟鍚嶇О" prop="prjName">
+        <el-input
+          v-model="queryParams.prjName"
+          placeholder="璇疯緭鍏ヤ换鍔″悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鎯冲畾ID" prop="thinkId">
+        <el-input
+          v-model="queryParams.thinkId"
+          placeholder="璇疯緭鍏ユ兂瀹欼D"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鎯冲畾鍚嶇О" prop="thinkName">
+        <el-input
+          v-model="queryParams.thinkName"
+          placeholder="璇疯緭鍏ユ兂瀹氬悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鏄惁淇濆瓨" prop="isSave">
+        <el-input
+          v-model="queryParams.isSave"
+          placeholder="璇疯緭鍏ユ槸鍚︿繚瀛�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:taskCtrl:add']"
+        >鏂板</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:taskCtrl:edit']"
+        >淇敼</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:taskCtrl:remove']"
+        >鍒犻櫎</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:taskCtrl:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="taskCtrlList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="浠诲姟ID" align="center" prop="taskId" />
+      <el-table-column label="浠诲姟ID" align="center" prop="prjId" />
+      <el-table-column label="浠诲姟鍚嶇О" align="center" prop="prjName" />
+      <el-table-column label="鎯冲畾ID" align="center" prop="thinkId" />
+      <el-table-column label="鎯冲畾鍚嶇О" align="center" prop="thinkName" />
+      <el-table-column label="鏄惁淇濆瓨" align="center" prop="isSave" />
+      <el-table-column label="鑺傜偣" align="center" prop="node" />
+      <el-table-column label="鐘舵��" align="center" prop="status" />
+      <el-table-column label="澶囨敞" align="center" prop="remark" />
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:taskCtrl:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:taskCtrl:remove']"
+          >鍒犻櫎</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 娣诲姞鎴栦慨鏀瑰垎绯荤粺浠诲姟鎺у埗瀵硅瘽妗� -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="浠诲姟ID" prop="prjId">
+          <el-input v-model="form.prjId" placeholder="璇疯緭鍏ヤ换鍔D" />
+        </el-form-item>
+        <el-form-item label="浠诲姟鍚嶇О" prop="prjName">
+          <el-input v-model="form.prjName" placeholder="璇疯緭鍏ヤ换鍔″悕绉�" />
+        </el-form-item>
+        <el-form-item label="鎯冲畾ID" prop="thinkId">
+          <el-input v-model="form.thinkId" placeholder="璇疯緭鍏ユ兂瀹欼D" />
+        </el-form-item>
+        <el-form-item label="鎯冲畾鍚嶇О" prop="thinkName">
+          <el-input v-model="form.thinkName" placeholder="璇疯緭鍏ユ兂瀹氬悕绉�" />
+        </el-form-item>
+        <el-form-item label="鏄惁淇濆瓨" prop="isSave">
+          <el-input v-model="form.isSave" placeholder="璇疯緭鍏ユ槸鍚︿繚瀛�" />
+        </el-form-item>
+        <el-form-item label="鑺傜偣" prop="node">
+          <el-input v-model="form.node" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="澶囨敞" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listTaskCtrl, getTaskCtrl, delTaskCtrl, addTaskCtrl, updateTaskCtrl } from "@/api/system/taskCtrl";
+
+export default {
+  name: "TaskCtrl",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鍒嗙郴缁熶换鍔℃帶鍒惰〃鏍兼暟鎹�
+      taskCtrlList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        prjId: null,
+        prjName: null,
+        thinkId: null,
+        thinkName: null,
+        isSave: null,
+        node: null,
+        status: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ鍒嗙郴缁熶换鍔℃帶鍒跺垪琛� */
+    getList() {
+      this.loading = true;
+      listTaskCtrl(this.queryParams).then(response => {
+        this.taskCtrlList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        taskId: null,
+        prjId: null,
+        prjName: null,
+        thinkId: null,
+        thinkName: null,
+        isSave: null,
+        node: null,
+        status: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        remark: null
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.taskId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鍒嗙郴缁熶换鍔℃帶鍒�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const taskId = row.taskId || this.ids
+      getTaskCtrl(taskId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼鍒嗙郴缁熶换鍔℃帶鍒�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.taskId != null) {
+            updateTaskCtrl(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addTaskCtrl(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const taskIds = row.taskId || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鍒嗙郴缁熶换鍔℃帶鍒剁紪鍙蜂负"' + taskIds + '"鐨勬暟鎹」锛�').then(function() {
+        return delTaskCtrl(taskIds);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('system/taskCtrl/export', {
+        ...this.queryParams
+      }, `taskCtrl_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

--
Gitblit v1.9.3