Browse Source

增加登录日志,操作日志,在线用户,插件监控的按钮,列表权限

yanglzh 2 years ago
parent
commit
d820ea5a08

+ 11 - 11
src/views/system/manage/role/index.vue

@@ -20,7 +20,7 @@
 							</el-icon>
 							查询
 						</el-button>
-						<el-button size="default" type="success" class="ml10" @click="onOpenAddRole">
+						<el-button size="default" type="success" class="ml10" @click="onOpenAddRole" v-auth="'add'">
 							<el-icon>
 								<ele-FolderAdd />
 							</el-icon>
@@ -31,22 +31,22 @@
 			</div>
 			<el-table :data="tableData.data" style="width: 100%" row-key="id" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" v-loading="tableData.loading">
 				<el-table-column type="index" label="序号" width="60" align="center" />
-				<el-table-column prop="name" label="角色名称" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="remark" label="角色描述" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="listOrder" label="排序" width="60" align="center"></el-table-column>
-				<el-table-column prop="status" label="角色状态" width="100" align="center">
+				<el-table-column prop="name" v-col="'name'" label="角色名称" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="remark" v-col="'remark'" label="角色描述" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="listOrder" v-col="'listOrder'" label="排序" width="60" align="center"></el-table-column>
+				<el-table-column prop="status" v-col="'status'" label="角色状态" width="100" align="center">
 					<template #default="scope">
 						<el-tag type="success" size="small" v-if="scope.row.status === 1">启用</el-tag>
 						<el-tag type="info" size="small" v-else>禁用</el-tag>
 					</template>
 				</el-table-column>
-				<el-table-column prop="createdAt" label="创建时间" width="170" align="center"></el-table-column>
-				<el-table-column label="操作" width="220" align="center" fixed="right">
+				<el-table-column prop="createdAt" v-col="'createdAt'" label="创建时间" width="170" align="center"></el-table-column>
+				<el-table-column label="操作" width="220" v-col="'hanle'" align="center" fixed="right">
 					<template #default="scope">
-						<el-button size="small" type="text" @click="onOpenEditRole(scope.row)">修改</el-button>
-						<el-button size="small" text type="danger" @click="onRowDel(scope.row)">删除</el-button>
-						<el-button size="small" text type="success" @click="permission(scope.row)">角色权限</el-button>
-						<el-button size="small" text type="info" @click="dataPermission(scope.row)">数据权限</el-button>
+						<el-button size="small" type="text" @click="onOpenEditRole(scope.row)" v-auth="'edit'">修改</el-button>
+						<el-button size="small" text type="danger" @click="onRowDel(scope.row)" v-auth="'del'">删除</el-button>
+						<el-button size="small" text type="success" @click="permission(scope.row)" v-auth="'role-premission'">角色权限</el-button>
+						<el-button size="small" text type="info" @click="dataPermission(scope.row)" v-auth="'data-premission'">数据权限</el-button>
 						<!-- <el-dropdown size="small">
               <el-button type="text" size="small" style="margin-top:1px;margin-left:10px">更多
                 <el-icon>

+ 12 - 41
src/views/system/monitor/loginLog/index.vue

@@ -4,25 +4,11 @@
 			<div class="system-user-search mb15">
 				<el-form :model="tableData.param" ref="queryRef" :inline="true" label-width="68px">
 					<el-form-item label="登录IP" prop="ipaddr">
-						<el-input
-							v-model="tableData.param.ipaddr"
-							placeholder="请输入登录地址"
-							clearable
-							style="width: 180px"
-							size="default"
-							@keyup.enter.native="dataList"
-						/>
+						<el-input v-model="tableData.param.ipaddr" placeholder="请输入登录地址" clearable style="width: 180px" size="default" @keyup.enter.native="dataList" />
 					</el-form-item>
 
 					<el-form-item label="登录地点" prop="loginLocation">
-						<el-input
-							v-model="tableData.param.loginLocation"
-							placeholder="请输入登录地点"
-							clearable
-							style="width: 180px"
-							size="default"
-							@keyup.enter.native="dataList"
-						/>
+						<el-input v-model="tableData.param.loginLocation" placeholder="请输入登录地点" clearable style="width: 180px" size="default" @keyup.enter.native="dataList" />
 					</el-form-item>
 
 					<!-- <el-form-item label="用户名称" prop="userName">
@@ -38,16 +24,7 @@
 					</el-form-item>
 
 					<el-form-item label="登录时间" prop="dateRange">
-						<el-date-picker
-							v-model="tableData.param.dateRange"
-							size="default"
-							style="width: 240px"
-							value-format="YYYY-MM-DD"
-							type="daterange"
-							range-separator="-"
-							start-placeholder="开始日期"
-							end-placeholder="结束日期"
-						></el-date-picker>
+						<el-date-picker v-model="tableData.param.dateRange" size="default" style="width: 240px" value-format="YYYY-MM-DD" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
 					</el-form-item>
 					<el-form-item>
 						<el-button size="default" type="primary" class="ml10" @click="dataList">
@@ -62,7 +39,7 @@
 							</el-icon>
 							重置
 						</el-button>
-						<el-button size="default" type="danger" class="ml10" @click="onRowDel(null)">
+						<el-button size="default" type="danger" class="ml10" @click="onRowDel(null)" v-auth="'del'">
 							<el-icon>
 								<ele-Delete />
 							</el-icon>
@@ -82,26 +59,20 @@
 				<el-table-column label="编号" align="center" width="60" prop="infoId" />
 				<el-table-column label="登录名称" align="center" prop="loginName" />
 				<el-table-column label="登录地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true" />
-				<el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
+				<el-table-column label="登录地点" v-col="'loginLocation'" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
 				<el-table-column label="浏览器" align="center" prop="browser" />
 				<el-table-column label="操作系统" show-overflow-tooltip align="center" prop="os" />
-				<el-table-column label="登录状态" align="center" prop="status" width="90">
+				<el-table-column label="登录状态" v-col="'status'" align="center" prop="status" width="90">
 					<template #default="scope">
 						<el-tag type="success" size="small" v-if="scope.row.status === 1">成功</el-tag>
 						<el-tag type="info" size="small" v-else>失败</el-tag>
 					</template>
 				</el-table-column>
-				<el-table-column label="操作信息" show-overflow-tooltip prop="msg" />
-				<el-table-column label="登录日期" align="center" prop="loginTime" width="180" />
-				<el-table-column label="登录模块" align="center" show-overflow-tooltip prop="module" width="120"></el-table-column>
+				<el-table-column label="操作信息" v-col="'msg'" show-overflow-tooltip prop="msg" />
+				<el-table-column label="登录日期" v-col="'loginTime'" align="center" prop="loginTime" width="180" />
+				<el-table-column label="登录模块" v-col="'module'" align="center" show-overflow-tooltip prop="module" width="120"></el-table-column>
 			</el-table>
-			<pagination
-				v-show="tableData.total > 0"
-				:total="tableData.total"
-				v-model:page="tableData.param.pageNum"
-				v-model:limit="tableData.param.pageSize"
-				@pagination="dataList"
-			/>
+			<pagination v-show="tableData.total > 0" :total="tableData.total" v-model:page="tableData.param.pageNum" v-model:limit="tableData.param.pageSize" @pagination="dataList" />
 		</el-card>
 	</div>
 </template>
@@ -213,7 +184,7 @@ export default defineComponent({
 						done();
 					}
 				},
-			}).catch(() => {});
+			}).catch(() => { });
 		};
 		// 清空日志
 		const onRowClear = () => {
@@ -228,7 +199,7 @@ export default defineComponent({
 						dataList();
 					});
 				})
-				.catch(() => {});
+				.catch(() => { });
 		};
 		// 页面加载时
 		onMounted(() => {

+ 9 - 25
src/views/system/monitor/online/index.vue

@@ -12,16 +12,7 @@
           </el-form-item> -->
 
 					<el-form-item label="登录时间" prop="dateRange">
-						<el-date-picker
-							v-model="tableData.param.dateRange"
-							size="default"
-							style="width: 240px"
-							value-format="YYYY-MM-DD"
-							type="daterange"
-							range-separator="-"
-							start-placeholder="开始日期"
-							end-placeholder="结束日期"
-						></el-date-picker>
+						<el-date-picker v-model="tableData.param.dateRange" size="default" style="width: 240px" value-format="YYYY-MM-DD" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
 					</el-form-item>
 
 					<el-form-item>
@@ -40,29 +31,22 @@
 					</el-form-item>
 				</el-form>
 			</div>
-			<el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange" v-loading="tableData.loading">
+			<el-table :data="tableData.data" style="width: 100%" v-loading="tableData.loading">
 				<el-table-column type="selection" width="55" align="center" />
 				<el-table-column label="编号" align="center" width="60" prop="id" />
-				<el-table-column label="用户名" align="center" prop="userName" />
+				<el-table-column label="用户名" v-col="'userName'" align="center" prop="userName" />
 				<el-table-column label="token" align="center" prop="token" :show-overflow-tooltip="true" />
-				<el-table-column label="登录地址" align="center" prop="ip" :show-overflow-tooltip="true" />
+				<el-table-column label="登录地址" v-col="'ip'" align="center" prop="ip" :show-overflow-tooltip="true" />
 				<el-table-column label="登录时间" align="createdAt" prop="createdAt" :show-overflow-tooltip="true" />
 				<el-table-column label="浏览器" align="center" prop="explorer" />
-				<el-table-column label="操作系统" show-overflow-tooltip align="center" prop="os" />
-
-				<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+				<el-table-column label="操作系统" v-col="'os'" show-overflow-tooltip align="center" prop="os" />
+				<el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-col="'handle'">
 					<template #default="scope">
-						<el-button size="mini" type="text" @click="handleForceLogout(scope.row)">强退</el-button>
+						<el-button size="mini" type="text" @click="handleForceLogout(scope.row)" v-auth="'out'">强退</el-button>
 					</template>
 				</el-table-column>
 			</el-table>
-			<pagination
-				v-show="tableData.total > 0"
-				:total="tableData.total"
-				v-model:page="tableData.param.pageNum"
-				v-model:limit="tableData.param.pageSize"
-				@pagination="dataList"
-			/>
+			<pagination v-show="tableData.total > 0" :total="tableData.total" v-model:page="tableData.param.pageNum" v-model:limit="tableData.param.pageSize" @pagination="dataList" />
 		</el-card>
 	</div>
 </template>
@@ -137,7 +121,7 @@ export default defineComponent({
 						dataList();
 					});
 				})
-				.catch(() => {});
+				.catch(() => { });
 		};
 		// 页面加载时
 		onMounted(() => {

+ 8 - 8
src/views/system/monitor/operLog/index.vue

@@ -40,7 +40,7 @@
 							</el-icon>
 							重置
 						</el-button>
-						<el-button size="default" type="danger" class="ml10" @click="onRowDel(null)">
+						<el-button size="default" type="danger" class="ml10" @click="onRowDel(null)" v-auth="'del'">
 							<el-icon>
 								<ele-Delete />
 							</el-icon>
@@ -67,19 +67,19 @@
 						<span size="small" v-else-if="scope.row.businessType === 3">删除</span>
 					</template>
 				</el-table-column>
-				<el-table-column label="操作类型" align="center" prop="operatorType" width="130">
+				<el-table-column label="操作类型" v-col="'operatorType'" align="center" prop="operatorType" width="130">
 					<template #default="scope">
 						<span size="small" v-if="scope.row.operatorType === 0">其他</span>
 						<span size="small" v-else-if="scope.row.operatorType === 1">后台用户</span>
 						<span size="small" v-else-if="scope.row.operatorType === 2">手机端用户</span>
 					</template>
 				</el-table-column>
-				<el-table-column label="操作人员" align="center" prop="operName" :show-overflow-tooltip="true" />
+				<el-table-column label="操作人员" v-col="'operName'" align="center" prop="operName" :show-overflow-tooltip="true" />
 				<el-table-column label="部门名称" align="center" prop="deptName" />
 				<el-table-column label="主机" show-overflow-tooltip align="center" prop="operIp" />
-				<el-table-column label="操作地点" show-overflow-tooltip align="center" prop="operLocation" />
-				<el-table-column label="操作时间" show-overflow-tooltip align="center" prop="operTime" />
-				<el-table-column label="操作状态" align="center" prop="status" width="80">
+				<el-table-column label="操作地点" v-col="'operLocation'" show-overflow-tooltip align="center" prop="operLocation" />
+				<el-table-column label="操作时间" v-col="'operTime'" show-overflow-tooltip align="center" prop="operTime" />
+				<el-table-column label="操作状态" v-col="'status'" align="center" prop="status" width="80">
 					<template #default="scope">
 						<el-tag type="info" size="small" v-if="scope.row.status === 1">停用</el-tag>
 						<el-tag type="success" size="small" v-else-if="scope.row.status === 0">正常</el-tag>
@@ -88,9 +88,9 @@
 					</template>
 				</el-table-column>
 				<!-- <el-table-column label="操作信息" show-overflow-tooltip prop="msg" /> -->
-				<el-table-column label="操作" width="100" align="center" fixed="right">
+				<el-table-column label="操作" v-col="'handle'" width="100" align="center" fixed="right">
 					<template #default="scope">
-						<el-button size="small" type="text" @click="onOpenDetail(scope.row)">详细</el-button>
+						<el-button size="small" type="text" @click="onOpenDetail(scope.row)" v-auth="'detail'">详细</el-button>
 					</template>
 				</el-table-column>
 			</el-table>

+ 18 - 17
src/views/system/monitor/plugin/index.vue

@@ -22,12 +22,12 @@
 					</el-form-item>
 				</el-form>
 			</div>
-			<el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange" v-loading="tableData.loading">
-                <el-table-column label="插件类型" align="center" prop="types" />
-				<el-table-column label="名称" align="center" prop="name" />
-                <el-table-column label="介绍" align="center" prop="intro" />
-                <el-table-column label="作者" align="center" prop="author" />
-                <el-table-column label="状态" align="center" prop="status" width="80">
+			<el-table :data="tableData.data" style="width: 100%" v-loading="tableData.loading">
+				<el-table-column label="插件类型" align="center" prop="types" />
+				<el-table-column label="名称" v-col="'name'" align="center" prop="name" />
+				<el-table-column label="介绍" v-col="'intro'" align="center" prop="intro" />
+				<el-table-column label="作者" v-col="'author'" align="center" prop="author" />
+				<el-table-column label="状态" v-col="'status'" align="center" prop="status" width="80">
 					<template #default="scope">
 						<el-tag type="success" size="small" v-if="scope.row.status === 1">正常</el-tag>
 						<el-tag type="error" size="small" v-else-if="scope.row.status === 0">停用</el-tag>
@@ -35,10 +35,10 @@
 						<el-tag type="info" size="small" v-else>-</el-tag>
 					</template>
 				</el-table-column>
-                <el-table-column label="操作" width="100" align="center" fixed="right">
+				<el-table-column label="操作" width="100" align="center" fixed="right" v-col="'handle'">
 					<template #default="scope">
-						<el-button :disabled="scope.row.status==0" type='danger' text='danger' size="small" link @click="changeStatus(scope.row, 0)">停用</el-button>
-                        <el-button :disabled="scope.row.status==1" size="small"  type='success' text='success' link @click="changeStatus(scope.row, 1)">启用</el-button>
+						<el-button :disabled="scope.row.status == 0" type='danger' text='danger' size="small" link @click="changeStatus(scope.row, 0)" v-auth="'stop'">停用</el-button>
+						<el-button :disabled="scope.row.status == 1" size="small" type='success' text='success' link @click="changeStatus(scope.row, 1)" v-auth="'start'">启用</el-button>
 					</template>
 				</el-table-column>
 			</el-table>
@@ -64,7 +64,7 @@ interface TableDataState {
 		param: {
 			pageNum: number;
 			pageSize: number;
-            keyWord: string;
+			keyWord: string;
 		};
 	};
 }
@@ -83,7 +83,7 @@ export default defineComponent({
 				param: {
 					pageNum: 1,
 					pageSize: 10,
-                    keyWord: ""
+					keyWord: ""
 				},
 			},
 		});
@@ -103,11 +103,11 @@ export default defineComponent({
 					state.tableData.loading = false;
 				});
 		};
-        const changeStatus = (row: any, status: number) => {
-			api.plugin.changeStatus({id: row.id, status: status}).then((res: any) => {
-                ElMessage.success('操作成功');
-                dataList();                
-            })
+		const changeStatus = (row: any, status: number) => {
+			api.plugin.changeStatus({ id: row.id, status: status }).then((res: any) => {
+				ElMessage.success('操作成功');
+				dataList();
+			})
 		};
 		// 页面加载时
 		onMounted(() => {
@@ -120,7 +120,8 @@ export default defineComponent({
 			dataList();
 		};
 		return {
-            changeStatus,
+			queryRef,
+			changeStatus,
 			dataList,
 			resetQuery,
 			...toRefs(state),