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