wangting
2024-12-27 bce5128f2b33735774e0777b00bca4ca4a61962a
Merge remote-tracking branch 'origin/master'
已修改5个文件
187 ■■■■ 文件已修改
Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js
@@ -17,6 +17,14 @@
  });
}
// 获取当前用户在线人数信息
export function getOnlinUsers() {
  return request({
    url: "/api/hmSysModConfigController/getOnlinUsers",
    method: "get",
  });
}
// 配置项查询
export function getAppConfigDetailsByID(params) {
  return request({
Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
@@ -69,15 +69,37 @@
          <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">删除
          </el-button>
        </div>
        <el-form ref="form" :model="form" label-width="85px" size="small" style="max-height: calc(100vh - 200px);overflow: auto;">
        <el-form ref="form" :model="form" label-width="100px" size="small"
                 style="max-height: calc(100vh - 200px);overflow: auto;">
          <span v-if="form.category !== 1">
            <el-form-item label="模块名:">
            <el-form-item>
               <span slot="label" style="display:inline-block;">
                菜单标识:
                 <el-tooltip class="item" content="请输入英文字符,并保证唯一性!" effect="dark" placement="top-start">
                   <i class='el-icon-star-on' style="color: #F56C6C"/>
                </el-tooltip>
               </span>
              <el-input v-model="form.alias" :disabled="!editStatus && !addStatus"
                        placeholder="请输入英文字符,并保证唯一性!"></el-input>
            </el-form-item>
               <el-form-item>
               <span slot="label" style="display:inline-block;">
                模块名:
                 <i class='el-icon-star-on' style="color: #F56C6C"/>
               </span>
            <el-input v-model="form.name" :disabled="!editStatus && !addStatus" placeholder="请输入模块名"></el-input>
          </el-form-item>
          <el-form-item label="模块别名:">
            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="模块别名用来记录日志使用"></el-input>
          </el-form-item>
                <el-form-item v-if="form.functionType === 0" label="C/S:">
            </el-form-item>
            <el-form-item>
               <span slot="label" style="display:inline-block;">
                序号:
                  <el-tooltip class="item" content="数字,描述该模块在其父模块下的显示顺序" effect="dark" placement="top-start">
                   <i class='el-icon-star-on' style="color: #F56C6C"/>
                </el-tooltip>
               </span>
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
                      placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
            </el-form-item>
            <el-form-item v-if="form.functionType === 0" label="C/S:">
            <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入C/S路径"
                      type="textarea"></el-input>
          </el-form-item>
@@ -88,10 +110,6 @@
          <el-form-item v-if="form.functionType === 0" label=".NET:">
            <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2"
                      placeholder="请输入.NET" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="序号:">
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
                      placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
          </el-form-item>
          <el-form-item label="图标:">
              <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="请选择图标">
@@ -311,6 +329,10 @@
        this.$message.error('模块名不能为空');
        return
      }
      if (!this.form.alias) {
        this.$message.error('菜单标识不能为空');
        return
      }
      if (this.form.name.length > 128) {
        this.$message.error('模块名长度不能超过128!');
        return
@@ -355,6 +377,10 @@
        this.$message.error('模块名不能为空');
        return
      }
      if (!this.form.alias) {
        this.$message.error('菜单标识不能为空');
        return
      }
      if (this.form.name.length > 128) {
        this.$message.error('模块名长度超过128!');
        return
Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
@@ -69,18 +69,39 @@
          <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">删除
          </el-button>
        </div>
        <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 200px);overflow: auto;">
        <el-form ref="form" :model="form" label-width="100px" style="max-height: calc(100vh - 200px);overflow: auto;">
          <span v-if="form.category !== 1">
            <el-form-item label="模块名:">
            <el-form-item>
               <span slot="label" style="display:inline-block;">
                菜单标识:
                 <el-tooltip class="item" effect="dark" content="请输入英文字符,并保证唯一性!" placement="top-start">
                   <i class='el-icon-star-on' style="color: #F56C6C"/>
                </el-tooltip>
               </span>
              <el-input v-model="form.alias" :disabled="!editStatus && !addStatus"
                      placeholder="请输入英文字符,并保证唯一性!"></el-input>
            </el-form-item>
            <el-form-item>
               <span slot="label" style="display:inline-block;">
                模块名:
                 <i class='el-icon-star-on' style="color: #F56C6C"/>
               </span>
            <el-input v-model="form.name" :disabled="!editStatus && !addStatus" placeholder="请输入模块名"></el-input>
          </el-form-item>
          <el-form-item label="模块别名:">
            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="模块别名用来记录日志使用"></el-input>
          </el-form-item>
                <el-form-item v-if="form.functionType === 0" label="C/S:">
            </el-form-item>
           <el-form-item>
               <span slot="label" style="display:inline-block;">
                序号:
                  <el-tooltip class="item" content="数字,描述该模块在其父模块下的显示顺序" effect="dark" placement="top-start">
                   <i class='el-icon-star-on' style="color: #F56C6C"/>
                </el-tooltip>
               </span>
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
                      placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
            </el-form-item>
            <el-form-item v-if="form.functionType === 0" label="C/S:">
            <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入C/S路径"
                      type="textarea"></el-input>
          </el-form-item>
            </el-form-item>
          <el-form-item v-if="form.functionType === 0" label="B/S:">
            <el-input v-model="form.path" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入B/S路径"
                      type="textarea"></el-input>
@@ -88,10 +109,6 @@
          <el-form-item v-if="form.functionType === 0" label=".NET:">
            <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2"
                      placeholder="请输入.NET" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="序号:">
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
                      placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
          </el-form-item>
          <el-form-item label="图标:">
              <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="请选择图标">
@@ -311,6 +328,10 @@
        this.$message.error('模块名不能为空');
        return
      }
      if (!this.form.alias) {
        this.$message.error('菜单标识不能为空');
        return
      }
      if (this.form.name.length > 128) {
        this.$message.error('模块名长度不能超过128!');
        return
@@ -355,6 +376,10 @@
        this.$message.error('模块名不能为空');
        return
      }
      if (!this.form.alias) {
        this.$message.error('菜单标识不能为空');
        return
      }
      if (this.form.name.length > 128) {
        this.$message.error('模块名长度超过128!');
        return
Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
@@ -6,8 +6,8 @@
          <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" node-key="id"
                     @node-click="nodeClick">
          <span slot-scope="{ node, data }" class="el-tree-node__label">
           <span>
              <i class="el-icon-s-promotion"></i>
           <span style="display: flex">
              <icon-show :name="data.icon"></icon-show>
                {{ (node || {}).label }}
            </span>
          </span>
@@ -53,6 +53,10 @@
          </el-form-item>
          <el-form-item label="别名:">
            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="请输入别名"></el-input>
          </el-form-item>
          <el-form-item label="图标:">
            <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="请选择图标">
            </input-icon>
          </el-form-item>
          <el-form-item label="顺序:">
            <el-input-number v-model="form.sort" :disabled="!editStatus && !addStatus" :max="9999" :min="0"
@@ -106,7 +110,8 @@
                ...item,
                id: item.id,
                name: item.name,
                leaf: !item.hasChildren
                leaf: !item.hasChildren,
                icon: item.source || 'iconoir:home'
              }
            }))
          })
Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue
@@ -1,41 +1,78 @@
<template>
  <basic-container>
    <div class="container">
      <el-form ref="form" :model="form" label-width="150px">
        <el-form-item label="当前在线用户人数">
          <div style="display: flex;">
            <el-input v-model="form.currentOnlineUser" :readOnly="true"></el-input>
            <el-button plain type="primary" style="margin-left: 10px" @click="getOnlineUsersNum"> 刷新</el-button>
          </div>
        </el-form-item>
      </el-form>
    <div style="display: flex;justify-content: space-between;align-items: center">
      <h3>当前在线人员信息</h3>
      <el-button type="primary" size="small" plain style="margin-right: 10px" @click="getOnlinUsersHandler">刷新</el-button>
    </div>
    <avue-crud :data="data" :option="option" :table-loading="loading" ></avue-crud>
  </basic-container>
</template>
<script>
import {
  getOnlineUsersNum
  getOnlinUsers
} from "@/api/systemModel/systemConfig/api"
import basicOption from '@/util/basic-option';
import func from "@/util/func";
export default {
  name: "index",
  data() {
    return {
      form: {
        currentOnlineUser: '0'
      loading:false,
      data:[],
      option:{
        ...basicOption,
        refreshBtn:false,
        addBtn:false,
        menu:false,
        column:[
          {
            label:'用户OID',
            prop:'oid',
            overHidden:true,
          },
          {
            label:'用户账号',
            prop:'userId'
          },
          {
            label:'用户姓名',
            prop:'userName'
          },
          {
            label:'机器ip',
            prop:'ip'
          },
          {
            label:'登录时间',
            prop:'loginTime'
          },
          {
            label:'最后操作时间',
            prop:'lastRequestTs'
          }
        ]
      }
    }
  },
  created() {
    this.getOnlineUsersNum();
    this.getOnlinUsersHandler();
  },
  methods: {
    // 左侧树查询
    getOnlineUsersNum() {
      getOnlineUsersNum().then(res => {
    getOnlinUsersHandler() {
      this.loading = true;
      getOnlinUsers().then(res => {
        if (res.data.code === 200) {
          const data = res.data.obj;
          this.form.currentOnlineUser = data;
          const data = res.data.data;
          this.data = data.map(item => {
            return{
              ...item,
              loginTime:func.formattedDate(item.loginTime),
              lastRequestTs:func.formattedDate(item.lastRequestTs),
            }
          })
          this.loading = false;
        }
      })
    }