|
@@ -8,45 +8,47 @@
|
|
|
<!-- 分块滑动功能 -->
|
|
|
<el-main class="main-cont main-right">
|
|
|
<transition mode="out-in" name="el-fade-in-linear">
|
|
|
- <div class="topfix" :style="{width: `calc(100% - ${isCollapse?'54px':'220px'})`}">
|
|
|
- <el-header class="header-cont">
|
|
|
- <div @click="totalCollapse" class="menu-total">
|
|
|
- <i class="el-icon-s-unfold" v-if="isCollapse"></i>
|
|
|
- <i class="el-icon-s-fold" v-else></i>
|
|
|
- </div>
|
|
|
- <el-breadcrumb class="breadcrumb" separator-class="el-icon-arrow-right">
|
|
|
- <el-breadcrumb-item
|
|
|
- :key="item.path"
|
|
|
- v-for="item in matched.slice(1,matched.length)"
|
|
|
- >{{item.meta.title}}</el-breadcrumb-item>
|
|
|
- </el-breadcrumb>
|
|
|
- <div class="fl-right right-box">
|
|
|
- <el-dropdown>
|
|
|
- <span class="el-dropdown-link">
|
|
|
- <img :src="userInfo.headerImg" height="30" width="30" />
|
|
|
- {{userInfo.title}}
|
|
|
- <i class="el-icon-arrow-down"></i>
|
|
|
- </span>
|
|
|
- <el-dropdown-menu class="dropdown-group" slot="dropdown">
|
|
|
- <el-dropdown-item>
|
|
|
- <span>
|
|
|
- 更多信息
|
|
|
- <el-badge is-dot />
|
|
|
+ <div
|
|
|
+ class="topfix"
|
|
|
+ :style="{width: `calc(100% - ${isMobile?'0px':isCollapse?'54px':'220px'})`}"
|
|
|
+ >
|
|
|
+ <el-header class="header-cont">
|
|
|
+ <div @click="totalCollapse" class="menu-total">
|
|
|
+ <i class="el-icon-s-unfold" v-if="isCollapse"></i>
|
|
|
+ <i class="el-icon-s-fold" v-else></i>
|
|
|
+ </div>
|
|
|
+ <el-breadcrumb class="breadcrumb" separator-class="el-icon-arrow-right">
|
|
|
+ <el-breadcrumb-item
|
|
|
+ :key="item.path"
|
|
|
+ v-for="item in matched.slice(1,matched.length)"
|
|
|
+ >{{item.meta.title}}</el-breadcrumb-item>
|
|
|
+ </el-breadcrumb>
|
|
|
+ <div class="fl-right right-box">
|
|
|
+ <el-dropdown>
|
|
|
+ <span class="el-dropdown-link">
|
|
|
+ <img :src="userInfo.headerImg" height="30" width="30" />
|
|
|
+ {{userInfo.title}}
|
|
|
+ <i class="el-icon-arrow-down"></i>
|
|
|
</span>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item @click.native="showPassword=true" icon="el-icon-s-custom">修改密码</el-dropdown-item>
|
|
|
- <el-dropdown-item @click.native="toPerson" icon="el-icon-s-custom">个人信息</el-dropdown-item>
|
|
|
- <el-dropdown-item @click.native="LoginOut" icon="el-icon-table-lamp">登 出</el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </el-dropdown>
|
|
|
-
|
|
|
+ <el-dropdown-menu class="dropdown-group" slot="dropdown">
|
|
|
+ <el-dropdown-item>
|
|
|
+ <span>
|
|
|
+ 更多信息
|
|
|
+ <el-badge is-dot />
|
|
|
+ </span>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item @click.native="showPassword=true" icon="el-icon-s-custom">修改密码</el-dropdown-item>
|
|
|
+ <el-dropdown-item @click.native="toPerson" icon="el-icon-s-custom">个人信息</el-dropdown-item>
|
|
|
+ <el-dropdown-item @click.native="LoginOut" icon="el-icon-table-lamp">登 出</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ </div>
|
|
|
+ </el-header>
|
|
|
+ <!-- 当前面包屑用路由自动生成可根据需求修改 -->
|
|
|
+ <!--
|
|
|
+ :to="{ path: item.path }" 暂时注释不用-->
|
|
|
+ <HistoryComponent />
|
|
|
</div>
|
|
|
- </el-header>
|
|
|
- <!-- 当前面包屑用路由自动生成可根据需求修改 -->
|
|
|
- <!--
|
|
|
- :to="{ path: item.path }" 暂时注释不用-->
|
|
|
- <HistoryComponent />
|
|
|
- </div>
|
|
|
</transition>
|
|
|
<transition mode="out-in" name="el-fade-in-linear">
|
|
|
<keep-alive>
|
|
@@ -54,43 +56,38 @@
|
|
|
</keep-alive>
|
|
|
</transition>
|
|
|
<transition mode="out-in" name="el-fade-in-linear">
|
|
|
- <router-view v-if="!$route.meta.keepAlive" class="admin-box"></router-view>
|
|
|
+ <router-view v-if="!$route.meta.keepAlive" class="admin-box"></router-view>
|
|
|
</transition>
|
|
|
</el-main>
|
|
|
</el-container>
|
|
|
- <el-dialog
|
|
|
- title="修改密码"
|
|
|
- :visible.sync="showPassword"
|
|
|
- @close="clearPassword"
|
|
|
- width="360px"
|
|
|
- >
|
|
|
- <el-form ref="modifyPwdForm" :model="pwdModify" :rules="rules" label-width="80px">
|
|
|
- <el-form-item prop="password" :minlength="6" label="原密码">
|
|
|
- <el-input v-model="pwdModify.password" show-password></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="newPassword" :minlength="6" label="新密码">
|
|
|
- <el-input v-model="pwdModify.newPassword" show-password></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="confirmPassword" :minlength="6" label="确认密码">
|
|
|
- <el-input v-model="pwdModify.confirmPassword" show-password></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="showPassword=false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="savePassword">确 定</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
+ <el-dialog title="修改密码" :visible.sync="showPassword" @close="clearPassword" width="360px">
|
|
|
+ <el-form ref="modifyPwdForm" :model="pwdModify" :rules="rules" label-width="80px">
|
|
|
+ <el-form-item prop="password" :minlength="6" label="原密码">
|
|
|
+ <el-input v-model="pwdModify.password" show-password></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="newPassword" :minlength="6" label="新密码">
|
|
|
+ <el-input v-model="pwdModify.newPassword" show-password></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="confirmPassword" :minlength="6" label="确认密码">
|
|
|
+ <el-input v-model="pwdModify.confirmPassword" show-password></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="showPassword=false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="savePassword">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</el-container>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import Aside from '@/view/layout/aside'
|
|
|
-import HistoryComponent from '@/view/layout/aside/historyComponent/history'
|
|
|
+import Aside from "@/view/layout/aside";
|
|
|
+import HistoryComponent from "@/view/layout/aside/historyComponent/history";
|
|
|
|
|
|
-import { mapGetters, mapActions } from 'vuex'
|
|
|
-import { changePassword } from '@/api/user'
|
|
|
+import { mapGetters, mapActions } from "vuex";
|
|
|
+import { changePassword } from "@/api/user";
|
|
|
export default {
|
|
|
- name: 'Layout',
|
|
|
+ name: "Layout",
|
|
|
data() {
|
|
|
return {
|
|
|
isCollapse: false,
|
|
@@ -101,59 +98,49 @@ export default {
|
|
|
pwdModify: {},
|
|
|
rules: {
|
|
|
password: [
|
|
|
- { required: true, message: '请输入密码', trigger: 'blur' },
|
|
|
- { min: 6, message: '最少6个字符', trigger: 'blur' }
|
|
|
+ { required: true, message: "请输入密码", trigger: "blur" },
|
|
|
+ { min: 6, message: "最少6个字符", trigger: "blur" }
|
|
|
],
|
|
|
newPassword: [
|
|
|
- { required: true, message: '请输入新密码', trigger: 'blur' },
|
|
|
- { min: 6, message: '最少6个字符', trigger: 'blur' }
|
|
|
+ { required: true, message: "请输入新密码", trigger: "blur" },
|
|
|
+ { min: 6, message: "最少6个字符", trigger: "blur" }
|
|
|
],
|
|
|
confirmPassword: [
|
|
|
- { required: true, message: '请输入确认密码', trigger: 'blur' },
|
|
|
- { min: 6, message: '最少6个字符', trigger: 'blur' },
|
|
|
+ { required: true, message: "请输入确认密码", trigger: "blur" },
|
|
|
+ { min: 6, message: "最少6个字符", trigger: "blur" },
|
|
|
{
|
|
|
validator: (rule, value, callback) => {
|
|
|
if (value !== this.pwdModify.newPassword) {
|
|
|
- callback(new Error('两次密码不一致'))
|
|
|
+ callback(new Error("两次密码不一致"));
|
|
|
} else {
|
|
|
- callback()
|
|
|
+ callback();
|
|
|
}
|
|
|
},
|
|
|
- trigger: 'blur'
|
|
|
+ trigger: "blur"
|
|
|
}
|
|
|
]
|
|
|
- },
|
|
|
-
|
|
|
- }
|
|
|
+ }
|
|
|
+ };
|
|
|
},
|
|
|
components: {
|
|
|
- Aside,HistoryComponent
|
|
|
- },
|
|
|
- created() {
|
|
|
- let screenWidth = document.body.clientWidth
|
|
|
- if (screenWidth < 1000) {
|
|
|
- this.isMobile = true
|
|
|
- this.isSider = false
|
|
|
- this.isCollapse = !this.isCollapse
|
|
|
- } else {
|
|
|
- this.isMobile = false
|
|
|
- }
|
|
|
+ Aside,
|
|
|
+ HistoryComponent
|
|
|
},
|
|
|
methods: {
|
|
|
- ...mapActions('user', ['LoginOut']),
|
|
|
+ ...mapActions("user", ["LoginOut"]),
|
|
|
totalCollapse() {
|
|
|
- this.isCollapse = !this.isCollapse
|
|
|
- this.isSider = !this.isCollapse
|
|
|
- this.isShadowBg = !this.isCollapse
|
|
|
- this.$bus.emit('totalCollapse')
|
|
|
+ this.isCollapse = !this.isCollapse;
|
|
|
+ this.isSider = !this.isCollapse;
|
|
|
+ this.isShadowBg = !this.isCollapse;
|
|
|
+ this.$bus.emit("collapse", this.isCollapse);
|
|
|
},
|
|
|
toPerson() {
|
|
|
- this.$router.push({ name: 'person' })
|
|
|
+ this.$router.push({ name: "person" });
|
|
|
},
|
|
|
changeShadow() {
|
|
|
- this.isShadowBg = !this.isShadowBg
|
|
|
- this.isSider = !!this.isCollapse
|
|
|
- this.totalCollapse()
|
|
|
+ this.isShadowBg = !this.isShadowBg;
|
|
|
+ this.isSider = !!this.isCollapse;
|
|
|
+ this.totalCollapse();
|
|
|
},
|
|
|
savePassword() {
|
|
|
this.$refs.modifyPwdForm.validate(valid => {
|
|
@@ -163,57 +150,72 @@ export default {
|
|
|
password: this.pwdModify.password,
|
|
|
newPassword: this.pwdModify.newPassword
|
|
|
}).then(() => {
|
|
|
- this.$message.success('修改密码成功!')
|
|
|
- this.showPassword = false
|
|
|
- })
|
|
|
+ this.$message.success("修改密码成功!");
|
|
|
+ this.showPassword = false;
|
|
|
+ });
|
|
|
} else {
|
|
|
- return false
|
|
|
+ return false;
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
},
|
|
|
clearPassword() {
|
|
|
this.pwdModify = {
|
|
|
- password: '',
|
|
|
- newPassword: '',
|
|
|
- confirmPassword: ''
|
|
|
- }
|
|
|
- this.$refs.modifyPwdForm.clearValidate()
|
|
|
+ password: "",
|
|
|
+ newPassword: "",
|
|
|
+ confirmPassword: ""
|
|
|
+ };
|
|
|
+ this.$refs.modifyPwdForm.clearValidate();
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
- ...mapGetters('user', ['userInfo']),
|
|
|
- ...mapGetters('history', ['historys','activeValue']),
|
|
|
+ ...mapGetters("user", ["userInfo"]),
|
|
|
+ ...mapGetters("history", ["historys", "activeValue"]),
|
|
|
title() {
|
|
|
- return this.$route.meta.title || '当前页面'
|
|
|
+ return this.$route.meta.title || "当前页面";
|
|
|
},
|
|
|
matched() {
|
|
|
- return this.$route.matched
|
|
|
+ return this.$route.matched;
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
+ let screenWidth = document.body.clientWidth;
|
|
|
+ if (screenWidth < 1000) {
|
|
|
+ this.isMobile = true;
|
|
|
+ this.isSider = false;
|
|
|
+ this.isCollapse = true;
|
|
|
+ } else if (screenWidth >= 1000 && screenWidth < 1200) {
|
|
|
+ this.isMobile = false;
|
|
|
+ this.isSider = false;
|
|
|
+ this.isCollapse = true;
|
|
|
+ } else {
|
|
|
+ this.isMobile = false;
|
|
|
+ this.isSider = true;
|
|
|
+ this.isCollapse = false;
|
|
|
+ }
|
|
|
+ this.$bus.emit("collapse", this.isCollapse);
|
|
|
+ this.$bus.emit("mobile", this.isMobile);
|
|
|
window.onresize = () => {
|
|
|
return (() => {
|
|
|
- let screenWidth = document.body.clientWidth
|
|
|
- if (!this.screenWidth && this.isSider) {
|
|
|
- if (screenWidth < 1000) {
|
|
|
- this.isMobile = true
|
|
|
- this.isSider = false
|
|
|
- this.isCollapse = true
|
|
|
- this.$bus.emit('collapse', this.isCollapse)
|
|
|
- }
|
|
|
+ let screenWidth = document.body.clientWidth;
|
|
|
+ if (screenWidth < 1000) {
|
|
|
+ this.isMobile = true;
|
|
|
+ this.isSider = false;
|
|
|
+ this.isCollapse = true;
|
|
|
+ } else if (screenWidth >= 1000 && screenWidth < 1200) {
|
|
|
+ this.isMobile = false;
|
|
|
+ this.isSider = false;
|
|
|
+ this.isCollapse = true;
|
|
|
} else {
|
|
|
- if (screenWidth < 1000) {
|
|
|
- this.isMobile = true
|
|
|
- this.isSider = false
|
|
|
- this.isCollapse = true
|
|
|
- } else {
|
|
|
- this.isMobile = false
|
|
|
- }
|
|
|
+ this.isMobile = false;
|
|
|
+ this.isSider = true;
|
|
|
+ this.isCollapse = false;
|
|
|
}
|
|
|
- })()
|
|
|
- }
|
|
|
+ this.$bus.emit("collapse", this.isCollapse);
|
|
|
+ this.$bus.emit("mobile", this.isMobile);
|
|
|
+ })();
|
|
|
+ };
|
|
|
}
|
|
|
-}
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
@@ -225,14 +227,14 @@ $mainHight: 100vh;
|
|
|
.dropdown-group {
|
|
|
min-width: 100px;
|
|
|
}
|
|
|
-.topfix{
|
|
|
- position:fixed;
|
|
|
- top:0;
|
|
|
+.topfix {
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
box-sizing: border-box;
|
|
|
z-index: 999;
|
|
|
}
|
|
|
-.admin-box{
|
|
|
- background-color: rgb(255,255,255);
|
|
|
+.admin-box {
|
|
|
+ background-color: rgb(255, 255, 255);
|
|
|
margin-top: 100px;
|
|
|
}
|
|
|
.el-scrollbar__wrap {
|
|
@@ -269,10 +271,10 @@ $mainHight: 100vh;
|
|
|
// padding: 6px;
|
|
|
// border-bottom: 1px solid #eee;
|
|
|
}
|
|
|
- .router-history{
|
|
|
+ .router-history {
|
|
|
background: #fff;
|
|
|
padding: 0 6px;
|
|
|
- border-top: 1px solid #DCDCDC;
|
|
|
+ border-top: 1px solid #dcdcdc;
|
|
|
}
|
|
|
&.el-main {
|
|
|
overflow: auto;
|