|  |  | <template> | 
|  |  | <el-row class="container darkmenu" style="margin-top: 0px;"> | 
|  |  | <el-col :span="24" class="header" style="background-position: center"> | 
|  |  | <el-col :span="10" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'"> | 
|  |  | <el-col :span="14" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'"> | 
|  |  | {{collapsed?'':sysName}} | 
|  |  | </el-col> | 
|  |  | <el-col :span="10"> | 
|  |  | <div class="tools" @click.prevent="collapse" style="width: 380px"> | 
|  |  | <i class="fa "></i> | 
|  |  | <el-col :span="6"> | 
|  |  | <div class="tools" @click.prevent="collapse"  style="font-size:24px;width: 15px;margin-top: 80px;z-index:9999;margin-left: 10px;position:absolute;"> | 
|  |  | <!--                    ;margin-top: 80px;z-index:9999;margin-left: 170px--> | 
|  |  | <i class="el-icon-s-operation" style="color: rgb(38,56,76)"></i> | 
|  |  | </div> | 
|  |  | <!--                标签i的图标 fa-align-justify--> | 
|  |  | </el-col> | 
|  |  | <el-col :span="4" class="userinfo"> | 
|  |  | <el-dropdown trigger="hover" > | 
|  |  | <span class="el-dropdown-link userinfo-inner">{{sysUserName}}<img :src="this.sysUserAvatar"/></span> | 
|  |  | <el-dropdown-menu slot="dropdown"> | 
|  |  | <el-dropdown-item>我的消息</el-dropdown-item> | 
|  |  | <el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item> | 
|  |  | <el-dropdown-item @click.native="updateCache">更新缓存</el-dropdown-item> | 
|  |  | <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item> | 
|  |  | </el-dropdown-menu> | 
|  |  | </el-dropdown> | 
|  |  | <!--            <el-col :span="4" class="userinfo">--> | 
|  |  | <!--                <el-dropdown trigger="hover" >--> | 
|  |  | <!--                    <span class="el-dropdown-link userinfo-inner">{{sysUserName}}<img :src="this.sysUserAvatar"/></span>--> | 
|  |  | <!--                    <el-dropdown-menu slot="dropdown">--> | 
|  |  | <!--                        <el-dropdown-item>我的消息</el-dropdown-item>--> | 
|  |  | <!--                        <el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item>--> | 
|  |  | <!--                        <el-dropdown-item @click.native="updateCache">更新缓存</el-dropdown-item>--> | 
|  |  | <!--                        <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>--> | 
|  |  | <!--                    </el-dropdown-menu>--> | 
|  |  | <!--                </el-dropdown>--> | 
|  |  | <!--            </el-col>--> | 
|  |  | </el-col> | 
|  |  | </el-col> | 
|  |  | <el-col> | 
|  |  | <el-dialog title="修改密码" :visible.sync="dialogFormVisible"> | 
|  |  | <el-form :model="resetForm" status-icon :rules="resetFormRules" ref="resetForm" label-width="100px"> | 
|  |  | <el-form-item label="用户名" prop="name"> | 
|  |  | <span>{{sysUserName}}</span> | 
|  |  | </el-form-item> | 
|  |  | <el-form-item label="新密码" prop="newpwd"> | 
|  |  | <el-input type="password" v-model="resetForm.newpwd" autocomplete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input> | 
|  |  | </el-form-item> | 
|  |  | <el-form-item label="确认密码" prop="renewpwd"> | 
|  |  | <el-input type="password" v-model="resetForm.renewpwd" auto-complete="off"></el-input> | 
|  |  | </el-form-item> | 
|  |  | <el-form-item> | 
|  |  | <el-button type="primary" @click="submitEdit('resetForm')" style="float:right">提 交</el-button> | 
|  |  | </el-form-item> | 
|  |  | <!--        <el-col>--> | 
|  |  | <!--            <el-dialog title="修改密码" :visible.sync="dialogFormVisible">--> | 
|  |  | <!--                <el-form :model="resetForm" status-icon :rules="resetFormRules" ref="resetForm" label-width="100px">--> | 
|  |  | <!--                    <el-form-item label="用户名" prop="name">--> | 
|  |  | <!--                        <span>{{sysUserName}}</span>--> | 
|  |  | <!--                    </el-form-item>--> | 
|  |  | <!--                    <el-form-item label="新密码" prop="newpwd">--> | 
|  |  | <!--                        <el-input type="password" v-model="resetForm.newpwd" autocomplete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input>--> | 
|  |  | <!--                    </el-form-item>--> | 
|  |  | <!--                    <el-form-item label="确认密码" prop="renewpwd">--> | 
|  |  | <!--                        <el-input type="password" v-model="resetForm.renewpwd" auto-complete="off"></el-input>--> | 
|  |  | <!--                    </el-form-item>--> | 
|  |  | <!--                    <el-form-item>--> | 
|  |  | <!--                        <el-button type="primary" @click="submitEdit('resetForm')" style="float:right">提 交</el-button>--> | 
|  |  | <!--                    </el-form-item>--> | 
|  |  |  | 
|  |  | </el-form> | 
|  |  | </el-dialog> | 
|  |  | </el-col> | 
|  |  | <!--                </el-form>--> | 
|  |  | <!--            </el-dialog>--> | 
|  |  | <!--        </el-col>--> | 
|  |  | <el-col :span="24" class="main"> | 
|  |  | <aside :class="collapsed?'menu-collapsed':'menu-expanded'"> | 
|  |  | <!--导航菜单--> | 
| ... | ... | @@ -99,54 +100,54 @@ | 
|  |  | }, | 
|  |  | components: {ElFormItem,TabMenu}, | 
|  |  | data() { | 
|  |  | var validatePass = (rule, value, callback) => { | 
|  |  | if (!value) { | 
|  |  | callback(new Error('请输入新密码')); | 
|  |  | }else { | 
|  |  | var ls=0; | 
|  |  | if(value.match(/([a-z])+/)){ | 
|  |  | ls++; | 
|  |  | } if(value.match(/([0-9])+/)){ | 
|  |  | ls++; | 
|  |  | } if(value.match(/([A-Z])+/)){ | 
|  |  | ls++; | 
|  |  | } if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){ | 
|  |  | ls++; | 
|  |  | }  if (value.toString().length < 8 || value.toString().length > 20) { | 
|  |  | callback(new Error('密码长度为8 - 20个字符')); | 
|  |  | ls=0; | 
|  |  | } if(value.match(/([\u4E00-\u9FA5])+/)){ | 
|  |  | callback(new Error('不能包含中文字符')); | 
|  |  | ls=0; | 
|  |  | } | 
|  |  | switch (ls) { | 
|  |  | case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break; | 
|  |  | case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break; | 
|  |  | case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break; | 
|  |  | case 3: | 
|  |  | case 4: this.passwordPercent = 100;break; | 
|  |  | default: this.passwordPercent = 0;break; | 
|  |  | } | 
|  |  | callback(); | 
|  |  | } | 
|  |  |  | 
|  |  | }; | 
|  |  |  | 
|  |  | var validatePass2 = (rule, value, callback) => { | 
|  |  | if (value === '') { | 
|  |  | callback(new Error('请再次输入密码')); | 
|  |  | } else if (value !== this.resetForm.newpwd) { | 
|  |  | callback(new Error('两次输入密码不一致!')); | 
|  |  | } else { | 
|  |  | callback(); | 
|  |  | } | 
|  |  | }; | 
|  |  | // var validatePass = (rule, value, callback) => { | 
|  |  | //     if (!value) { | 
|  |  | //         callback(new Error('请输入新密码')); | 
|  |  | //     }else { | 
|  |  | //         var ls=0; | 
|  |  | //      if(value.match(/([a-z])+/)){ | 
|  |  | //             ls++; | 
|  |  | //         } if(value.match(/([0-9])+/)){ | 
|  |  | //             ls++; | 
|  |  | //         } if(value.match(/([A-Z])+/)){ | 
|  |  | //             ls++; | 
|  |  | //         } if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){ | 
|  |  | //             ls++; | 
|  |  | //         }  if (value.toString().length < 8 || value.toString().length > 20) { | 
|  |  | //             callback(new Error('密码长度为8 - 20个字符')); | 
|  |  | //             ls=0; | 
|  |  | //         } if(value.match(/([\u4E00-\u9FA5])+/)){ | 
|  |  | //             callback(new Error('不能包含中文字符')); | 
|  |  | //             ls=0; | 
|  |  | //         } | 
|  |  | //         switch (ls) { | 
|  |  | //             case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break; | 
|  |  | //             case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break; | 
|  |  | //             case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break; | 
|  |  | //             case 3: | 
|  |  | //             case 4: this.passwordPercent = 100;break; | 
|  |  | //             default: this.passwordPercent = 0;break; | 
|  |  | //         } | 
|  |  | //         callback(); | 
|  |  | //     } | 
|  |  | // | 
|  |  | // }; | 
|  |  | // | 
|  |  | // var validatePass2 = (rule, value, callback) => { | 
|  |  | //     if (value === '') { | 
|  |  | //         callback(new Error('请再次输入密码')); | 
|  |  | //     } else if (value !== this.resetForm.newpwd) { | 
|  |  | //         callback(new Error('两次输入密码不一致!')); | 
|  |  | //     } else { | 
|  |  | //         callback(); | 
|  |  | //     } | 
|  |  | // }; | 
|  |  | return { | 
|  |  | sysName:'', | 
|  |  | collapsed:false, | 
|  |  | sysUserName: '', | 
|  |  | // sysUserName: '', | 
|  |  | sysUserId:'', | 
|  |  | sysUserAvatar: '', | 
|  |  | // sysUserAvatar: '', | 
|  |  | isRouterAlive: true, | 
|  |  | form: { | 
|  |  | name: '', | 
| ... | ... | @@ -158,19 +159,19 @@ | 
|  |  | resource: '', | 
|  |  | desc: '' | 
|  |  | }, | 
|  |  | dialogFormVisible:false, | 
|  |  | resetForm: { | 
|  |  | newpwd: '', | 
|  |  | renewpwd: '', | 
|  |  | }, | 
|  |  | resetFormRules: { | 
|  |  | newpwd: [ | 
|  |  | { required: true, validator: validatePass, trigger: 'blur' } | 
|  |  | ], | 
|  |  | renewpwd: [ | 
|  |  | { required: true, validator: validatePass2, trigger: 'blur' } | 
|  |  | ] | 
|  |  | }, | 
|  |  | // dialogFormVisible:false, | 
|  |  | // resetForm: { | 
|  |  | //     newpwd: '', | 
|  |  | //     renewpwd: '', | 
|  |  | // }, | 
|  |  | // resetFormRules: { | 
|  |  | //     newpwd: [ | 
|  |  | //         { required: true, validator: validatePass, trigger: 'blur' } | 
|  |  | //     ], | 
|  |  | //     renewpwd: [ | 
|  |  | //         { required: true, validator: validatePass2, trigger: 'blur' } | 
|  |  | //     ] | 
|  |  | // }, | 
|  |  | editForm: { | 
|  |  | userId: '', | 
|  |  | password: '', | 
| ... | ... | @@ -188,53 +189,53 @@ | 
|  |  | }) | 
|  |  | }) | 
|  |  | }, | 
|  |  | editPass:function(){ | 
|  |  | this.dialogFormVisible=true; | 
|  |  | }, | 
|  |  | updateCache:function(){ | 
|  |  | resetToken().then( res =>{ | 
|  |  | let response  = res.data; | 
|  |  | if (response.code === '200'){ | 
|  |  | this.$notify({ | 
|  |  | title: '成功', | 
|  |  | message: '缓存更新成功', | 
|  |  | type: 'success' | 
|  |  | }); | 
|  |  | }else{ | 
|  |  | this.$notify.error({ | 
|  |  | title: '失败', | 
|  |  | message: '缓存更新失败' | 
|  |  | }); | 
|  |  | } | 
|  |  | }) | 
|  |  | }, | 
|  |  | submitEdit(formName){ | 
|  |  | this.$refs[formName].validate((valid) => { | 
|  |  | if (valid) { | 
|  |  | this.editForm.userId=this.sysUserId; | 
|  |  | this.editForm.password=this.resetForm.renewpwd; | 
|  |  | editPass(this.editForm).then(res=>{ | 
|  |  | let response=res.data; | 
|  |  | if(response.code=='200'){ | 
|  |  | this.$notify({ | 
|  |  | title: '密码修改成功', | 
|  |  | message: '密码修改成功,退出请重新登录', | 
|  |  | type: 'success' | 
|  |  | }); | 
|  |  | this.dialogFormVisible=false; | 
|  |  | }else{ | 
|  |  | this.$notify.error({ | 
|  |  | title: '密码修改失败', | 
|  |  | message: '密码修改失败!!!' | 
|  |  | }); | 
|  |  | } | 
|  |  | }); | 
|  |  | } else { | 
|  |  | console.log('error submit!!'); | 
|  |  | return false; | 
|  |  | } | 
|  |  | }); | 
|  |  | }, | 
|  |  | // editPass:function(){ | 
|  |  | //     this.dialogFormVisible=true; | 
|  |  | // }, | 
|  |  | // updateCache:function(){ | 
|  |  | //     resetToken().then( res =>{ | 
|  |  | //         let response  = res.data; | 
|  |  | //         if (response.code === '200'){ | 
|  |  | //             this.$notify({ | 
|  |  | //                 title: '成功', | 
|  |  | //                 message: '缓存更新成功', | 
|  |  | //                 type: 'success' | 
|  |  | //             }); | 
|  |  | //         }else{ | 
|  |  | //             this.$notify.error({ | 
|  |  | //                 title: '失败', | 
|  |  | //                 message: '缓存更新失败' | 
|  |  | //             }); | 
|  |  | //         } | 
|  |  | //     }) | 
|  |  | // }, | 
|  |  | // submitEdit(formName){ | 
|  |  | //     this.$refs[formName].validate((valid) => { | 
|  |  | //         if (valid) { | 
|  |  | //             this.editForm.userId=this.sysUserId; | 
|  |  | //             this.editForm.password=this.resetForm.renewpwd; | 
|  |  | //             editPass(this.editForm).then(res=>{ | 
|  |  | //                 let response=res.data; | 
|  |  | //                 if(response.code=='200'){ | 
|  |  | //                     this.$notify({ | 
|  |  | //                         title: '密码修改成功', | 
|  |  | //                         message: '密码修改成功,退出请重新登录', | 
|  |  | //                         type: 'success' | 
|  |  | //                     }); | 
|  |  | //                     this.dialogFormVisible=false; | 
|  |  | //                 }else{ | 
|  |  | //                     this.$notify.error({ | 
|  |  | //                         title: '密码修改失败', | 
|  |  | //                         message: '密码修改失败!!!' | 
|  |  | //                     }); | 
|  |  | //                 } | 
|  |  | //             }); | 
|  |  | //         } else { | 
|  |  | //             console.log('error submit!!'); | 
|  |  | //             return false; | 
|  |  | //         } | 
|  |  | //     }); | 
|  |  | // }, | 
|  |  | onSubmit() { | 
|  |  | console.log('submit!'); | 
|  |  | }, | 
| ... | ... | @@ -248,31 +249,32 @@ | 
|  |  | this.reload() | 
|  |  | }, | 
|  |  | //退出登录 | 
|  |  | logout: function () { | 
|  |  | var _this = this; | 
|  |  | this.$confirm('确认退出吗?', '提示', { | 
|  |  | //type: 'warning' | 
|  |  | }).then(() => { | 
|  |  | sessionStorage.removeItem('user'); | 
|  |  | sessionStorage.removeItem('menu'); | 
|  |  | //退出后初始化原来的路由 | 
|  |  | let sysRoutes =  JSON.parse(sessionStorage.getItem('sysMenu')); | 
|  |  | console.log(sysRoutes); | 
|  |  | _this.$router.options.routes = sysRoutes; | 
|  |  |  | 
|  |  | _this.$router.push('/login'); | 
|  |  | }).catch(() => { | 
|  |  |  | 
|  |  | }); | 
|  |  |  | 
|  |  |  | 
|  |  | }, | 
|  |  | // logout: function () { | 
|  |  | //     var _this = this; | 
|  |  | //     this.$confirm('确认退出吗?', '提示', { | 
|  |  | //         //type: 'warning' | 
|  |  | //     }).then(() => { | 
|  |  | //         sessionStorage.removeItem('user'); | 
|  |  | //         sessionStorage.removeItem('menu'); | 
|  |  | //         //退出后初始化原来的路由 | 
|  |  | //         let sysRoutes =  JSON.parse(sessionStorage.getItem('sysMenu')); | 
|  |  | //         console.log(sysRoutes); | 
|  |  | //         _this.$router.options.routes = sysRoutes; | 
|  |  | // | 
|  |  | //         _this.$router.push('/login'); | 
|  |  | //     }).catch(() => { | 
|  |  | // | 
|  |  | //     }); | 
|  |  | // | 
|  |  | // | 
|  |  | // }, | 
|  |  | //折叠导航栏 | 
|  |  | collapse:function(){ | 
|  |  | this.collapsed=!this.collapsed; | 
|  |  | }, | 
|  |  | showMenu(i,status){ | 
|  |  | this.$refs.menuCollapsed.getElementsByClassName('submenu-hook-'+i)[0].style.display=status?'block':'none'; | 
|  |  | this.$refs.menuColl | 
|  |  | apsed.getElementsByClassName('submenu-hook-'+i)[0].style.display=status?'block':'none'; | 
|  |  | } | 
|  |  | }, | 
|  |  | mounted() { | 
| ... | ... | @@ -282,7 +284,8 @@ | 
|  |  | user = JSON.parse(user); | 
|  |  | this.sysUserName = user.username || ''; | 
|  |  | this.sysUserId=user.userId||''; | 
|  |  | this.sysUserAvatar = user.userface || '/static/images/faceDefault.jpg'; | 
|  |  |  | 
|  |  | this.sysUserAvatar = user.userface || '~img/faceDefault.jpg'; | 
|  |  | } | 
|  |  | //操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由 | 
|  |  | var userRouters = sessionStorage.getItem('menu'); | 
| ... | ... | @@ -312,19 +315,19 @@ | 
|  |  | .userinfo { | 
|  |  | text-align: right; | 
|  |  | padding-right: 125px; | 
|  |  | padding-top: 71px; | 
|  |  | padding-top: 21px; | 
|  |  | float: right; | 
|  |  | .userinfo-inner { | 
|  |  | cursor: pointer; | 
|  |  | color:rgb(180,150,121); | 
|  |  | img { | 
|  |  | width: 40px; | 
|  |  | height: 40px; | 
|  |  | border-radius: 20px; | 
|  |  | margin: 10px 0px 10px 10px; | 
|  |  | float: right; | 
|  |  | } | 
|  |  | } | 
|  |  | /*.userinfo-inner {*/ | 
|  |  | /*    cursor: pointer;*/ | 
|  |  | /*    color:rgb(180,150,121);*/ | 
|  |  | /*    img {*/ | 
|  |  | /*        width: 40px;*/ | 
|  |  | /*        height: 40px;*/ | 
|  |  | /*        border-radius: 20px;*/ | 
|  |  | /*        margin: 10px 0px 10px 10px;*/ | 
|  |  | /*        float: right;*/ | 
|  |  | /*    }*/ | 
|  |  | /*}*/ | 
|  |  | } | 
|  |  | .logo { | 
|  |  | //width:230px; | 
| ... | ... | @@ -345,14 +348,14 @@ | 
|  |  | } | 
|  |  | } | 
|  |  | .logo-width{ | 
|  |  | width:230px; | 
|  |  | width:380px; | 
|  |  | } | 
|  |  | .logo-collapse-width{ | 
|  |  | width:60px | 
|  |  | } | 
|  |  | .tools{ | 
|  |  | padding: 0px 23px; | 
|  |  | width:14px; | 
|  |  | /*padding: 0px 13px;*/ | 
|  |  | /*width:14px;*/ | 
|  |  | height: 60px; | 
|  |  | line-height: 60px; | 
|  |  | cursor: pointer; | 
... | ... |  |