| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- <style>
- #_header .el-header {
- position: relative;
- height: 64px;
- }
- .main-container {
- position: absolute;
- top: 50%;
- right: 50px;
- transform: translateY(-50%);
- cursor: pointer;
- }
- </style>
- <template id="mall-header">
- <div>
- <header class="el-header">
- <div class="main-container" flex="box:last cross:center">
- <el-dropdown @command="handleCommand">
- <span class="el-dropdown-link">
- <span style="font-size: 16px;"><i class="el-icon-user-solid" style="margin-right: 6px"></i>{{user.identity.username}}</span>
- <i class="el-icon-arrow-down el-icon--right"></i>
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item v-if="user.identity.admin_type == 1 || user.identity.admin_type == 2" command="updatePassword" style="text-align: center">
- 修改密码
- </el-dropdown-item>
- <el-dropdown-item command="logout" style="text-align: center">退出登陆</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </div>
- </header>
- <!-- 超级管理员 修复密码-->
- <el-dialog title="修改密码" :close-on-click-modal="false" :visible.sync="dialogFormVisible" width="35%">
- <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm">
- <el-form-item label="密码" prop="pass">
- <el-input type="password" v-model="ruleForm.pass" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="确认密码" prop="checkPass">
- <el-input type="password" v-model="ruleForm.checkPass" autocomplete="off"></el-input>
- </el-form-item>
- </el-form>
- <div slot="footer">
- <el-button @click="dialogFormVisible = false">取 消</el-button>
- <el-button :loading="btnLoading" type="primary" @click="updatePasswordSubmit('ruleForm')">确 定
- </el-button>
- </div>
- </el-dialog>
- </div>
- </template>
- <script>
- Vue.component('mall-header', {
- template: '#mall-header',
- data() {
- var validatePass = (rule, value, callback) => {
- if (value === '') {
- callback(new Error('请输入密码'));
- } else {
- if (this.ruleForm.checkPass !== '') {
- this.$refs.ruleForm.validateField('checkPass');
- }
- callback();
- }
- };
- var validatePass2 = (rule, value, callback) => {
- if (value === '') {
- callback(new Error('请再次输入密码'));
- } else if (value !== this.ruleForm.pass) {
- callback(new Error('两次输入密码不一致!'));
- } else {
- callback();
- }
- };
- return {
- user: { //用户信息
- identity: {
- admin_type: 1,
- id: 1,
- mall_num: -1,
- mch_id: 0,
- username: "",
- },
- },
- navs: [],
- mall: null,
- dialogFormVisible: false,
- ruleForm: {
- pass: '',
- checkPass: '',
- },
- btnLoading: false,
- rules: {
- pass: [{
- required: true,
- message: '请输入密码',
- trigger: 'blur'
- },
- {
- validator: validatePass,
- trigger: 'blur'
- },
- ],
- checkPass: [{
- required: true,
- message: '请输入确认密码',
- trigger: 'blur'
- },
- {
- validator: validatePass2,
- trigger: 'blur'
- }
- ]
- },
- updatePasswordStatus: 0,
- courseMenu: {
- children: [],
- },
- };
- },
- created() {
- let user_key = localStorage.getItem('user_key');
- console.log(user_key)
- let userData = JSON.parse(user_key)
- this.user = userData;
- this.checkCookie()
- let headerData = localStorage.getItem('_MALL_HEADER_DATA');
- if (headerData) {
- try {
- headerData = JSON.parse(headerData);
- this.user = headerData.user;
- this.navs = headerData.navs;
- this.mall = headerData.mall;
- this.updatePasswordStatus = headerData.update_password_status;
- _aside.mall = headerData.mall;
- } catch (e) {
- headerData = false;
- }
- }
- },
- methods: {
- handleOpen() {},
- handleClose() {},
- // 设置cookie
- setCookie: function(cname, cvalue, times) {
- var d = new Date();
- d.setTime(d.getTime() + times);
- var expires = "expires=" + d.toUTCString();
- document.cookie = cname + "=" + cvalue + "; " + expires;
- },
- //获取cookie
- getCookie: function(cname) {
- var name = cname + "=";
- var ca = document.cookie.split(';');
- for (var i = 0; i < ca.length; i++) {
- var c = ca[i];
- while (c.charAt(0) == ' ') c = c.substring(1);
- if (c.indexOf(name) != -1) {
- return c.substring(name.length, c.length);
- }
- }
- return "";
- },
- // 检查cookie
- checkCookie: function() {
- var value = this.getCookie("REQUEST");
- // if (!value) {
- var times = 60 * 60 * 1000
- this.setCookie("REQUEST", 'get-user', times);
- this.getUser();
- // }
- },
- // 获取用户信息
- getUser() {
- let self = this;
- self.btnLoading = true;
- request({
- params: {r: 'admin/account/user'},
- method: 'get',
- data: {}
- }).then(e => {
- self.btnLoading = false;
- this.user = e.data.data.data;
- localStorage.setItem('user_key', JSON.stringify(this.user));
- }).catch(e => {
- console.log(e);
- });
- },
- logout() {
- let self = this;
- this.$request({
- params: {r: 'admin/auth/logout'},
- method: 'get',
- data: {}
- }).then(e => {
- localStorage.setItem('user_key', '');
- localStorage.setItem('admin_menus', '');
- localStorage.setItem('mall_header_data', '');
- localStorage.setItem('mall_menus', '');
- localStorage.setItem('mall_info', '');
-
- // 在当前页面打开
- // self.$navigate({r: 'admin/user/me'});
- }).catch(e => {
- console.log(e);
- });
- },
- updatePassword() {
- this.dialogFormVisible = true;
- },
- handleCommand(command) {
- let self = this;
- if (command === 'logout') {
- request({
- params: {
- r: 'admin/auth/logout'
- },
- method: 'post',
- data: {}
- }).then(e => {
- // 在当前页面打开
- /* localStorage.setItem('user_key', '');
- localStorage.setItem('admin_menus', '');
- localStorage.setItem('mall_header_data', '');
- localStorage.setItem('mall_menus', '');
- localStorage.setItem('mall_info', ''); */
- for (const key in localStorage) {
- localStorage.setItem(key, '');
- }
- window.location.href=e.data.data.url;
- }).catch(e => {
- console.log(e);
- });
- }
- if (command === 'updatePassword') {
- this.dialogFormVisible = true;
- }
- },
- updatePasswordSubmit(formName) {
- this.$refs[formName].validate((valid) => {
- if (valid) {
- let self = this;
- self.btnLoading = true;
- request({
- params: {
- r: 'admin/account/update-password'
- },
- method: 'post',
- data: {
- password: self.ruleForm.checkPass,
- }
- }).then(e => {
- self.$message.success(e.data.msg);
- self.btnLoading = false;
- self.dialogFormVisible = false;
- if (e.data.code == 0) window.location.href = e.data.data;
- }).catch(e => {
- console.log(e);
- });
- } else {
- console.log('error submit!!');
- return false;
- }
- });
- }
- },
- });
- </script>
|