wangting
2024-11-26 2ad2a3cdd0df63b6557789ba8a9d968984fe5da3
调整页面
已修改13个文件
已添加2个文件
842 ■■■■■ 文件已修改
Source/plt-web/plt-web-ui/src/styles/normalize.scss 181 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/util/func.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/system/log/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/wel/components/UndoTaskPortlet.vue 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/wel/homeConfig.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/wel/workIndex.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/styles/normalize.scss
@@ -29,19 +29,19 @@
 summary {
     display: block;
 }
 /**
  * Correct `inline-block` display not defined in IE 8/9.
  *
  * ä¿®æ­£åœ¨ IE 8/9 ä¸­æœªå®šä¹‰çš„ 'inline-block' å…ƒç´ ã€‚
  */
 audio,
 canvas,
 video {
     display: inline-block;
 }
 /**
  * Prevent modern browsers from displaying `audio` without controls.
  * Remove excess height in iOS 5 devices.
@@ -49,28 +49,28 @@
  * é˜»æ­¢çŽ°åœ¨æµè§ˆå™¨æ˜¾ç¤ºæœªå®šä¹‰ control æ’­æ”¾æŽ§ä»¶çš„ 'audio' å£°éŸ³å…ƒç´ ã€‚
  * åˆ é™¤ IOS 5 è®¾å¤‡ä¸­æ˜¾ç¤ºçš„多余的高度。
  */
 audio:not([controls]) {
     display: none;
     height: 0;
 }
 /**
  * Address styling not present in IE 8/9.
  *
  * å¤„理 IE 8/9 ä¸­ä¸å­˜åœ¨çš„æ ·å¼ã€‚
  */
 [hidden] {
     display: none;
 }
 /* ==========================================================================
    Base
    åŸºæœ¬è®¾ç½®
    ========================================================================== */
 /**
  * 1. Set default font family to sans-serif.
  * 2. Prevent iOS text size adjust after orientation change, without disabling
@@ -79,129 +79,129 @@
  * 1. è®¾ç½®é»˜è®¤å­—体类型为 sans-serif.
  * 2. å½“用户放大或缩小页面时不改变字体大小。
  */
 html {
     font-family: sans-serif; /* 1 */
     -ms-text-size-adjust: 100%; /* 2 */
     -webkit-text-size-adjust: 100%; /* 2 */
 }
 /**
  * Remove default margin.
  *
  * åˆ é™¤é»˜è®¤è¾¹è·ã€‚
  */
 body {
     margin: 0;
 }
 /* ==========================================================================
    Links
    é“¾æŽ¥
    ========================================================================== */
 /**
  * Address `outline` inconsistency between Chrome and other browsers.
  *
  * å¤„理 Chrome ä¸Žå…¶å®ƒæµè§ˆå™¨ä¸­å…³äºŽ 'outline' çš„不一致性。
  */
 a:focus {
     outline: thin dotted;
 }
 /**
  * Improve readability when focused and also mouse hovered in all browsers.
  *
  * ä¸ºæ‰€æœ‰æµè§ˆå™¨æ”¹å–„当激活或悬停在元素上时元素内容的可读性。
  */
 a:active,
 a:hover {
     outline: 0;
 }
 /* ==========================================================================
    Typography
    æŽ’版
    ========================================================================== */
 /**
  * Address variable `h1` font-size and margin within `section` and `article`
  * contexts in Firefox 4+, Safari 5, and Chrome.
  *
  * å¤„理多变的 'h1' å­—体大小及其在 Firefox 4+, Safari 5, åŠ Chrome时浏览器中的
  * å¤„理多变的 'h1' å­—体大小及其在 Firefox 4+, Safari 5, åŠ Chrome时浏览器中的
  * 'section' ä¸Žã€€'article' å…ƒç´ ä¸­çš„边距。
  */
 h1 {
     font-size: 2em;
     margin: 0.67em 0;
 }
 /**
  * Address styling not present in IE 8/9, Safari 5, and Chrome.
  *
  * å¤„理在 IE 8/9, Safari 5, åŠ Chrome æ²¡æœ‰çš„æ ·å¼ã€‚
  */
 abbr[title] {
     border-bottom: 1px dotted;
 }
 /**
  * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
  *
  * å¤„理 Firefox 4+, Safari 5, åŠ Chrome ä¸­é»˜è®¤çš„ 'bolder' æ ·å¼ä¸ºã€€'bold'.
  */
 b,
 strong {
     font-weight: bold;
 }
 /**
  * Address styling not present in Safari 5 and Chrome.
  *
  * å¤„理在 Safari 5 å’Œ Chrome æ²¡æœ‰çš„æ ·å¼ã€‚
  */
 dfn {
     font-style: italic;
 }
 /**
  * Address differences between Firefox and other browsers.
  *
  * å¤„理 Firefox 与其它浏览器的差异。
  */
 hr {
     -moz-box-sizing: content-box;
     box-sizing: content-box;
     height: 0;
 }
 /**
  * Address styling not present in IE 8/9.
  *
  * å¤„理在 IE 8/9 ä¸­æ²¡æœ‰çš„æ ·å¼ã€‚
  */
 mark {
     background: #ff0;
     color: #000;
 }
 /**
  * Correct font family set oddly in Safari 5 and Chrome.
  *
  * ä¿®æ­£ç¡® Safari 5 å’Œ Chrome ä¸­å¤æ€ªçš„默认字体。
  */
 code,
 kbd,
 pre,
@@ -209,45 +209,45 @@
     font-family: monospace, serif;
     font-size: 1em;
 }
 /**
  * Improve readability of pre-formatted text in all browsers.
  *
  * ä¸ºæ‰€æœ‰æµè§ˆå™¨æ”¹å–„预格式化文本的可读性。
  */
 pre {
     white-space: pre-wrap;
 }
 /**
  * Set consistent quote types.
  *
  * è®¾ç½®ä¸€è‡´çš„引用格式。
  */
 q {
     quotes: "\201C" "\201D" "\2018" "\2019";
 }
 /**
  * Address inconsistent and variable font size in all browsers.
  *
  * å¤„理所有浏览器中字体大小的不一致性[译者注:原文直译为:处理所有
  * æµè§ˆå™¨ä¸­çš„不一致和多变的字体大小]。
  */
 small {
     font-size: 80%;
 }
 /**
  * Prevent `sub` and `sup` affecting `line-height` in all browsers.
  *
  * é˜»æ­¢æ‰€æœ‰æµè§ˆå™¨ä¸­ 'sub' å’Œ 'sup' å…ƒç´ å½±å“ 'line-height'.
  * é˜»æ­¢æ‰€æœ‰æµè§ˆå™¨ä¸­ 'sub' å’Œ 'sup' å…ƒç´ å½±å“ 'line-height'.
  * [译者注:就是不让上标与下标影响行高。]
  */
 sub,
 sup {
     font-size: 75%;
@@ -255,87 +255,91 @@
     position: relative;
     vertical-align: baseline;
 }
 sup {
     top: -0.5em;
 }
 sub {
     bottom: -0.25em;
 }
 /* ==========================================================================
    Embedded content
    åµŒå…¥çš„内容
    ========================================================================== */
 /**
  * Remove border when inside `a` element in IE 8/9.
  *
  * åˆ é™¤ IE 8/9 ä¸­å½“内容位于 'a' ä¸­å‡ºçŽ°çš„è¾¹æ¡†ã€‚
  */
 img {
     border: 0;
 }
 /**
  * Correct overflow displayed oddly in IE 9.
  *
  * ä¿®æ­£ IE 9 ä¸­æ˜¾ç¤ºå¤æ€ªçš„æº¢å‡ºå†…容。
  */
 svg:not(:root) {
     overflow: hidden;
 }
 /* ==========================================================================
    Figures
    Figure å›¾åƒ/图表/代码等
    ========================================================================== */
 /**
  * Address margin not present in IE 8/9 and Safari 5.
  *
  * å¤„理在 IE 8/9 å’Œ Safari 5 æ²¡æœ‰çš„边距。
  */
 figure {
     margin: 0;
 }
 /* ==========================================================================
    Forms
    ========================================================================== */
 /**
  * Define consistent border, margin, and padding.
  *
  * å®šä¹‰ä¸€è‡´çš„边框、外边距及内边距。
  */
 fieldset {
     border: 1px solid #c0c0c0;
     margin: 0 2px;
     padding: 0.35em 0.625em 0.75em;
   border-radius: 5px;
   -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
   box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
   box-sizing: border-box;
 }
 /**
  * 1. Correct `color` not being inherited in IE 8/9.
  * 2. Remove padding so people aren't caught out if they zero out fieldsets.
  * 1. ä¿®æ­£åœ¨ã€€IE 8/9 ä¸­æ²¡æœ‰ç»§æ‰¿çš„ 'color'.
  * 1. ä¿®æ­£åœ¨ã€€IE 8/9 ä¸­æ²¡æœ‰ç»§æ‰¿çš„ 'color'.
  *
  *    [译者注:说是修正颜色嘛,可下面没有关于颜色的呀,这也行?求大神解释!]
  * 2. åŽ»æŽ‰å†…è¾¹è·ï¼Œé¿å…å½“ç”¨æˆ·æ¸…ç©ºè¡¨å•ç»„æ—¶è®¤ä¸ºå‡ºé”™äº†ã€‚
  */
 legend {
     border: 0; /* 1 */
     padding: 0; /* 2 */
 }
 /**
  * 1. Correct font family not being inherited in all browsers.
  * 2. Correct font size not being inherited in all browsers.
@@ -345,7 +349,7 @@
  * 2. ä¿®æ­£æ‰€æœ‰æµè§ˆå™¨ä¸­æœªè¢«ç»§æ‰¿çš„字体大小。
  * 3. å¤„理 Firefox 4+, Safari 5, åŠ Chrome ä¸­é»˜è®¤è®¾ç½®ä¸åŒçš„外边距。
  */
 button,
 input,
 select,
@@ -354,36 +358,36 @@
     font-size: 100%; /* 2 */
     margin: 0; /* 3 */
 }
 /**
  * Address Firefox 4+ setting `line-height` on `input` using `!important` in
  * the UA stylesheet.
  *
  * å¤„理 Firefox 4+ ä¸­çš„客户端样式表里使用 '!important' è®¾ç½®çš„ 'line-height'.
  */
 button,
 input {
     line-height: normal;
 }
 /**
  * Address inconsistent `text-transform` inheritance for `button` and `select`.
  * All other form control elements do not inherit `text-transform` values.
  * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
  * Correct `select` style inheritance in Firefox 4+ and Opera.
  *
  *
  * å¤„理 'button' å’Œ 'select' çš„ 'text-transform' ç»§æ‰¿çš„不一致性。
  * æ‰€æœ‰å…¶å®ƒè¡¨å•控件元素不继承 'text-transform' çš„值。
  * ä¿®æ­£ Chrome, Safari 5+, åŠ IE 8+ ä¸­ 'button' çš„继承样式。
  * ä¿®æ­£ Firefox 4+ å’Œ Opera ä¸­ 'select' çš„继承样式。
  */
 button,
 select {
     text-transform: none;
 }
 /**
  * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
  *    and `video` controls.
@@ -395,7 +399,7 @@
  * 2. ä¿®æ­£ iOS ä¸­ä¸å¯ç‚¹å‡»çš„ 'input' æ ·å¼ã€‚
  * 3. æ”¹å–„图片类型的 'input' ç­‰å…‰æ ‡æ ·å¼çš„可用性与一致性。
  */
 button,
 html input[type="button"], /* 1 */
 input[type="reset"],
@@ -403,18 +407,18 @@
     -webkit-appearance: button; /* 2 */
     cursor: pointer; /* 3 */
 }
 /**
  * Re-set default cursor for disabled elements.
  *
  *
  * é‡ç½®ä¸å¯ç”¨å…ƒç´ çš„默认光标样式。
  */
 button[disabled],
 html input[disabled] {
     cursor: default;
 }
 /**
  * 1. Address box sizing set to `content-box` in IE 8/9.
  * 2. Remove excess padding in IE 8/9.
@@ -422,13 +426,13 @@
  * 1. å¤„理 IE 8/9 ä¸­è®¾ç½®ä¸º 'content-box' çš„盒子模型。
  * 2. åˆ é™¤ IE 8/9 ä¸­å¤šä½™çš„内边距。
  */
 input[type="checkbox"],
 input[type="radio"] {
     box-sizing: border-box; /* 1 */
     padding: 0; /* 2 */
 }
 /**
  * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
  * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
@@ -438,38 +442,38 @@
  * 2. å¤„理 Safari 5 å’Œ Chrome ä¸­é»˜è®¤è®¾ç½®ä¸º 'box-sizing' çš„ 'border-box'
  *    (包括不会过时的 '-moz').
  */
 input[type="search"] {
     -webkit-appearance: textfield; /* 1 */
     -moz-box-sizing: content-box;
     -webkit-box-sizing: content-box; /* 2 */
     box-sizing: content-box;
 }
 /**
  * Remove inner padding and search cancel button in Safari 5 and Chrome
  * on OS X.
  *
  * åˆ é™¤ Safari 5 å’Œ OS X ä¸Šçš„ Chrome ä¸­çš„输入框上的内边距和搜索取消按钮。
  */
 input[type="search"]::-webkit-search-cancel-button,
 input[type="search"]::-webkit-search-decoration {
     -webkit-appearance: none;
 }
 /**
  * Remove inner padding and border in Firefox 4+.
  *
  * åˆ é™¤ Firefox 4+ button ä¸Ž input ä¸Šçš„内边距。
  */
 button::-moz-focus-inner,
 input::-moz-focus-inner {
     border: 0;
     padding: 0;
 }
 /**
  * 1. Remove default vertical scrollbar in IE 8/9.
  * 2. Improve readability and alignment in all browsers.
@@ -477,26 +481,25 @@
  * 1. åˆ é™¤ IE8/9 ä¸­é»˜è®¤çš„垂直滚动条。
  * 2. æ”¹å–„所有浏览器中的可读性并使文本垂直对齐。
  */
 textarea {
     overflow: auto; /* 1 */
     vertical-align: top; /* 2 */
 }
 /* ==========================================================================
    Tables
    è¡¨æ ¼
    ========================================================================== */
 /**
  * Remove most spacing between table cells.
  *
  * åˆ é™¤è¡¨æ ¼é‡Œå•元格间的间距。
  */
 table {
     border-collapse: collapse;
     border-spacing: 0;
 }
Source/plt-web/plt-web-ui/src/util/func.js
@@ -45,7 +45,9 @@
      CrudRef.clearSelection();
      CrudRef.toggleRowSelection(row);
    }*/
    CrudRef.toggleRowSelection(row);
    setSelectList();
    CrudRef.toggleSelection();
    CrudRef.toggleRowSelection(row);//选中当前行
    setLastIndex(row.$index);
  }
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
<template>
  <div style="padding: 10px 0">
    <el-tabs tab-position="left" style="height: 100%;">
      <el-tab-pane label="主体">
        <fieldset>
          <legend>&nbsp;主题&nbsp;</legend>
          <div>
            æŸ¥è¯¢æ¨¡æ¿å®šä¹‰
            <avue-select @change="linkQueryDefineChange" class="el-input--small" v-model="linkQueryDefineForm" placeholder="请选择内容" type="tree" :dic="linkQueryDefineDic" style="width:240px"></avue-select>
          </div>
        </fieldset>
      </el-tab-pane>
      <el-tab-pane label="客体">客体</el-tab-pane>
      <el-tab-pane label="操作">操作</el-tab-pane>
    </el-tabs>
  </div>
</template>
<script>
export default {
  name: "dataView",
  props: {
    selectData: {
      type: Object,
      default: {}
    },
    readOnly: {
      type: Boolean,
      default: false
    },
  },
  data() {
    return {
      data:{
      }
    }
  },
  created() {
    this.getData();
  },
  methods: {
    getData(){
    }
  }
}
</script>
<style scoped>
fieldset {
  padding: 10px 6px;
  margin: 10px 0 0 0;
  border: 1px solid #EBEEF5;
}
</style>
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
@@ -20,6 +20,43 @@
    <el-main>
      <basic-container>
        <avue-crud
          ref="crud"
          :data="data"
          :option="option"
          :table-loading="tableLoading"
          @refresh-change="handleRefresh"
          @selection-change="selectChange"
          @row-click="rowClickHandler">
          <template slot="menuLeft">
            <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">添加</el-button>
            <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">删除</el-button>
            <el-button icon="el-icon-view" plain size="small" type="primary" @click="chekView">查看授权结果</el-button>
          </template>
        </avue-crud>
        <div>
          <data-view key="dataView"></data-view>
        </div>
        <!-- æŸ¥çœ‹æŽˆæƒç»“æžœ    -->
        <el-dialog
          v-dialogDrag
          v-loading="checkViewLoading"
          :visible.sync="checkViewVisible"
          append-to-body="true"
          class="avue-dialog"
          title="查看使用范围"
          width="60%"
        >
          <avue-crud
            ref="checkViewCrud"
            :data="checkViewData"
            :option="checkViewOption"
            @search-change="checkHandleSearch"
            @search-reset="checkHandleReset"
          >
          </avue-crud>
        </el-dialog>
      </basic-container>
    </el-main>
@@ -28,8 +65,14 @@
<script>
import {getBizTree} from "@/api/UI/uiDefine";
import basicOption from "@/util/basic-option";
import dataView from "./dataView";
import {getTypeActionByType} from "@/api/authority/ui/typeAction";
import func from "@/util/func";
import {getUsedEnumList} from "@/api/modeling/enumType/api";
export default {
  name: "index",
  components:{dataView},
  data:function (){
    return{
      treeOption: {
@@ -45,6 +88,34 @@
      },
      nodeRow: {},
      treeData: [],
      tableLoading: false,
      selectList: [],
      option: {
        ...basicOption,
        height:260,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        filterBtn:false,
        columnBtn:false,
        gridBtn:false,
        tip: false,
        align: 'left',
        menu:false,
        column: [
          {
            label: '规则名称',
            prop: 'plCode',
            overHidden: true
          },
          {
            label: '规则类型',
            prop: 'plName',
            overHidden: true
          }
        ]
      },
      data: [],
    }
  },
  created() {
@@ -69,7 +140,76 @@
      }
    },
    getTableList() {
      getTypeActionByType({
        'typeName': this.nodeRow.attributes.name,
      }).then(res => {
        this.data = res.data.data;
        this.$refs.crud.clearSelection();
        this.tableLoading = false;
      })
    },
    handleRefresh() {
      this.getTableList();
    },
    // è¡Œç‚¹å‡»
    rowClickHandler(row) {
      func.rowClickHandler(
        row,
        this.$refs.crud,
        this.lastIndex,
        (newIndex) => {
          this.lastIndex = newIndex;
        },
        () => {
          this.selectList = [row];
        }
      );
    },
    // é€‰æ‹©æ¡†
    selectChange(row) {
      this.selectList = row;
    },
    // æŸ¥çœ‹æŽˆæƒç»“æžœ
    chekView() {
      if (this.selectList.length <= 0) {
        this.$message.warning('请至少选择一条数据');
        return;
      }
      if (this.selectList.length > 1) {
        this.$message.warning('只能选择一条数据进行查看');
        return;
      }
      getUsedEnumList({enumName: this.selectList[0].id}).then(res => {
        if (res.data.code === 200) {
          this.checkViewVisible = true;
          this.checkViewData = res.data.data;
          this.checkViewDataSearch = res.data.data;
        }
      })
    },
    // æŸ¥çœ‹æŽˆæƒç»“果查询
    checkHandleSearch(params, done) {
      const {source} = params;
      if (!params.source) {
        this.checkViewData = this.checkViewDataSearch;
        return done();
      }
      ;
      this.checkViewData = this.checkViewData.filter(item => {
        return item.source && item.source.includes(source);
      });
      done();
    },
    // æŸ¥çœ‹ä½¿ç”¨èŒƒå›´é‡ç½®
    checkHandleReset() {
      this.checkViewData = this.checkViewDataSearch;
    },
  }
}
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue
@@ -216,8 +216,6 @@
        this.data = data;
        this.page.total = res.data.total;
        this.loading = false;
      }).catch(err => {
        this.$message.error(err);
      });
    },
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
@@ -56,7 +56,7 @@
          </fieldset>
        </el-aside>
        <el-main>
          <fieldset style="margin: 0 10px">
          <fieldset style="margin: 0 0 0 10px">
            <legend>&nbsp;查询条件&nbsp;</legend>
            <form-query-dialog ref="formQuery"
                               :levelFlag.sync="form.levelFlag"
@@ -483,11 +483,7 @@
<style scoped>
fieldset {
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  padding: 10px 6px;
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #EBEEF5;
}
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue
@@ -289,47 +289,9 @@
  .el-scrollbar__wrap {
    overflow: auto !important;
  }
  .headerCon{
    .el-button{
      width: 82px;
    }
  }
}
.headerCon {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  .el-button + .el-button {
    margin-left: 5px;
  }
  .el-button {
    margin-top: 5px;
  }
}
.headerCon > .el-button:nth-child(4) {
  margin-left: 0;
}
.headerCon > .el-button:nth-child(7) {
  margin-left: 0;
}
.smallBtn {
  width: 82px;
  text-align: center;
  padding-left: 4.5px;
}
fieldset {
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  padding: 10px 6px;
  box-sizing: border-box;
  margin: 10px 0 0 0;
  border: 1px solid #EBEEF5;
}
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
@@ -624,11 +624,7 @@
<style scoped>
fieldset {
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  padding: 10px 6px;
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #EBEEF5;
}
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -10,10 +10,10 @@
      <div v-for="(condition,index) in conditionList" :key="index" class="el-input--small"
           style="margin-bottom: 5px; text-align:left">
        <span :title="condition.clause"
              style="width: 200px;display: inline-block;text-align: right">{{ condition.clause }}</span>
              style="width: 32%;display: inline-block;text-align: right;word-break: break-all">{{ condition.clause }}</span>
        <avue-select v-model="condition.operator" :clearable="false" :dic="condition.operatorDic" :disabled="readOnly"
                     style="width: 80px;margin: 0 5px;" type="tree"></avue-select>
        <el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" :disabled="readOnly"
        <!--<el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:300px;margin-right: 5px;display: inline-block;" type="date"
                        value-format="YYYY-MM-DD">
        </el-date-picker>
@@ -33,6 +33,8 @@
                           :disabled="readOnly"
                           style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
        <avue-input v-else v-model="condition.ordinaryValue" :disabled="readOnly" placeholder=""
                    style="width: 300px;margin-right: 5px;"></avue-input>-->
        <avue-input v-model="condition.ordinaryValue" :disabled="readOnly" placeholder=""
                    style="width: 300px;margin-right: 5px;"></avue-input>
        <el-button v-if="!readOnly" plain size="mini" type="primary" @click="checkTemp(index)">选择查询模板</el-button>
        <el-button v-if="!readOnly" icon="el-icon-delete" size="mini" style="padding: 7px 8px" type="danger"
@@ -537,7 +539,6 @@
      return item
    },
    handleDragEnd(draggingNode, dropNode, dropType, ev) {
      debugger;
      console.log('tree drag end: ', dropNode && dropNode.label, dropType);
    },
    handleDragOver({event}) {
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue
@@ -316,47 +316,10 @@
  .el-scrollbar__wrap {
    overflow: auto !important;
  }
  .headerCon{
    .el-button{
      width: 82px;
    }
  }
}
.headerCon {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  .el-button + .el-button {
    margin-left: 5px;
  }
  .el-button {
    margin-top: 5px;
  }
}
.headerCon > .el-button:nth-child(4) {
  margin-left: 0;
}
.headerCon > .el-button:nth-child(7) {
  margin-left: 0;
}
.smallBtn {
  width: 82px;
  text-align: center;
  padding-left: 4.5px;
}
fieldset {
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  padding: 10px 6px;
  box-sizing: border-box;
  margin: 10px 0 0 0;
  border: 1px solid #EBEEF5;
}
Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue
@@ -2,7 +2,7 @@
  <!--文仓管理页面-->
  <basic-container>
    <avue-crud
      ref="logCrud"
      ref="crud"
      v-model="form"
      :data="tableData"
      :option="option"
@@ -11,6 +11,7 @@
      @row-save="rowSaveHandler"
      @row-update="rowUpdateHandler"
      @row-del="rowDeleteHandler"
      @row-click="rowClickHandler"
      @selection-change="selectionChange"
    >
      <template slot="menuLeft" slot-scope="scope">
@@ -236,6 +237,17 @@
    selectionChange(list) {
      this.selectionList = list;
    },
    // è¡Œå•选
    rowClickHandler(row) {
      func.rowClickHandler(
        row,
        this.$refs.crud,
        this.lastIndex,
        (newIndex) => { this.lastIndex = newIndex; },
        () => { this.selectionList = []; }
      );
    },
  }
}
</script>
Source/plt-web/plt-web-ui/src/views/system/log/index.vue
@@ -11,6 +11,7 @@
      @search-change="handleSearch"
      @search-reset="handleReset"
      @size-change="sizeChange"
      @row-click="rowClickHandler"
      @current-change="currentChange"
    >
      <template slot="menuLeft" slot-scope="scope">
@@ -100,7 +101,9 @@
        total: 0,
        pageSizes: [10, 30, 50, 100],
      },
      searchParams: {}
      searchParams: {},
      selectList: [],
    }
  },
  watch: {
@@ -161,6 +164,16 @@
        loading.close();
      })
    },
    // è¡Œå•选
    rowClickHandler(row) {
      func.rowClickHandler(
        row,
        this.$refs.logCrud,
        this.lastIndex,
        (newIndex) => { this.lastIndex = newIndex; },
        () => { this.selectList = []; }
      );
    },
  }
}
</script>
Source/plt-web/plt-web-ui/src/views/wel/components/UndoTaskPortlet.vue
@@ -1,199 +1,114 @@
<template>
  <!--代办任务-->
  <basic-containers  :key="loadKey">
    <div>
      <avue-crud
        ref="crud"
        :data="data"
        :option="options"
        :page.sync="pages"
        :search.sync="searchParams"
        :table-loading="loading"
        @search-change="handleSearch"
        @search-reset="handleReset"
        @current-change="currentChange"
        @size-change="sizeChange">
        <template slot="title" slot-scope="{row}">
          <el-link type="primary" @click="linkClickHandler(row)">{{ row.title }}</el-link>
        </template>
      </avue-crud>
    </div>
  </basic-containers>
  <basic-container title="待办流程任务">
    <avue-crud ref="crud" :data="todoData" :option="todoOption" :page.sync="page"
               :table-loading="loading"
               @on-load="onLoad"
               @cell-click="cellHandle">
      <template #menu="{size,row,index}">
        <el-button :size="size"
                   icon="el-icon-check"
                   type="text"
                   @click="gotodo(row,index)">执行
        </el-button>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
export default {
  name: "UndoTaskPortlet",
  data() {
  data(){
    return {
      loadKey:0,
      data: [],
      options: {
        height: 'auto',
        calcHeight:210,
      loading: false,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      // ä»£åŠžæµç¨‹ä»»åŠ¡data
      todoData: [],
      // ä»£åŠžæµç¨‹ä»»åŠ¡option
      todoOption: {
        height: 500,
        addBtn: false,
        header: false,
        align: 'center',
        index: true,
        menuWidth: 80,
        editBtn: false,
        delBtn: false,
        index: true,
        border: true,
        menu: false,
        refreshBtn: false,
        searchIcon: true,
        searchShow: true,
        menuWidth: 120,
        menuAlign: "center",
        column: [
        column: [{
          label: '任务名称',
          prop: 'taskName',
          sortable: true,
          headerAlign: 'center',
          align: 'left',
          html: true,
          width: 300,
          overHidden: true,
          formatter: (val) => {
            return '<a name="processname" href="javascript:;" style="color: #66b1ff;">' + val.variables.processName + '-' + val.taskName + '</a>'
          }
        },
          {
            label: "类型",
            prop: "msgClassifyText",
            label: '上一步处理时间',
            sortable: true,
            width: 100,
            width: 150,
            prop: 'createTime'
          },
          {
            label: "消息标题",
            prop: "title",
            search:true,
            minWidth: 400,
            label: '上一步操作人',
            sortable: true,
            searchSpan:6,
            width: 120,
            prop: 'historyActivityAssigneName'
          },
          {
            label: '流程描述',
            prop: 'processDesc',
            overHidden: true,
            slot:true,
            formatter: (val) => {
              return val.variables.processDesc
            }
          },
          {
            label: "发送时间",
            prop: "sendTime",
            width: 130,
            type:'datetime',
            overHidden: true,
            format:'yyyy-MM-dd HH:mm',
            sortable:true,
            slot: true
          },
          {
            label: '工号',
            prop: "sendUserCode",
            searchLabelWidth: 100,
            search:true,
            label: '所属流程模板',
            sortable: true,
            searchSpan:6,
            width: 130,
          },
          {
            label: "发送人姓名",
            prop: "sendUserName",
            searchLabelWidth: 100,
            search:true,
            searchSpan:6,
            sort: true,
            width: 130,
          },
          {
            label: "内容",
            overHidden:true,
            prop: "msgContent",
            minWidth: 300
          },
            overHidden: true,
            prop: 'categoryName'
          }
        ]
      },
      pages: {
        currentPage: 1,
        pageSize: 15,
        pageSizes: [15, 25, 45, 60, 100],
        total: 0,
        layout: "prev,pager,next,jumper,sizes,total",
      },
      loading: false,
      searchParams: {
        pageNum: 1,
        pageSize: 15,
      },
    };
    }
  },
  created() {
    this.getTableList();
  },
  mounted() {
    window.addEventListener('resize', this.handleResize); // èŽ·å–ç”¨æˆ·ç¼©æ”¾äº‹ä»¶
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.handleResize); // é”€æ¯ç»‘定的方法
  },
  methods: {
    // å¼ºåˆ¶ä¿®æ”¹å®¹å™¨key值
    handleResize() {
      this.loadKey += 1;
    onLoad(page, params = {}) {
      this.loading = true;
      const query = {
        ...this.query,
        category: (params.category) ? flowCategory(params.category) : null
      };
      todoList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.todoData = data.records;
        this.loading = false;
      }).catch(error => {
        this.$message.error(error);
        this.loading = false;
      })
    },
    // åˆå§‹åŒ–根据分辨率来决定页面初始多少条数据
    createdPageSize(){
      let windowHeight = window.outerHeight;
      if(windowHeight > 1350) this.homeTable.pages.pageSize = 25;
      if(windowHeight > 1350) this.searchParams.pageSize = 25;
    },
    getTableList() {
      this.createdPageSize(); // åˆ¤æ–­é¡µé¢åˆ†è¾¨çއ
      getList(this.searchParams).then(res => {
        if (res && res.success) {
          this.homeTable.data = res.data;
          this.homeTable.pages.total = res.total;
        }
      });
    },
    linkClickHandler(row){
      if(row.msgLink != null && row.msgLink != ''){
        var link = row.msgLink.replace("inner:","").replace("?","").split("&");
        var html = link.find((val=>(val.toLowerCase().startsWith("html=")|| val.toLowerCase().startsWith("html ="))));
        if(html!=null && html!=''){
          var page = html.split("=")[1].replace("-","/");
          var single = {
            fromUndo:true
          };
          link.forEach((val)=>{
            var temp = val.split("=");
            single[temp[0]] = temp[1];
          });
          this.$router.push({
            path:"/" + page,
            query:single
          });
        }
    cellHandle(row, column, cell, event) {
      if (column.property == 'taskName') {
        this.gotodo(row)
      }
    },
    // åˆ†é¡µé€‰æ‹©æ˜¾ç¤ºå¤šå°‘条
    sizeChange(val) {
      this.searchParams.pageSize = val;
      this.searchParams.pageNum = 1;
      this.getTableList();
    },
    // åˆ†é¡µé¡µç 
    currentChange(val) {
      this.searchParams.pageNum = val;
      this.getTableList();
    },
    // æŸ¥è¯¢
    handleSearch(params, done) {
      setTimeout(() => {
        done();
        this.searchParams = { ...params };
        this.getTableList();
      }, 300);
    },
    // æ¸…空搜索
    handleReset() {
      this.searchParams = this.defaultSearch;
      this.getTableList();
    },
    // åˆ·æ–°æ•°æ®
    handleRefresh() {
      this.getTableList();
    },
    gotodo(row, index) {
      this.$router.push({path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}`});
    }
  }
}
</script>
Source/plt-web/plt-web-ui/src/views/wel/homeConfig.vue
@@ -8,8 +8,6 @@
      @selection-change="selectChange"
      @row-click="rowClickHandler"
      @refresh-change="handleRefresh"
      @size-change="sizeChange"
      @current-change="currentChange"
    >
      <template slot="menuLeft">
        <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">创建
@@ -36,7 +34,7 @@
      width="500px"
      @close="visibleCloseHandler"
    >
      <el-form ref="form" :model="form" :rules="rules" label-width="90px" size="small">
      <el-form ref="form" :model="form" :rules="rules" label-width="95px" size="small">
        <el-row>
          <el-col :span="24">
            <el-form-item label="组件:" prop="id">
@@ -44,7 +42,12 @@
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="占据列数:" prop="span">
            <el-form-item label="标题:" prop="title">
              <el-input v-model="form.title"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="占据列数:" prop="span" tip="总列数为24">
              <avue-input-number v-model="form.span" precision="0" style="width: 100%" :max="24" :min="1" controls-position="" tip="总列数为24,如占满整行请输入24"></avue-input-number>
            </el-form-item>
          </el-col>
@@ -94,6 +97,10 @@
            prop: 'id',
          },
          {
            label: '标题',
            prop: 'title',
          },
          {
            label: '占据列数',
            prop: 'span'
          },
@@ -117,10 +124,13 @@
      rules: {
        id: [
          {required: true, message: '请选择组件', trigger: 'blur'},
        ],
        span:[
          {required: true, message: '请输入占据列数', trigger: 'blur'},
        ]
      },
      dic:[{
        label:'待办任务',
        label:'待办流程任务',
        value:'UndoTaskPortlet'
      },{
        label:'选项2',
@@ -136,13 +146,10 @@
  },
  methods: {
    getList() {
      gridStatus(this.page.currentPage, this.page.pageSize).then(res => {
      gridStatus().then(res => {
        const data = res.data.data;
        this.data = data;
        this.page.total = res.data.total;
        this.loading = false;
      }).catch(err => {
        this.$message.error(err);
      });
    },
@@ -156,23 +163,11 @@
      this.selectList = row;
    },
    //  æ¡æ•°
    sizeChange(val) {
      this.page.pageSize = val;
      this.getList();
    },
    // é¡µç 
    currentChange(val) {
      this.page.currentPage = val;
      this.getList();
    },
    // è¡Œå•选
    rowClickHandler(row) {
      func.rowClickHandler(
        row,
        this.$refs.useCrud,
        this.$refs.crud,
        this.lastIndex,
        (newIndex) => {
          this.lastIndex = newIndex;
Source/plt-web/plt-web-ui/src/views/wel/workIndex.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
<template>
  <div>
    <el-row>
      <el-col v-for="item in homeData" :span="item.span">
        <component :is="item.currentComponent" :key="item.component"></component>
      </el-col>
    </el-row>
  </div>
</template>
<script>
export default {
  name: "workIndex",
  components:{},
  data(){
    return {
      homeData:[{
        component:'UndoTaskPortlet',
        span:24
      }]
    }
  },
  created() {
    this.initData();
  },
  methods:{
    initData() {
      this.homeData.map(item => {
        this.loadCompoent(item);
        return item;
      })
    },
    loadCompoent(item){
      // åŠ¨æ€å¯¼å…¥ç»„ä»¶
      import(`@/views/wel/components/${item.component}.vue`).then((module) => {
        // æˆåŠŸå¯¼å…¥åŽï¼Œå°†ç»„ä»¶æ³¨å†Œåˆ°Vue实例中
        item.currentComponent = module.default;
      }).catch((error) => {
        // å¤„理导入失败的情况
        console.log('组件加载失败:', error);
      });
    },
  }
}
</script>
<style scoped>
</style>