1
13693261870
2024-12-07 2f2347d1dc116aab8fe0b1363d9f92e56a9ea062
1
已添加4个文件
已修改3个文件
797 ■■■■■ 文件已修改
docker-compose/mysql/initdb/se_cloud_20241119.sql 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docker-compose/mysql/initdb/se_cloud_20241204.sql 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-modules/se-system/src/main/java/com/se/system/controller/SysStatusCtrlController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-ui/src/api/system/statusCtrl.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-ui/src/api/system/taskCtrl.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-ui/src/views/system/statusCtrl/index.vue 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-ui/src/views/system/taskCtrl/index.vue 319 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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, '软件菜单');
-- æŒ‰é’®çˆ¶èœå•ID
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、硬件表
-- ----------------------------
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, '分系统任务控制菜单');
-- æŒ‰é’®çˆ¶èœå•ID
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, '系统状态监控菜单');
-- æŒ‰é’®çˆ¶èœå•ID
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;
-- ----------------------------
                                                                                                                                                                               
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)
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'
  })
}
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'
  })
}
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="请输入IP"
          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="状态ID" 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="请输入IP" />
        </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>
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="请输入任务ID"
          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="请输入想定ID"
          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="请输入任务ID" />
        </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="请输入想定ID" />
        </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>