From acecd2af0d71d980c741936637f29f008adaf88f Mon Sep 17 00:00:00 2001
From: wangting <wangting@vci-tech.com>
Date: 星期四, 19 十二月 2024 18:12:08 +0800
Subject: [PATCH] 首页配置,业务模块展示不同首页

---
 Source/plt-web/plt-web-ui/src/router/page/index.js                     |   41 ---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue    |    1 
 Source/plt-web/plt-web-ui/src/page/index/tags.vue                      |   17 -
 Source/plt-web/plt-web-ui/src/views/wel/components/test.vue            |   26 ++
 Source/plt-web/plt-web-ui/src/views/wel/workIndex.vue                  |   35 +-
 Source/plt-web/plt-web-ui/src/views/wel/components/UndoTaskPortlet.vue |   21 +
 Source/plt-web/plt-web-ui/src/page/index/logo.vue                      |    6 
 Source/plt-web/plt-web-ui/src/router/views/index.js                    |   74 +++++-
 Source/plt-web/plt-web-ui/src/views/wel/index.vue                      |  214 +----------------
 Source/plt-web/plt-web-ui/src/views/wel/adminIndex.vue                 |  233 +++++++++++++++++++
 Source/plt-web/plt-web-ui/src/views/wel/components/taskPortlet.vue     |   26 ++
 Source/plt-web/plt-web-ui/src/views/wel/homeConfig.vue                 |    5 
 12 files changed, 412 insertions(+), 287 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/page/index/logo.vue b/Source/plt-web/plt-web-ui/src/page/index/logo.vue
index 1dd1a14..0db22fa 100644
--- a/Source/plt-web/plt-web-ui/src/page/index/logo.vue
+++ b/Source/plt-web/plt-web-ui/src/page/index/logo.vue
@@ -9,9 +9,9 @@
     </transition>
     <transition-group name="fade">
       <template v-if="!keyCollapse">
-<span>
-            <img class="imgSpan" :src=imgurl>
-          </span>
+        <span>
+          <img class="imgSpan" :src=imgurl>
+        </span>
         <span class="avue-logo_title"
               key="1">
           <span>
diff --git a/Source/plt-web/plt-web-ui/src/page/index/tags.vue b/Source/plt-web/plt-web-ui/src/page/index/tags.vue
index 673585c..8865912 100644
--- a/Source/plt-web/plt-web-ui/src/page/index/tags.vue
+++ b/Source/plt-web/plt-web-ui/src/page/index/tags.vue
@@ -1,19 +1,12 @@
 <template>
-  <div v-if="showTag"
-       class="avue-tags">
-    <!-- tag鐩掑瓙 -->
+  <div v-if="showTag" class="avue-tags">
+    <!-- 鍙抽敭 -->
     <div v-if="contextmenuFlag"
          :style="{left:contentmenuX+'px',top:contentmenuY+'px'}"
          class="avue-tags__contentmenu">
-      <div class="item"
-           @click="clearCacheTags">{{ $t('tagsView.clearCache') }}
-      </div>
-      <div class="item"
-           @click="closeOthersTags">{{ $t('tagsView.closeOthers') }}
-      </div>
-      <div class="item"
-           @click="closeAllTags">{{ $t('tagsView.closeAll') }}
-      </div>
+      <div class="item"  @click="clearCacheTags">{{ $t('tagsView.clearCache') }}</div>
+      <div class="item"  @click="closeOthersTags">{{ $t('tagsView.closeOthers') }}</div>
+      <div class="item"  @click="closeAllTags">{{ $t('tagsView.closeAll') }}</div>
     </div>
     <div :class="{'avue-tags__box--close':!website.isFirstPage}"
          class="avue-tags__box">
diff --git a/Source/plt-web/plt-web-ui/src/router/page/index.js b/Source/plt-web/plt-web-ui/src/router/page/index.js
index 5e4006d..5cc98e8 100644
--- a/Source/plt-web/plt-web-ui/src/router/page/index.js
+++ b/Source/plt-web/plt-web-ui/src/router/page/index.js
@@ -78,30 +78,6 @@
     redirect: '/404'
   },
   {
-    path: '/dynamic-form',
-    name: '鍔ㄦ�佽〃鏍奸〉闈�',
-    component: Layout,
-    children: [
-      {
-        path: '', // 绌鸿矾寰勮〃绀鸿闂� '/dynamic-form' 鏃跺姞杞� Layout 缁勪欢
-        component: () => import('@/components/dynamic-components/dynamic-form'),
-        props: true
-      }
-    ]
-  },
-  {
-    path: '/UIContentViewer',
-    name: 'UI涓婁笅鏂囧睍绀�',
-    component: Layout,
-    children: [
-      {
-        path: '', // 绌鸿矾寰勮〃绀鸿闂� '/UIContentViewer' 鏃跺姞杞� Layout 缁勪欢
-        component: () => import('@/views/base/UIContentViewer'),
-        props: true
-      }
-    ]
-  },
-  {
     path: '/referIndex',
     name: '鍙傜収绀轰緥',
     component: Layout,
@@ -112,22 +88,5 @@
         props: true
       }
     ]
-  },
-  {
-    path: '/UIDefineShow/:uiDefineOid',
-    name: 'UI瀹氫箟璇︽儏',
-    component: Layout,
-    children: [
-      {
-        path: '', // 绌鸿矾寰勮〃绀鸿闂� '/referIndex' 鏃跺姞杞� Layout 缁勪欢
-        component: () => import('@/views/modelingMenu/ui/uiDefine/rightRegion/plShow'),
-        props: true
-      }
-    ],
-    meta:{
-      keepAlive: true,
-      isTab: true,
-      isAuth: true
-    }
   }
 ]
diff --git a/Source/plt-web/plt-web-ui/src/router/views/index.js b/Source/plt-web/plt-web-ui/src/router/views/index.js
index 2826e0e..385dd98 100644
--- a/Source/plt-web/plt-web-ui/src/router/views/index.js
+++ b/Source/plt-web/plt-web-ui/src/router/views/index.js
@@ -12,6 +12,14 @@
     },
     component: () =>
       import( /* webpackChunkName: "views" */ '@/views/wel/index')
+  },{
+    path: 'workIndex',
+    name: '宸ヤ綔鍙�',
+    meta: {
+      i18n: 'work'
+    },
+    component: () =>
+      import( /* webpackChunkName: "views" */ '@/views/wel/workIndex')
   }, {
     path: 'dashboard',
     name: '鎺у埗鍙�',
@@ -104,16 +112,56 @@
       import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
   }]
 },{
-  path: '/base',
-  component: Layout,
-  redirect: '/viewTab',
-  children: [{
-    path: 'viewTab',
-    name: '鏌ョ湅璇︽儏',
-    meta: {
-      i18n: 'viewTab'
-    },
-    component: () =>
-      import('@/views/base/ViewTab')
-  }]
-} ]
+    path: '/UIContentViewer',
+    name: 'UI涓婁笅鏂囧睍绀�',
+    component: Layout,
+    children: [
+      {
+        path: '', // 绌鸿矾寰勮〃绀鸿闂� '/UIContentViewer' 鏃跺姞杞� Layout 缁勪欢
+        component: () => import('@/views/base/UIContentViewer'),
+        props: true
+      }
+    ]
+  },
+  {
+    path: '/dynamic-form',
+    name: '鍔ㄦ�佽〃鍗曢〉闈�',
+    component: Layout,
+    children: [
+      {
+        path: '', // 绌鸿矾寰勮〃绀鸿闂� '/dynamic-form' 鏃跺姞杞� Layout 缁勪欢
+        component: () => import('@/components/dynamic-components/dynamic-form'),
+        props: true
+      }
+    ]
+  },
+  {
+    path: '/UIDefineShow/:uiDefineOid',
+    name: 'UI瀹氫箟璇︽儏',
+    component: Layout,
+    children: [
+      {
+        path: '', // 绌鸿矾寰勮〃绀鸿闂� '/referIndex' 鏃跺姞杞� Layout 缁勪欢
+        component: () => import('@/views/modelingMenu/ui/uiDefine/rightRegion/plShow'),
+        props: true
+      }
+    ],
+    meta:{
+      keepAlive: true,
+      isTab: true,
+      isAuth: true
+    }
+  }, {
+    path: '/base',
+    component: Layout,
+    redirect: '/viewTab',
+    children: [{
+      path: 'viewTab',
+      name: '鏌ョ湅璇︽儏',
+      meta: {
+        i18n: 'viewTab'
+      },
+      component: () =>
+        import('@/views/base/ViewTab')
+    }]
+  } ]
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue
index 5c87518..855611b 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue
@@ -98,7 +98,6 @@
       checkedTypes:[],
       searchText:'',
       activeName:'',
-      iconValue:'iconoir2:adobe-illustrator',
       allIconList:[],
       iconList:[],
       visible: false,
diff --git a/Source/plt-web/plt-web-ui/src/views/wel/adminIndex.vue b/Source/plt-web/plt-web-ui/src/views/wel/adminIndex.vue
new file mode 100644
index 0000000..810ee60
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/wel/adminIndex.vue
@@ -0,0 +1,233 @@
+<template>
+  <div>
+    <el-row>
+      <el-col :span="24">
+        <basic-container v-loading="loading">
+          <avue-data-tabs :option="topOption"></avue-data-tabs>
+        </basic-container>
+      </el-col>
+    </el-row>
+    <el-row>
+      <el-col :span="16" style="height: 560px">
+        <basic-container>
+          <el-collapse v-model="activeNames">
+            <el-collapse-item name="1" title="娆㈣繋浣跨敤PLT-WEB骞冲彴">
+              <div>
+                1銆佸寳浜畯鍗氳繙杈剧鎶�鏈夐檺鍏徃锛堜互涓嬬畝绉扳�滃畯鍗氳繙杈锯�濓級闀挎湡涓撴敞浜庡埗閫犱笟淇℃伅鍖栧缓璁撅紝涓哄鎴锋彁渚涗紒涓氫俊鎭寲鏁翠綋瑙e喅鏂规鍙婄浉鍏宠蒋浠剁爺鍙戙�佸挩璇㈠強瀹炴柦鏈嶅姟銆傚畯鍗氳繙杈惧鎴风兢浣撴兜鐩栬埅绌恒�佽埅澶┿�佽埞鑸躲�佸叺鍣ㄣ�佹苯杞︺�侀�氱敤鏈烘銆佺數瀛愮瓑鍒堕�犺涓氾紝閫氳繃涓庡鎴锋繁搴﹀悎浣滐紝鎵挎媴浜嗗椤瑰浗瀹剁骇杞欢鐮斿彂涓庢妧鏈湇鍔¢」鐩紝鎷ユ湁澶氶」鍏锋湁鑷富鐭ヨ瘑浜ф潈鐨勮蒋浠朵骇鍝併��
+              </div>
+              <div>
+                2銆佷负浜嗙粰瀹㈡埛鎻愪緵鏇村鐨勬妧鏈垱鏂拌兘鍔涘強鐩稿簲鐨勪紒涓氱骇绠$悊鏀拺骞冲彴锛屽畯鍗氳繙杈剧爺鍙戜簡鍏锋湁鑷富鐭ヨ瘑浜ф潈鐨勪紒涓氱骇淇℃伅鍖栨暣浣撹В鍐虫柟妗堬紝鍚屾椂閽堝瀹㈡埛鐨勭壒瀹氶渶姹傦紝鎻愪緵浜嗛珮搴﹀彲瀹氬埗鐨勪笓涓氬簲鐢ㄣ�備负浜嗚繘涓�姝ユ彁鍗囨妧鏈湇鍔¤兘鍔涳紝瀹忓崥杩滆揪鎶曞叆涓撻棬鍔涢噺鍦ㄥ墠娌挎妧鏈柟闈㈣繘琛屾帰绱紝鍦ㄤ紒涓氱鏈変簯璁$畻鍜屽ぇ鏁版嵁绛夐鍩熶笉鏂彇寰楃獊鐮淬�傞殢鐫�鏂颁竴浠d笟鍔′笌绠$悊鎶�鏈钩鍙扮殑鎺ㄥ嚭锛屾洿澧炲己浜嗗叕鍙镐负瀹㈡埛鎻愪緵楂樿川閲忋�佸叏鏂逛綅銆佹繁灞傛鏈嶅姟鐨勬妧鏈兘鍔涖��
+              </div>
+              <div>
+                3銆佸畯鍗氳繙杈句竴鐩寸鎵库�滅敤鏅烘収涓哄鎴峰垱閫犱环鍊尖�濈殑瀹楁棬锛屾効浠モ�滆瘹淇¤礋璐b�濈殑鎬佸害鍜屼笓涓氬寲鐨勬湇鍔★紝鍦ㄤ紒涓氫俊鎭寲鍙戝睍鐨勯亾璺笂锛屼笌瀹㈡埛涓�璧锋垚闀匡紝鍏卞悓瑙佽瘉鎴愬姛锛�
+              </div>
+            </el-collapse-item>
+
+            <el-collapse-item name="2" title="鏈嶅姟璁″垝鍒跺畾">
+              <div>
+                1銆佹牴鎹鎴峰疄闄呴渶姹傦紝瀹忓崥杩滆揪灏嗕笌瀹㈡埛鍏卞悓鍒跺畾骞村害鏈嶅姟璁″垝锛屽晢瀹氬叿浣撶殑鏈嶅姟瀵硅薄銆佹湇鍔″唴瀹广�佸畾鏈熺淮鎶ょ殑鏈嶅姟鏃堕棿銆佹妧鏈氦娴佺殑涓婚銆佸叿浣撶殑缁存姢浜哄憳瀹夋帓绛夋湇鍔$粏鑺傘��
+              </div>
+              <div>
+                2銆佸鎴峰彲閫氳繃鐢佃瘽銆佺數瀛愰偖浠躲�佸嚱浠剁瓑鏂瑰紡鍙栧緱绯荤粺鎶�鏈敮鎸併�傚浜庣郴缁熶互澶栫殑闂锛屾垜浠細灏藉姏鍗忓姪瀹㈡埛鎵惧埌瑙e喅閫斿緞銆�
+              </div>
+              <div>
+                3銆佸浜庤繙绋嬫棤娉曡В鍐崇殑鏁呴殰(闂)锛屽畯鍗氳繙杈惧伐绋嬪笀灏嗗湪鍚堝悓瑙勫畾鐨勬椂闂村唴鍒拌揪瀹㈡埛鐜板満杩涜鏁呴殰璇婃柇鍙婂鐞嗭紝鍋氬ソ鐩稿簲鐨勮褰曘�傚繀瑕佹椂闇�瑕侀噸鏂版敹闆嗙郴缁熶俊鎭紝骞跺綊妗c�傚浜庨潪绯荤粺鐨勫師鍥犺�屽紩璧风殑鏁呴殰(闂)锛屽畯鍗氳繙杈惧皢鍏冲績鍜屽崗鍔╁鎴疯В鍐虫晠闅�(闂)銆�
+              </div>
+              <div>
+                4銆佸湪鍏朵粬鎯呭舰涓嬶紝瀹忓崥杩滆揪涔熷彲鎻愪緵蹇呰鐨勭幇鍦烘湇鍔°�傚涓哄鎴疯幏寰楃殑鍚堟硶鎿嶄綔绯荤粺杩涜鍗囩骇鏈嶅姟銆佷负瀹㈡埛瀹夎蹇呰鐨勮蒋浠剁瓑鐨勬湇鍔°�侀厤鍚堝鎴峰仛涓绘満绯荤粺鏂归潰鐨勬祴璇曘�佷负瀹㈡埛鐨勫簲鐢ㄨ皟鏁存彁渚涚郴缁熸柟闈㈢殑鏀寔绛夌瓑銆�
+              </div>
+              <div>
+                5銆佸畯鍗氳繙杈捐繕灏嗕负瀹㈡埛鎻愪緵瀹氭湡鐨勭郴缁熸�ц兘璇勪及涓庝紭鍖栨湇鍔°�傞�氳繃瀵圭郴缁熻繍琛屾暟鎹殑娣卞叆鍒嗘瀽锛屾垜浠皢璇嗗埆娼滃湪鐨勬�ц兘鐡堕锛屾彁鍑洪拡瀵规�х殑浼樺寲寤鸿锛屽苟鍗忓姪瀹㈡埛瀹炴柦浼樺寲鎺柦銆傝繖鍖呮嫭浣嗕笉闄愪簬纭欢璧勬簮鐨勫悎鐞嗛厤缃�佽蒋浠跺弬鏁扮殑璋冧紭銆佹暟鎹簱鎬ц兘鐨勬彁鍗囩瓑锛屾棬鍦ㄧ‘淇濈郴缁熻兘澶熸寔缁ǔ瀹氥�侀珮鏁堝湴杩愯锛屾弧瓒冲鎴风殑涓氬姟鍙戝睍闇�姹傘�傚悓鏃讹紝鎴戜滑涔熷皢鏍规嵁绯荤粺璇勪及缁撴灉锛屼负瀹㈡埛鎻愪緵鏈潵鐨勭郴缁熷崌绾у拰鎵╁睍瑙勫垝寤鸿锛屽府鍔╁鎴锋彁鍓嶅竷灞�锛屽簲瀵规湭鏉ョ殑涓氬姟澧為暱鍜屾妧鏈彉闈┿��
+              </div>
+            </el-collapse-item>
+          </el-collapse>
+        </basic-container>
+      </el-col>
+      <el-col :span="8" style="height: 560px">
+        <el-row>
+          <basic-container>
+            <div class="el-font-size">
+              <span>浜у搧鍚嶇О</span>
+              <el-divider direction="vertical"/>
+              <span><el-tag>PLT-WEB骞冲彴</el-tag></span>
+              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
+
+              <span>褰撳墠鐢ㄦ埛</span>
+              <el-divider direction="vertical"/>
+              <span><el-tag type="success">{{ userInfo.userName }}</el-tag></span>
+              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
+
+              <span>璇存槑鏂囨。</span>
+              <el-divider direction="vertical"/>
+              <span>
+                <el-link href="https://bladex.vip" target="_blank"
+                         type="primary">https://bladex.vip
+                </el-link>
+              </span>
+              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
+
+            </div>
+          </basic-container>
+          <basic-container>
+            <div style="height: 309px">
+              <v-chart id="chart" :auto-resize="true" :options="chartOptions"></v-chart>
+            </div>
+          </basic-container>
+        </el-row>
+
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from "vuex";
+import {getLogListByContion} from "@/api/system/log/logBasic";
+import 'echarts'
+import 'echarts/lib/chart/pie' // 瀵煎叆鏌辩姸鍥剧粍浠�
+import 'echarts/lib/component/tooltip'
+import 'echarts/lib/component/legend'
+import func from "@/util/func";
+
+export default {
+  name: "adminIndex",
+  data() {
+    return {
+      loading: false,
+      activeNames: ['1', '2', '3', '5'],
+      logActiveNames: ['28'],
+      topOption: {
+        data: []
+      },
+      chartOptions: {
+        title: {
+          text: '',
+        },
+        tooltip: {
+          trigger: 'item'
+        },
+        legend: {
+          top: '5%',
+          left: 'center'
+        },
+        series: [
+          {
+            name: '鏃ュ織缁熻',
+            type: 'pie',
+            radius: ['45%', '70%'],
+            avoidLabelOverlap: false,
+            padAngle: 5,
+            itemStyle: {
+              borderRadius: 10,
+              normal: {
+                color: function (colors) {
+                  const colorList = ['rgb(230, 71, 88)', 'rgb(178, 159, 255)', 'rgb(27, 201, 142)'];
+                  return colorList[colors.dataIndex];
+                }
+              }
+            },
+            label: {
+              show: false,
+              position: 'center'
+            },
+            emphasis: {
+              label: {
+                show: true,
+                fontSize: 14,
+                fontWeight: 'bold'
+              }
+            },
+            labelLine: {
+              show: false
+            },
+            data: []
+          }
+        ]
+      }
+    };
+  },
+  computed: {
+    ...mapGetters(["userInfo"]),
+  },
+  created() {
+    this.getLogHandler();
+  },
+  methods: {
+    getLogHandler() {
+      this.loading = true;
+
+      // 鏃ュ織璇锋眰鍜屽睍绀虹殑鐩稿叧鐨勯厤缃�
+      const logConfig = [
+        {
+          logType: "1",
+          logName: "鐧诲綍鏃ュ織缁熻",
+          text: "褰撳墠鐧诲綍鏃ュ織鎬昏褰曟暟",
+          color: 'rgb(230, 71, 88)',
+          router: '/LogInfoMain?logType=1&roleType=2'
+        },
+        {
+          logType: "3",
+          logName: "鎺堟潈鏃ュ織缁熻",
+          text: "褰撳墠鎺堟潈鏃ュ織鎬昏褰曟暟",
+          color: 'rgb(178, 159, 255)',
+          router: '/LogAuthorizeMain?logType=3&roleType=2'
+        },
+        {
+          logType: "4",
+          logName: "鎿嶄綔鏃ュ織缁熻",
+          text: "褰撳墠鎿嶄綔鏃ュ織鎬昏褰曟暟",
+          color: 'rgb(27, 201, 142)',
+          router: '/LogOperateMain?logType=4&roleType=2'
+        },
+      ];
+
+      const roleType = "2";
+
+      const requests = logConfig.map(config => getLogListByContion(1, -1, {logType: config.logType, roleType}));
+
+      Promise.all(requests).then(responses => {
+        // 璁$畻涓変釜鏃ュ織鐨勬�诲拰
+        const totalCount = responses.reduce((sum, res) => sum + (res.data.total || 0), 0);
+
+        this.topOption.data = responses.map((res, index) => ({
+          title: logConfig[index].logName,
+          text: logConfig[index].text,
+          color: logConfig[index].color,
+          subtitle: '瀹炴椂',
+          count: res.data.total,
+          allcount: `鏃ュ織鎬绘暟锛�${totalCount}`,
+          key: '鏃ュ織',
+          click: () => this.$router.push({path: logConfig[index].router}),
+        }));
+
+        const chartData = responses.map((res, index) => ({
+          name: logConfig[index].logName,
+          value: res.data.total,
+        }));
+        this.$set(this.chartOptions.series[0], 'data', chartData);
+
+        this.loading = false;
+      }).catch(error => {
+        this.$message.error(error);
+        this.loading = false;
+      });
+    }
+  },
+};
+</script>
+
+<style>
+.el-font-size {
+  font-size: 14px;
+}
+
+.avue-text-ellipsis__text {
+  font-size: 14px !important;
+}
+
+#chart {
+  width: 100%;
+  height: 309px;
+}
+</style>
+
diff --git a/Source/plt-web/plt-web-ui/src/views/wel/components/UndoTaskPortlet.vue b/Source/plt-web/plt-web-ui/src/views/wel/components/UndoTaskPortlet.vue
index c0d691a..35eb19d 100644
--- a/Source/plt-web/plt-web-ui/src/views/wel/components/UndoTaskPortlet.vue
+++ b/Source/plt-web/plt-web-ui/src/views/wel/components/UndoTaskPortlet.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container title="寰呭姙娴佺▼浠诲姟">
+  <basic-container title="寰呭姙娴佺▼浠诲姟" :style="'height:'+height+'px' ">
     <avue-crud ref="crud" :data="todoData" :option="todoOption" :page.sync="page"
                :table-loading="loading"
                @on-load="onLoad"
@@ -18,6 +18,17 @@
 <script>
 export default {
   name: "UndoTaskPortlet",
+  props:{
+    height:  {
+      type: Number
+    },
+    title:  {
+      type: String
+    },
+    icon:  {
+      type: String
+    }
+  },
   data(){
     return {
       loading: false,
@@ -30,7 +41,7 @@
       todoData: [],
       // 浠e姙娴佺▼浠诲姟option
       todoOption: {
-        height: 500,
+        height: 'auto',
         addBtn: false,
         header: false,
         align: 'center',
@@ -86,12 +97,12 @@
   },
   methods: {
     onLoad(page, params = {}) {
-      this.loading = true;
+      //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 => {
+      /*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;
@@ -100,6 +111,8 @@
         this.$message.error(error);
         this.loading = false;
       })
+
+       */
     },
     cellHandle(row, column, cell, event) {
       if (column.property == 'taskName') {
diff --git a/Source/plt-web/plt-web-ui/src/views/wel/components/taskPortlet.vue b/Source/plt-web/plt-web-ui/src/views/wel/components/taskPortlet.vue
new file mode 100644
index 0000000..b9dcee3
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/wel/components/taskPortlet.vue
@@ -0,0 +1,26 @@
+<template>
+  <basic-container title="寰呭姙浜嬮」" :style="'height:'+height+'px' ">
+    寰呭姙
+  </basic-container>
+</template>
+
+<script>
+export default {
+  name: "taskPortlet",
+  props:{
+    height:  {
+      type: Number
+    },
+    title:  {
+      type: String
+    },
+    icon:  {
+      type: String
+    }
+  },
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/wel/components/test.vue b/Source/plt-web/plt-web-ui/src/views/wel/components/test.vue
new file mode 100644
index 0000000..f2d1266
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/wel/components/test.vue
@@ -0,0 +1,26 @@
+<template>
+  <basic-container title="棣栭〉缁勪欢" :style="'height:'+height+'px' ">
+    棣栭〉缁勪欢
+  </basic-container>
+</template>
+
+<script>
+export default {
+  name: "test",
+  props:{
+    height:  {
+      type: Number
+    },
+    title:  {
+      type: String
+    },
+    icon:  {
+      type: String
+    }
+  },
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/wel/homeConfig.vue b/Source/plt-web/plt-web-ui/src/views/wel/homeConfig.vue
index 2aba3a8..73b5660 100644
--- a/Source/plt-web/plt-web-ui/src/views/wel/homeConfig.vue
+++ b/Source/plt-web/plt-web-ui/src/views/wel/homeConfig.vue
@@ -1,4 +1,5 @@
 <template>
+  <!-- 涓氬姟绠$悊 棣栭〉閰嶇疆 -->
   <basic-container>
     <avue-crud
       ref="crud"
@@ -53,8 +54,8 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="鍥炬爣锛�" prop="icon">
-              <avue-input-icon v-model="form.icon" :icon-list="iconList" placeholder="璇烽�夋嫨鍥炬爣">
-              </avue-input-icon>
+              <input-icon v-model="form.icon" placeholder="璇烽�夋嫨鍥炬爣">
+              </input-icon>
             </el-form-item>
           </el-col>
           <el-col :span="24">
diff --git a/Source/plt-web/plt-web-ui/src/views/wel/index.vue b/Source/plt-web/plt-web-ui/src/views/wel/index.vue
index 7d762f7..3f0e5c7 100644
--- a/Source/plt-web/plt-web-ui/src/views/wel/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/wel/index.vue
@@ -1,217 +1,45 @@
 <template>
   <div>
-    <el-row>
-      <el-col :span="24">
-        <basic-container v-loading="loading">
-          <avue-data-tabs :option="topOption"></avue-data-tabs>
-        </basic-container>
-      </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="16" style="height: 560px">
-        <basic-container>
-          <el-collapse v-model="activeNames">
-            <el-collapse-item name="1" title="娆㈣繋浣跨敤PLT-WEB骞冲彴">
-              <div>
-                1銆佸寳浜畯鍗氳繙杈剧鎶�鏈夐檺鍏徃锛堜互涓嬬畝绉扳�滃畯鍗氳繙杈锯�濓級闀挎湡涓撴敞浜庡埗閫犱笟淇℃伅鍖栧缓璁撅紝涓哄鎴锋彁渚涗紒涓氫俊鎭寲鏁翠綋瑙e喅鏂规鍙婄浉鍏宠蒋浠剁爺鍙戙�佸挩璇㈠強瀹炴柦鏈嶅姟銆傚畯鍗氳繙杈惧鎴风兢浣撴兜鐩栬埅绌恒�佽埅澶┿�佽埞鑸躲�佸叺鍣ㄣ�佹苯杞︺�侀�氱敤鏈烘銆佺數瀛愮瓑鍒堕�犺涓氾紝閫氳繃涓庡鎴锋繁搴﹀悎浣滐紝鎵挎媴浜嗗椤瑰浗瀹剁骇杞欢鐮斿彂涓庢妧鏈湇鍔¢」鐩紝鎷ユ湁澶氶」鍏锋湁鑷富鐭ヨ瘑浜ф潈鐨勮蒋浠朵骇鍝併��
-              </div>
-              <div>
-                2銆佷负浜嗙粰瀹㈡埛鎻愪緵鏇村鐨勬妧鏈垱鏂拌兘鍔涘強鐩稿簲鐨勪紒涓氱骇绠$悊鏀拺骞冲彴锛屽畯鍗氳繙杈剧爺鍙戜簡鍏锋湁鑷富鐭ヨ瘑浜ф潈鐨勪紒涓氱骇淇℃伅鍖栨暣浣撹В鍐虫柟妗堬紝鍚屾椂閽堝瀹㈡埛鐨勭壒瀹氶渶姹傦紝鎻愪緵浜嗛珮搴﹀彲瀹氬埗鐨勪笓涓氬簲鐢ㄣ�備负浜嗚繘涓�姝ユ彁鍗囨妧鏈湇鍔¤兘鍔涳紝瀹忓崥杩滆揪鎶曞叆涓撻棬鍔涢噺鍦ㄥ墠娌挎妧鏈柟闈㈣繘琛屾帰绱紝鍦ㄤ紒涓氱鏈変簯璁$畻鍜屽ぇ鏁版嵁绛夐鍩熶笉鏂彇寰楃獊鐮淬�傞殢鐫�鏂颁竴浠d笟鍔′笌绠$悊鎶�鏈钩鍙扮殑鎺ㄥ嚭锛屾洿澧炲己浜嗗叕鍙镐负瀹㈡埛鎻愪緵楂樿川閲忋�佸叏鏂逛綅銆佹繁灞傛鏈嶅姟鐨勬妧鏈兘鍔涖��
-              </div>
-              <div>
-                3銆佸畯鍗氳繙杈句竴鐩寸鎵库�滅敤鏅烘収涓哄鎴峰垱閫犱环鍊尖�濈殑瀹楁棬锛屾効浠モ�滆瘹淇¤礋璐b�濈殑鎬佸害鍜屼笓涓氬寲鐨勬湇鍔★紝鍦ㄤ紒涓氫俊鎭寲鍙戝睍鐨勯亾璺笂锛屼笌瀹㈡埛涓�璧锋垚闀匡紝鍏卞悓瑙佽瘉鎴愬姛锛�
-              </div>
-            </el-collapse-item>
-
-            <el-collapse-item name="2" title="鏈嶅姟璁″垝鍒跺畾">
-              <div>
-                1銆佹牴鎹鎴峰疄闄呴渶姹傦紝瀹忓崥杩滆揪灏嗕笌瀹㈡埛鍏卞悓鍒跺畾骞村害鏈嶅姟璁″垝锛屽晢瀹氬叿浣撶殑鏈嶅姟瀵硅薄銆佹湇鍔″唴瀹广�佸畾鏈熺淮鎶ょ殑鏈嶅姟鏃堕棿銆佹妧鏈氦娴佺殑涓婚銆佸叿浣撶殑缁存姢浜哄憳瀹夋帓绛夋湇鍔$粏鑺傘��
-              </div>
-              <div>
-                2銆佸鎴峰彲閫氳繃鐢佃瘽銆佺數瀛愰偖浠躲�佸嚱浠剁瓑鏂瑰紡鍙栧緱绯荤粺鎶�鏈敮鎸併�傚浜庣郴缁熶互澶栫殑闂锛屾垜浠細灏藉姏鍗忓姪瀹㈡埛鎵惧埌瑙e喅閫斿緞銆�
-              </div>
-              <div>
-                3銆佸浜庤繙绋嬫棤娉曡В鍐崇殑鏁呴殰(闂)锛屽畯鍗氳繙杈惧伐绋嬪笀灏嗗湪鍚堝悓瑙勫畾鐨勬椂闂村唴鍒拌揪瀹㈡埛鐜板満杩涜鏁呴殰璇婃柇鍙婂鐞嗭紝鍋氬ソ鐩稿簲鐨勮褰曘�傚繀瑕佹椂闇�瑕侀噸鏂版敹闆嗙郴缁熶俊鎭紝骞跺綊妗c�傚浜庨潪绯荤粺鐨勫師鍥犺�屽紩璧风殑鏁呴殰(闂)锛屽畯鍗氳繙杈惧皢鍏冲績鍜屽崗鍔╁鎴疯В鍐虫晠闅�(闂)銆�
-              </div>
-              <div>
-                4銆佸湪鍏朵粬鎯呭舰涓嬶紝瀹忓崥杩滆揪涔熷彲鎻愪緵蹇呰鐨勭幇鍦烘湇鍔°�傚涓哄鎴疯幏寰楃殑鍚堟硶鎿嶄綔绯荤粺杩涜鍗囩骇鏈嶅姟銆佷负瀹㈡埛瀹夎蹇呰鐨勮蒋浠剁瓑鐨勬湇鍔°�侀厤鍚堝鎴峰仛涓绘満绯荤粺鏂归潰鐨勬祴璇曘�佷负瀹㈡埛鐨勫簲鐢ㄨ皟鏁存彁渚涚郴缁熸柟闈㈢殑鏀寔绛夌瓑銆�
-              </div>
-              <div>
-                5銆佸畯鍗氳繙杈捐繕灏嗕负瀹㈡埛鎻愪緵瀹氭湡鐨勭郴缁熸�ц兘璇勪及涓庝紭鍖栨湇鍔°�傞�氳繃瀵圭郴缁熻繍琛屾暟鎹殑娣卞叆鍒嗘瀽锛屾垜浠皢璇嗗埆娼滃湪鐨勬�ц兘鐡堕锛屾彁鍑洪拡瀵规�х殑浼樺寲寤鸿锛屽苟鍗忓姪瀹㈡埛瀹炴柦浼樺寲鎺柦銆傝繖鍖呮嫭浣嗕笉闄愪簬纭欢璧勬簮鐨勫悎鐞嗛厤缃�佽蒋浠跺弬鏁扮殑璋冧紭銆佹暟鎹簱鎬ц兘鐨勬彁鍗囩瓑锛屾棬鍦ㄧ‘淇濈郴缁熻兘澶熸寔缁ǔ瀹氥�侀珮鏁堝湴杩愯锛屾弧瓒冲鎴风殑涓氬姟鍙戝睍闇�姹傘�傚悓鏃讹紝鎴戜滑涔熷皢鏍规嵁绯荤粺璇勪及缁撴灉锛屼负瀹㈡埛鎻愪緵鏈潵鐨勭郴缁熷崌绾у拰鎵╁睍瑙勫垝寤鸿锛屽府鍔╁鎴锋彁鍓嶅竷灞�锛屽簲瀵规湭鏉ョ殑涓氬姟澧為暱鍜屾妧鏈彉闈┿��
-              </div>
-            </el-collapse-item>
-          </el-collapse>
-        </basic-container>
-      </el-col>
-      <el-col :span="8" style="height: 560px">
-        <el-row>
-          <basic-container>
-            <div class="el-font-size">
-              <span>浜у搧鍚嶇О</span>
-              <el-divider direction="vertical"/>
-              <span><el-tag>PLT-WEB骞冲彴</el-tag></span>
-              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
-
-              <span>褰撳墠鐢ㄦ埛</span>
-              <el-divider direction="vertical"/>
-              <span><el-tag type="success">{{ userInfo.userName }}</el-tag></span>
-              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
-
-              <span>璇存槑鏂囨。</span>
-              <el-divider direction="vertical"/>
-              <span>
-                <el-link href="https://bladex.vip" target="_blank"
-                         type="primary">https://bladex.vip
-                </el-link>
-              </span>
-              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
-
-            </div>
-          </basic-container>
-          <basic-container>
-            <div style="height: 309px">
-              <v-chart id="chart" :auto-resize="true" :options="chartOptions"></v-chart>
-            </div>
-          </basic-container>
-        </el-row>
-
-      </el-col>
-    </el-row>
+    <component :is="showComponent"></component>
   </div>
 </template>
 
 <script>
 import {mapGetters} from "vuex";
-import {getLogListByContion} from "@/api/system/log/logBasic";
-import 'echarts'
-import 'echarts/lib/chart/pie' // 瀵煎叆鏌辩姸鍥剧粍浠�
-import 'echarts/lib/component/tooltip'
-import 'echarts/lib/component/legend'
-import func from "@/util/func";
+import adminIndex from './adminIndex.vue';
+import workIndex from './workIndex.vue';
 
 export default {
   name: "wel",
+  components:{adminIndex,workIndex},
   data() {
     return {
-      loading: false,
-      activeNames: ['1', '2', '3', '5'],
-      logActiveNames: ['28'],
-      topOption: {
-        data: []
-      },
-      chartOptions: {
-        title: {
-          text: '',
-        },
-        tooltip: {
-          trigger: 'item'
-        },
-        legend: {
-          top: '5%',
-          left: 'center'
-        },
-        series: [
-          {
-            name: '鏃ュ織缁熻',
-            type: 'pie',
-            radius: ['45%', '70%'],
-            avoidLabelOverlap: false,
-            padAngle: 5,
-            itemStyle: {
-              borderRadius: 10,
-              normal: {
-                color: function (colors) {
-                  const colorList = ['rgb(230, 71, 88)', 'rgb(178, 159, 255)', 'rgb(27, 201, 142)'];
-                  return colorList[colors.dataIndex];
-                }
-              }
-            },
-            label: {
-              show: false,
-              position: 'center'
-            },
-            emphasis: {
-              label: {
-                show: true,
-                fontSize: 14,
-                fontWeight: 'bold'
-              }
-            },
-            labelLine: {
-              show: false
-            },
-            data: []
-          }
-        ]
-      }
+      showComponent: null, // 鍒濆涓嶆樉绀轰换浣曠粍浠�
     };
   },
   computed: {
     ...mapGetters(["userInfo"]),
   },
+  watch: {
+    'userInfo.userId'() {
+      //鏄鐞嗗憳杩涘叆绠$悊鍛橀椤�
+      if(this.userInfo.userId.includes('admin')){
+        this.showComponent=adminIndex;
+      }else {
+        this.showComponent=workIndex;
+      }
+    }
+  },
   created() {
-    this.getLogHandler();
+    //鏄鐞嗗憳杩涘叆绠$悊鍛橀椤�
+    if(this.userInfo.userId.includes('admin')){
+      this.showComponent=adminIndex;
+    }else {
+      this.showComponent=workIndex;
+    }
   },
   methods: {
-    getLogHandler() {
-      this.loading = true;
 
-      // 鏃ュ織璇锋眰鍜屽睍绀虹殑鐩稿叧鐨勯厤缃�
-      const logConfig = [
-        {
-          logType: "1",
-          logName: "鐧诲綍鏃ュ織缁熻",
-          text: "褰撳墠鐧诲綍鏃ュ織鎬昏褰曟暟",
-          color: 'rgb(230, 71, 88)',
-          router: '/LogInfoMain?logType=1&roleType=2'
-        },
-        {
-          logType: "3",
-          logName: "鎺堟潈鏃ュ織缁熻",
-          text: "褰撳墠鎺堟潈鏃ュ織鎬昏褰曟暟",
-          color: 'rgb(178, 159, 255)',
-          router: '/LogAuthorizeMain?logType=3&roleType=2'
-        },
-        {
-          logType: "4",
-          logName: "鎿嶄綔鏃ュ織缁熻",
-          text: "褰撳墠鎿嶄綔鏃ュ織鎬昏褰曟暟",
-          color: 'rgb(27, 201, 142)',
-          router: '/LogOperateMain?logType=4&roleType=2'
-        },
-      ];
-
-      const roleType = "2";
-
-      const requests = logConfig.map(config => getLogListByContion(1, -1, {logType: config.logType, roleType}));
-
-      Promise.all(requests).then(responses => {
-        // 璁$畻涓変釜鏃ュ織鐨勬�诲拰
-        const totalCount = responses.reduce((sum, res) => sum + (res.data.total || 0), 0);
-
-        this.topOption.data = responses.map((res, index) => ({
-          title: logConfig[index].logName,
-          text: logConfig[index].text,
-          color: logConfig[index].color,
-          subtitle: '瀹炴椂',
-          count: res.data.total,
-          allcount: `鏃ュ織鎬绘暟锛�${totalCount}`,
-          key: '鏃ュ織',
-          click: () => this.$router.push({path: logConfig[index].router}),
-        }));
-
-        const chartData = responses.map((res, index) => ({
-          name: logConfig[index].logName,
-          value: res.data.total,
-        }));
-        this.$set(this.chartOptions.series[0], 'data', chartData);
-
-        this.loading = false;
-      }).catch(error => {
-        this.$message.error(error);
-        this.loading = false;
-      });
-    }
   },
 };
 </script>
diff --git a/Source/plt-web/plt-web-ui/src/views/wel/workIndex.vue b/Source/plt-web/plt-web-ui/src/views/wel/workIndex.vue
index 69a16ca..8718080 100644
--- a/Source/plt-web/plt-web-ui/src/views/wel/workIndex.vue
+++ b/Source/plt-web/plt-web-ui/src/views/wel/workIndex.vue
@@ -1,22 +1,35 @@
 <template>
   <div>
     <el-row>
-      <el-col v-for="item in homeData" :span="item.span">
-        <component :is="item.currentComponent" :key="item.component"></component>
+      <el-col v-for="item in homeData" :span="item.span" :xs="24">
+        <component :height="height*item.height" :is="item.component" :key="item.component" :title="item.title" :icon="item.icon"></component>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
+import UndoTaskPortlet from './components/UndoTaskPortlet.vue';
+import taskPortlet from './components/taskPortlet.vue';
+import test from './components/test.vue';
 export default {
   name: "workIndex",
-  components:{},
+  components:{UndoTaskPortlet,taskPortlet,test},
   data(){
     return {
+      height:document.body.clientHeight-115,
       homeData:[{
         component:'UndoTaskPortlet',
-        span:24
+        height:0.4,
+        span:16
+      },{
+        component:'taskPortlet',
+        height:0.3,
+        span:5
+      },{
+        component:'test',
+        height:0.6,
+        span:12
       }]
     }
   },
@@ -25,20 +38,6 @@
   },
   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);
-      });
     },
   }
 }

--
Gitblit v1.9.3