From 083c818af77d33d619dba3dc20f94e996225a1c7 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期四, 16 五月 2024 10:28:39 +0800
Subject: [PATCH] 增加人事系统对接

---
 src/view/index.vue |  158 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 138 insertions(+), 20 deletions(-)

diff --git a/src/view/index.vue b/src/view/index.vue
index 200863a..b9ff928 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -16,7 +16,7 @@
 	}
 
 	.logo {
-		width: 130px;
+		width: 118px;
 		height: 40px;
 	}
 
@@ -53,6 +53,12 @@
 	.user span {
 		font-size: 14px;
 	}
+  .el-dropdown{
+    display: flex;
+    align-items: center;
+    color: #000;
+    cursor: pointer;
+  }
 
 	.left {
 		height: calc(100vh - 48px - 40px);
@@ -219,8 +225,8 @@
 
 	.component_view {
 		height: calc(100vh - 84px);
-		width: calc(100% - 52px);
-		padding: 0 26px;
+		width: calc(100% - 40px);
+		padding: 0 20px;
 		background: rgb(245, 247, 251);
 	}
 
@@ -230,12 +236,12 @@
 	}
 
 	.right_key_menu {
-		width: 120px;
+		width: 130px;
 		position: absolute;
 		top: 0;
 		left: 0;
 		display: none;
-		z-index: 999;
+		z-index: 9998;
 		padding: 0;
 	}
 
@@ -249,7 +255,7 @@
 	}
 
 	.right_key_menu li i {
-		margin-right: 14px;
+		margin-right: 10px;
 	}
 
 	.right_key_menu li:hover {
@@ -263,6 +269,22 @@
 		cursor: auto !important;
 		margin: 8px 12px;
 	}
+
+  .search_thing {
+    display: flex;
+    align-items: center;
+    height: 50px;
+  }
+
+  .search_label {
+    width: 90px;
+    font-size: 14px;
+    text-align: right;
+  }
+
+  .search_input {
+    width: calc(100% - 120px);
+  }
 </style>
 <style></style>
 <template>
@@ -273,8 +295,16 @@
 			</div>
 			<div class="label">LIMS瀹為獙瀹ょ鐞嗙郴缁�</div>
 			<div class="user">
-				<el-avatar :size="26">{{ userName.substring(0, 1) }}</el-avatar>
-				<span>{{ userName }}</span>
+        <el-badge :is-dot="newMsg" style="cursor: pointer;margin-right: 10px;">
+          <i class="el-icon-bell" style="font-size: 20px;" @click="openNotice"></i>
+        </el-badge>
+        <el-dropdown trigger="click" @command="handleCommand">
+          <el-avatar :size="26">{{ userName.substring(0, 1) }}</el-avatar>
+				  <span>{{ userName }}</span>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item>淇敼瀵嗙爜</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
 				<img src="../../static/img/閫�鍑�.png" @click="out" title="閫�鍑鸿处鍙�" />
 			</div>
 		</div>
@@ -327,14 +357,43 @@
 			<el-col :span="24">
 				<el-card :body-style="{padding: '6px'}">
 					<ul>
-						<li @click="removeTab(activeIndex)"><i class="el-icon-close"></i>鍏抽棴</li>
+						<li @click="removeTab(activeIndex)" v-show="menuId!=0"><i class="el-icon-close"></i>鍏抽棴</li>
 						<li @click="allDel"><i class="el-icon-delete"></i>鍏抽棴鎵�鏈�</li>
+						<li @click="rightDel(activeIndex)"><i class="el-icon-d-arrow-right"></i>鍏抽棴鍙充晶椤电</li>
 						<el-divider></el-divider>
 						<li @click="refreshTable"><i class="el-icon-refresh"></i>鍒锋柊</li>
 					</ul>
 				</el-card>
 			</el-col>
 		</div>
+    <!-- 淇敼瀵嗙爜 -->
+    <el-dialog
+      title="淇敼瀵嗙爜"
+      :visible.sync="editVisible"
+      width="400px"
+      :before-close="handleClose">
+      <el-row>
+        <el-col class="search_thing" :span="24">
+          <div class="search_label"><span class="required-span">* </span>鏃у瘑鐮侊細</div>
+          <div class="search_input">
+            <el-input v-model="query.oldPassword" size="small" clearable show-password></el-input>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col class="search_thing" :span="24">
+          <div class="search_label"><span class="required-span">* </span>鏂板瘑鐮侊細</div>
+          <div class="search_input">
+            <el-input v-model="query.newPassWord" size="small" clearable show-password></el-input>
+          </div>
+        </el-col>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleClose">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleEdit">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <notice ref="notice" @goNoticeDetail="checkForUnreadData()" />
 	</div>
 </template>
 
@@ -351,9 +410,10 @@
 	});
 	import menus from '../../static/js/menu.js'
 	import nullFace from '../view/404.vue'
+  import notice from './notice.vue'
 	comObj['nullFace'] = nullFace
 	export default {
-		components: comObj,
+		components: {...comObj,notice},
 		data() {
 			return {
 				userName: "value",
@@ -365,7 +425,12 @@
 				tabs: [],
 				upIndex: 0,
 				activeIndex: 0,
-				power: []
+				power: [],
+        editVisible:false,
+        query:{},
+        newMsg:false,
+        timer:null,
+        menuId: 0
 			};
 		},
 		created() {
@@ -380,7 +445,7 @@
 					k: 0,
 					v: "涓汉棣栭〉",
 					i: "font icon-a-Group1124",
-					u: "nullFace"
+					u: "index-index"
 				}]
 			}
 			this.tabActive = JSON.parse(localStorage.getItem('tabActive'))
@@ -396,6 +461,11 @@
 				this.activeBox = 0
 			}
 			this.getPower()
+      this.timer&&clearInterval(this.timer);
+      this.checkForUnreadData()
+      this.timer = setInterval(()=>{
+        this.checkForUnreadData()
+      },30000)
 		},
 		methods: {
 			saveClick(){
@@ -426,10 +496,14 @@
 			removeTab(index) {
 				this.tabs.splice(index, 1);
 				let data = this.tabs[this.tabs.length - 1]
-				this.activeP = data.k;
-				this.tabActive = data.k;
-				this.activeBox = data.k
-				this.saveClick()
+				this.upTabActive(data.k)
+			},
+			rightDel(index){
+				for (var i = this.tabs.length - 1; i > index; i--) {
+					this.tabs.splice(i, 1);
+				}
+				let data = this.tabs[this.tabs.length - 1]
+				this.upTabActive(data.k)
 			},
 			allDel() {
 				this.activeBox = 0
@@ -439,7 +513,7 @@
 					k: 0,
 					v: "涓汉棣栭〉",
 					i: "font icon-a-Group1124",
-					u: "nullFace"
+					u: "index-index"
 				}]
 				this.saveClick()
 			},
@@ -473,7 +547,8 @@
 			},
 			// 鍙抽敭鑿滃崟
 			rightKeyMenu(id, e) {
-				if (id == 0) return
+				// if (id == 0) return
+        this.menuId = id
 				this.activeIndex = id
 				var x = e.clientX + 'px'
 				var y = e.clientY + 'px'
@@ -519,7 +594,50 @@
 				if (count > 4) return 8
 				if (count > 1) return 12
 				if (count == 1) return 24
-			}
-		}
+			},
+      // 淇敼瀵嗙爜-鎵撳紑寮圭獥
+      handleCommand(e){
+        this.editVisible = true;
+      },
+      handleEdit(){
+        if (!this.query.oldPassword) {
+          this.$message.error('璇峰~鍐欐棫瀵嗙爜')
+          return
+        }
+        if (!this.query.newPassWord) {
+          this.$message.error('璇峰~鍐欐棫瀵嗙爜')
+          return
+        }
+        this.$axios.post(this.$api.user.upUserPassword, {...this.query}).then(res => {
+            if (res.code == 201) {
+              this.$message.error('淇敼澶辫触')
+              return
+            }
+            this.$message.success('淇敼鎴愬姛')
+            this.editVisible = false
+            this.query = {}
+            this.out();
+          })
+      },
+      handleClose(){
+        this.editVisible = false
+        this.query = {}
+      },
+      openNotice(){
+        this.$refs.notice.open()
+        this.$refs.notice.handleType()
+      },
+      checkForUnreadData(){
+        this.$axios.get(this.$api.informationNotification.checkForUnreadData).then(res => {
+          if (res.code == 201) {
+            return
+          }
+          this.newMsg = res.data
+        })
+      }
+		},
+    destroyed() {
+      this.timer&&clearInterval(this.timer);
+    }
 	};
 </script>

--
Gitblit v1.9.3