菜单根据权限显示

This commit is contained in:
junleea 2024-12-04 20:02:00 +08:00
parent 4c976c5a34
commit 108c590d95
3 changed files with 83 additions and 8 deletions

View File

@ -102,9 +102,10 @@ import {
loginService,
registerService,
} from "@/api/user.js";
import {GetUserInfoService} from "@/api/user.js";
import router from "@/router/index.js";
import VueQr from "vue-qr"; //
import {ElMessage} from "element-plus";
import { ElMessage } from "element-plus";
import QRCode from "qrcode";
const isLogin = ref(true);
@ -209,6 +210,7 @@ const login = async () => {
localStorage.setItem("username", result.data.username);
let now = new Date();
localStorage.setItem("end_time", now.setDate(now.getHours() + 12)); //
await getMyUserInfo(result.data.id);
//token.value= result.data;
router.push("/videoList");
};
@ -328,6 +330,26 @@ const getIpClient = async () => {
console.error(error);
}
};
const getMyUserInfo = async (id) => {
let result = {};
try {
let tokenData ={
token: localStorage.getItem("token"),
uid: id,
}
result = await GetUserInfoService(tokenData);
if (result.code === 0) {
//console.log("token data:",this.tokenData)
localStorage.setItem("video_func", result.data.VideoFunc);
localStorage.setItem("device_func", result.data.DeviceFunc);
localStorage.setItem("cid_func", result.data.CIDFunc);
}
} catch (e) {
console.log(e);
}
};
const init = async () => {
getIpClient();
await getUUID();
@ -347,4 +369,4 @@ const register = async () => {
canvas {
border: 1px solid #000;
}
</style>
</style>

View File

@ -1,16 +1,25 @@
<template>
<el-button
v-if="func_permissions.video"
type="primary"
size="mini"
@click.prevent="handleMenuSelect('/videoList')"
>视频列表</el-button
>
<el-button
v-if="func_permissions.device"
type="primary"
size="mini"
@click.prevent="handleMenuSelect('/device')"
>设备管理</el-button
>
<el-button
v-if="func_permissions.cid"
type="primary"
size="mini"
@click.prevent="handleMenuSelect('/cid')"
>集成部署</el-button
>
<el-button
type="primary"
size="mini"
@ -32,16 +41,35 @@
<el-button
type="primary"
size="mini"
@click.prevent="handleMenuSelect('/cid')"
>集成部署</el-button
class="el-button--danger"
@click="logout()"
>退出登录</el-button
>
<el-button type="primary" size="mini" class="el-button--danger" @click="logout()">退出登录</el-button>
</template>
<script>
import { GetUserInfoService } from "@/api/user.js";
export default {
data() {
return {
tokenData: {
token: localStorage.getItem("token"),
ip: localStorage.getItem("ip"),
userId: localStorage.getItem("userId"),
username: localStorage.getItem("username"),
id: 2002,
keyword: "",
},
func_permissions: {
video: localStorage.getItem("video_func"),
device: localStorage.getItem("device_func"),
cid: localStorage.getItem("cid_func"),
},
};
},
methods: {
handleMenuSelect(path) {
//this.getMyUserInfo();
this.$router.push(path);
},
logout() {

View File

@ -297,9 +297,15 @@ export default {
this.UserUpdateForm.gender = result.data.Gender;
this.UserUpdateForm.create_time = result.data.CreatedAt;
this.UserUpdateForm.update_time = result.data.UpdatedAt;
this.UserUpdateForm.video_func = result.data.VideoFunc;
this.UserUpdateForm.device_func = result.data.DeviceFunc;
this.UserUpdateForm.cid_func = result.data.CIDFunc;
//console.log("token data:",this.tokenData)
if(result.data.ID === parseInt(this.tokenData.userId)){
this.role = result.data.Role;
localStorage.setItem("video_func",result.data.VideoFunc);
localStorage.setItem("device_func",result.data.DeviceFunc);
localStorage.setItem("cid_func",result.data.CIDFunc);
//console.log("my role:",this.role);
}
}
@ -393,7 +399,7 @@ export default {
<el-dialog
v-model="updateDialogVisible"
title="我的信息"
width="50%"
width="60%"
:before-close="handleClose"
>
<!-- 内容主体区域 -->
@ -425,7 +431,7 @@ export default {
<el-form-item label="性别" prop="gender">
<el-input v-model="UserUpdateForm.gender"></el-input>
</el-form-item>
<el-form-item label="运行脚本权限" prop="run">
<el-form-item label="运行权限" prop="run">
<!-- <el-input v-model="UserUpdateForm.run" v-if="role === 'admin'"></el-input>
<el-input v-model="UserUpdateForm.run" disabled v-if="role !== 'admin'"></el-input> -->
<el-checkbox v-model="UserUpdateForm.run" v-if="role === 'admin'"></el-checkbox>
@ -458,10 +464,29 @@ export default {
</el-selector> -->
</el-form-item>
<el-form-item label="视频管理" prop="video_func">
<!-- <el-input v-model="UserUpdateForm.upload" v-if="role === 'admin'"></el-input>
<el-input v-model="UserUpdateForm.upload" disabled v-if="role !== 'admin'"></el-input> -->
<el-checkbox v-model="UserUpdateForm.video_func" v-if="role === 'admin'"></el-checkbox>
<el-checkbox v-model="UserUpdateForm.video_func" disabled v-if="role!== 'admin'"></el-checkbox>
</el-form-item>
<el-form-item label="设备管理" prop="device_func">
<!-- <el-input v-model="UserUpdateForm.upload" v-if="role === 'admin'"></el-input>
<el-input v-model="UserUpdateForm.upload" disabled v-if="role !== 'admin'"></el-input> -->
<el-checkbox v-model="UserUpdateForm.device_func" v-if="role === 'admin'"></el-checkbox>
<el-checkbox v-model="UserUpdateForm.device_func" disabled v-if="role!== 'admin'"></el-checkbox>
</el-form-item>
<el-form-item label="集成部署" prop="cid_func">
<!-- <el-input v-model="UserUpdateForm.upload" v-if="role === 'admin'"></el-input>
<el-input v-model="UserUpdateForm.upload" disabled v-if="role !== 'admin'"></el-input> -->
<el-checkbox v-model="UserUpdateForm.cid_func" v-if="role === 'admin'"></el-checkbox>
<el-checkbox v-model="UserUpdateForm.cid_func" disabled v-if="role!== 'admin'"></el-checkbox>
</el-form-item>
<el-form-item label="注册时间" prop="create_time">
<el-input v-model="UserUpdateForm.create_time" disabled></el-input>
</el-form-item>
<el-form-item label="上次修改时间" prop="update_time">
<el-form-item label="上次修改" prop="update_time">
<el-input v-model="UserUpdateForm.update_time" disabled></el-input>
</el-form-item>
</el-form>