群控系统服务端开发模式-应用开发-获取登录者今天操作日志

一、后端api开放路由

在根目录下route文件夹下app.php文件中,在perimission的group中添加如下代码:

复制代码
Route::get('member/personal_log','permission.Member/personalLog');// 获取个人信息操作接口

二、后端api添加方法

在根目录下app文件夹下controller文件夹下permission文件夹下Member.php文件中,添加如下代码:

复制代码
    /**
     * 个人今日操作记录
     * User: 龙哥·三年风水
     * Date: 2024/12/13
     * Time: 11:24
     * @ return \think\response\Json
     */

    public function personalLog(){
        $param = $this->request->param();
        $where[] = ['admin_id', '=', $this->userId];
        $where[] = ['create_time', '=', date('Y-m-d',time())];
        $resList = TokenModel::dataList($where, 'id,token_type,menu_name,login_time', [$param['currentPage'], $param['currentSize']],'login_time DESC');
        $list = $resList['info'];
        foreach($list as $k=>$v){
            $list[$k]['title'] = PMModel::menunameTitle($v['menu_name']);
            $list[$k]['token_log'] = TokenModel::tokenType($v['token_type']);
            unset($list[$k]['token_type']);
            unset($list[$k]['menu_name']);
        }
        $res['list'] = $list;
        $res['meat'] = $resList['page'];
        return succ('操作成功',$res);
    }

在根目录下app文件夹下model文件夹下common文件夹下Token.php文件中添加如下方法:

复制代码
    /**
     * 返回类型属性
     * User: 龙哥·三年风水
     * Date: 2024/12/13
     * Time: 11:22
     * @ param $tokenType 类型编号
     * @ return mixed
     */
    public static function tokenType($tokenType){
        $arr = ["","登录","退出","自动退出","列表","所有","详情","保存","启禁用","删除","获取个人资料","修改个人资料","获取菜单权限","上传文件"];
        return $arr[$tokenType];
    }

在根目录下app文件夹下model文件夹下permission文件夹下Menu.php文件中添加如下代码:

复制代码
//向上级找菜单名称
    public static function menunameTitle($menuname){
        $pid = self::dataFinds(self::$name, ['menuname' => $menuname], 'pid', false, self::$connection);
        if(empty($pid))return "";
        $ids = [];
        if($pid != 0){
            self::recursionsUpward(self::$name, ['id' => $pid], 'pid', self::$connection, $ids);
        }
        array_push($ids,$pid);
        $titles = '';
        foreach ($ids as $k=>$v){
            $titles .= self::dataFinds(self::$name, ['id' => $v], 'title', false, self::$connection).'-';
        }
        return $titles;
    }

三、前端页面展示登录日志功能

在根目录下src文件夹下views文件夹下profile文件夹下components文件夹下Timeline.vue中,添加如下代码:

复制代码
<template>
  <div class="block">
    <el-timeline>
      <el-timeline-item v-for="item of list" :key="item.id" :timestamp="item.login_time" placement="top">
        <el-card>
          <h4>{{ item.title }}{{ item.token_log }}</h4>
        </el-card>
      </el-timeline-item>
    </el-timeline>
    <div class="block">
      <el-pagination
              :hide-on-single-page="true"
              :current-page="currentPage"
              :page-sizes="pageSizes"
              :page-size="currentSize"
              layout="total, sizes, prev, pager, next, jumper"
              :total="dataTotal"
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
      />
    </div>
  </div>
</template>

<script>
    import { getList } from '@/api/common'
export default {
  data() {
    return {
      list: [],
        pageSizes: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500],
        currentPage: 1, // 当前页数
        currentSize: 10, // 每页条数
        dataTotal: 0, // 总数据
    }
  },
    // 初始化执行的
    created() {
        this.getList()// 获取管理员数据
    },
    // 所有的方法都需要放到这个里面
    methods: {
        // 管理员数据 --异步
        async getList(page = 0) {
            const params = {
                currentPage: page === 0 ? this.currentPage : page,
                currentSize: this.currentSize,
            }
            await getList(params).then(res => {
                this.list = res.data.list
                this.dataTotal = res.data.meat.total * 1
            })
        },
        // 每页条数切换
        handleSizeChange(val) {
            this.currentSize = val
            this.getList()
        },
        // 页数切换
        handleCurrentChange(val) {
            this.currentPage = val
            this.getList()
        }
    }
}
</script>

四、提前说明

明天将完成操作日志功能

相关推荐
XiYang-DING17 小时前
【Java EE】TCP—滑动窗口
tcp/ip·java-ee·php
.千余18 小时前
【Linux】网络基础2---Socket编程预备
linux·网络·php
雪度娃娃19 小时前
Asio异步读写——简单服务器和客户端异步通信
运维·服务器·网络·c++·php
或与且与或非19 小时前
rabbitmq选举集群搭建
分布式·rabbitmq·ruby
无心水19 小时前
【分布式利器:金融级】金融级分布式架构开源框架全景解读
人工智能·分布式·金融·架构·开源·wpf·金融级框架
中科三方20 小时前
域名解析修改后,用户仍访问旧IP?原因排查与高效解决指南
网络协议·tcp/ip·php
Swift社区20 小时前
分布式能力在鸿蒙 PC 上到底怎么用?
分布式·华为·harmonyos
无心水20 小时前
【分布式利器:SOAF】蚂蚁开源的金融级微服务全家桶:SOFAStack 核心架构与实战选型对比
人工智能·分布式·微服务·金融·架构·开源·分布式利器
深蓝电商API20 小时前
分布式电商爬虫架构:Scrapy-Redis+消息队列的集群部署
分布式·爬虫·架构
阿正的梦工坊20 小时前
RabbitMQ 消息队列详解:从原理到实战
分布式·rabbitmq