Hproxy项目前端

news/2024/4/29 23:42:19/文章来源:https://blog.csdn.net/seanyang_/article/details/127624077

 hproxy项目前端使用vue-element-admin框架,页面为hook列表,和一个添加hook页面。

 

 

添加路由

编辑src/router/index.js文件,在constantRoutes列表追加如下路由内容

  {path: '/hproxy',component: Layout,redirect: '/hproxy/index',hidden: false,children: [{path: 'index',component: () => import('@/views/hproxy/index'),name: 'hproxy',meta: { title: 'HProxy 设置', icon: 'list', noCache: true }}]}

如上说明页面路径为/hproxy/index,

页面为views/hproxy文件夹下的index.vue

页面的title为Hproxy设置,菜单icon为list,

页面内容

创建一个路径为src/views/hproxy的目录,同时在该目录下创建一个名为index.vue的文件

<template><div class="app-container"><div><el-row :gutter="20"><el-col :span="24" :xs="24"><el-card><el-button type="primary" @click="createHook">添加HOOK</el-button></el-card></el-col></el-row><el-row :gutter="20"><el-col :span="24" :xs="24"><el-table:data="tableData"borderstyle="width: 100%;"><el-table-columnfixedprop="name"label="HOOK名称"></el-table-column><el-table-columnprop="type"label="HOOK类型"width="100"></el-table-column><el-table-columnprop="source"label="源IP"width="120"></el-table-column><el-table-columnprop="target"label="目标域名"width="120"></el-table-column><el-table-columnprop="content"label="HOOK内容"></el-table-column><el-table-columnprop="created_time"label="创建时间"width="160"></el-table-column><el-table-columnfixed="right"label="操作"width="60"><template slot-scope="scope"><el-button type="text" size="small" @click="editHook(scope.row)">编辑</el-button></template></el-table-column></el-table><div style="text-align: right; margin: 5px;"><el-paginationbackgroundlayout="prev, pager, next":page-size="query.pageSize":total="query.total"></el-pagination></div></el-col></el-row><el-row :gutter="20"><el-col :span="24" :xs="24"><el-drawertitle="":visible.sync="drawer":with-header="false"size="50%"><div style="padding: 10px;"><h3>{{ title }}</h3><el-divider content-position="left"></el-divider><el-form ref="form" :model="form" label-width="80px"><el-form-item label="名称"><el-input v-model="form.name" placeholder="请输入HOOK名称" /></el-form-item><el-form-item label="类型"><el-select v-model="form.type" placeholder="请选择HOOK类型"><el-option label="请求HOOK" value="REQUEST" /><el-option label="响应HOOK" value="RESPONSE" /></el-select></el-form-item><el-form-item label="源IP"><el-input v-model="form.source" placeholder="请输入需要处理的请求IP" /></el-form-item><el-form-item label="目标域名"><el-input v-model="form.target" placeholder="请输入需要处理的目标域名" /></el-form-item><el-form-item label="脚本内容"><el-input type="textarea" :autosize="{ minRows: 8, maxRows: 12}" v-model="form.content" placeholder="请输入HOOK脚本内容" /></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">保存</el-button><el-button @click="drawer = false">取消</el-button></el-form-item></el-form></div></el-drawer></el-col></el-row></div></div>
</template><script>
import { submit, pullData } from '@/api/hproxy'
export default {name: 'HProxy',data() {return {title: '',drawer: false,tableData: [],form: {'name': '','type': '','source': '','target': '','content': ''},query: {pageNum: 1,pageSize: 10,total: 0}}},mounted() {this.fetchData()},methods: {createHook() {this.title = '添加HOOK'this.drawer = truethis.form = {}},editHook(row) {this.title = '编辑HOOK'this.drawer = truethis.form = row},onSubmit() {submit(this.form).then((response) => {if (response.code === 0) {this.query.pageNum = 1this.fetchData()this.$message({showClose: true,message: '保存成功!',type: 'success'})this.drawer = false}})},fetchData() {pullData({...this.query}).then((response) => {if (response.code === 0) {this.tableData = response.data.listthis.page = response.data.page}})}}
}
</script>

分析:

  • 修改VUE项目下文件时,正在运行的项目会自动重新编译。
  • 添加HOOK按钮绑定了createHook函数,把title设置为添加HOOK,drawer设置为true,即显示右侧面板,form设置为空
  • 编辑按钮绑定了 @click="editHook(scope.row) title设置为编辑HOOK,drawer设置为true,form设置为row
  • 保存按钮@click="onSubmit" drawer设置为false,拉取数据,将messge设置为保存成功。
  • 取消按钮 @click="drawer = false"
  • el-drawer是一个抽屉 drawer为true时显示,drawer为false时隐藏
  • el-pagination是一个翻页组件 @current-change="handleCurrentChange"
  • fetchData函数拉取响应的数据

访问API文件

在index.vue里引用了api下的hproxy.js文件中的两个函数

import request from '@/utils/request'export function submit(data) {return request({url: '/api/hproxy/_plugs_settings_',method: 'post',headers: {'Content-Type': 'application/json'},data})
}export function pullData(params) {return request({url: '/api/hproxy/_plugs_settings_',method: 'get',params})
}
  • api目录下的http.js为api访问函数,submit函数以post方式访问后端接口/api/hproxy/_plugs_settings_
  • pullData以get方式后端访问接口/api/hproxy/_plugs_settings_

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_410063.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各省市软考准考证打印时间,一起来看!

距离软考还有一周&#xff0c;各个省市的准考证也开始打印了&#xff01; 各地防疫政策一定要遵守&#xff0c;不然错过&#xff0c;又等一年&#xff01; 周末也有一些省市因疫情推迟、取消考试的。 一起来看&#xff01; 考完之后&#xff0c;会在这里讨论一些答案&#x…

UWB室内定位系统铸造智能化企业安全管理系统

进入工业4.0时代以来&#xff0c;数字技术不断成熟、扩散和融合&#xff0c;加速推动工业企业数字化、智能化转型。企业推进数字化转型要整体规划、分布实施&#xff0c;需要考虑企业经营管理活动的全过程、全范围、全层级。各大行业已经开始配备UWB人员定位系统&#xff0c;提…

电脑C盘怎么清理到最干净

如果你的电脑C盘运行内存已经快满了&#xff0c;这个时候你怎么处理&#xff1f;让我们来看看如何清理C盘。 c如何清理盘&#xff1a; 方法一&#xff1a;存储状态 点击电脑win键&#xff0c;在设备左侧弹出提示框&#xff0c;进入系统配置&#xff0c;然后点击系统软件选项…

MyBatis Plus实现动态字段排序

利用周末时间&#xff0c;对已有的项目进行了升级&#xff0c;原来使用的是tkmybatis&#xff0c;改为mybatis plus。但是由于修改了返回数据的格式&#xff0c;前端页面字段排序失效了&#xff0c;需要刷新表格才会排序。页面效果如下 easyui的数据表格datagrid支持多字段排序…

商用车进入回暖周期,哪些供应商在领跑「主动安全」前装赛道

由于受到经济周期性影响&#xff0c;去年开始商用车市场出现一波下行行情。 中国汽车工业协会发布数据显示&#xff0c;2022年1-9月&#xff0c;商用车产销分别完成242.6万辆和248.4万辆&#xff0c;同比下降32.6%和34.2%&#xff0c;降幅较1-8月收窄1.5个百分点和2个百分点&a…

ZAB协议

1、定义 ZAB 协议全称&#xff1a;Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子广播协议&#xff09;。 ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持 崩溃恢复 和 原子广播 协议&#xff0c;基于该协议&#xff0c;Zookeeper 实现了一种 主备模式 的…

什么是行内元素的盒模型

目录 行内元素的盒模型 display 可选值&#xff1a; visibility 可选值&#xff1a; 行内元素的盒模型 行内元素不支持设置宽度和高度 但是这并不是说明行内元素没有内容区 而是通过width和height不能改变内容区的大小 行内元素的内容区是由他里面的内容决定的&#xff0…

【视觉基础篇】14 # 如何使用片元着色器进行几何造型?

说明 【跟月影学可视化】学习笔记。 如何用片元着色器控制局部颜色&#xff1f; 把图片绘制为纯黑色&#xff1a; const fragment #ifdef GL_ESprecision highp float;#endifvarying vec2 vUv;void main() {gl_FragColor vec4(0, 0, 0, 1);} ;根据纹理坐标值来绘制&#…

工地ai智能视频监控系统

工地ai智能视频监控系统在监控摄像头监控的画面范围之内&#xff0c;对人的不安全行为&#xff08;违规行为&#xff09;或者物的不安全状态进行实时分析识别&#xff0c;当工地ai智能视频监控系统发现现场违规行为时&#xff0c;可根据需要设置各种警戒要求&#xff0c;工地ai…

【计算机网络--物理层】编码和调制与数据交换方式

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录基带信号与宽带信号基带信号宽带信号小结编码与调制编码调制的方法数字数据编码为数字信号数字数字调制为模拟信号模拟数据编码为数字信号模拟信号调制为模拟信号数据交换电路交换报文交换分组交换数据报方式…

windows系统命令行查看已连接过的WiFi密码

展示所有连接过的WiFi列表netsh wlan show profiles 显示具体某个WiFi的密码netsh wlan show profiles name="XXXXXX" key=clear name - 所要显示配置文件的名称。就是WiFi的名称 interface - 已配置此配置文件的接口的名称。 key - 以纯…

跨境电商万圣节社媒营销:8个方法助你冲出重围

今天是西方一年一度的万圣节前夜&#xff0c;同时也是跨境电商第四季度第一个大促日。Nox聚星获悉&#xff0c;2022年万圣节期间会有69%的美国民众参与这场万圣节狂欢&#xff0c;预计人均消费将达到100.45美金&#xff0c;预计将产生106亿的销售额。作为四季度第一个促销日&am…

【飞桨PaddleSpeech语音技术课程】— 多语言合成与小样本合成技术应用实践

(以下内容搬运自飞桨PaddleSpeech语音技术课程&#xff0c;点击链接可直接运行源码) 多语言合成与小样本合成技术应用实践 一 简介 1.1 语音合成的简介 语音合成是一种将文本转换成音频的技术。通常语音合成的整体流程如图1所示。可以分为&#xff1a;文本前端&#xff0c;…

团队分工越明确,工作效率越低?

一个团队各项任务能否顺利完成,关键看员工的执行力,而员工执行力的发挥,取决于组织对员工的合理分工。 分工合理,能调动员工的积极性,分工不合理,便会扼杀积极性。 那么如何才能做到合理分工呢?有些人认为分工就是把工作内容拆成一个个小任务,然后让员工去分头完成。…

C语言学习推荐---小游戏

文章目录控制台文字游戏srand、rand、time猜拳游戏控制台动作游戏运动的小球贪吃蛇音乐图形界面easyx介绍后续学习c语言的时候&#xff0c;想写例子&#xff0c;但是课后习题又太枯燥怎么办&#xff1f; 写小游戏可以锻炼我们的编程抽象能力和思维&#xff0c;而且比较有趣&…

基于nodejs电影交流网站设计与实现-计算机毕业设计源码+LW文档

摘 要 网络的广泛应用给生活带来了十分的便利。所以把电影交流管理与现在网络相结合&#xff0c;利用nodejs技术建设电影交流网站&#xff0c;实现电影交流的信息化。则对于进一步提高电影交流管理发展&#xff0c;丰富电影交流管理经验能起到不少的促进作用。 电影交流网站能…

论文研读1——对抗样本(Adversarial Example)综述

论文地址&#xff1a;Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey 部分内容参考科研篇二&#xff1a;对抗样本&#xff08;Adversarial Example&#xff09;综述 一、主要内容 肯定了深度学习在计算机视觉等领域的贡献&#xff0c;但深度…

后端开发总结(2):go语言的知识点

go语言知识点1 append 列表2 如何打印指针结构体的值3 * 和 & 的用法1 append 列表 append() 切片需要增加 ... var a []inta append(a, 1) // 追加1个元素 a append(a, 1, 2, 3) // 追加多个元素 a append(a, []int{1,2,3}...) // 追加切片,2 如何打印指针结构体的值…

如何将程序打包成exe

我们经常需要将我们写的程序打包发给用户使用&#xff0c;很多时候为了方便会直接将文件夹或者压缩包发出去。这种方式对于一些不太懂电脑的用户来说的话&#xff0c;假如程序中有多个可执行文件&#xff0c;就会完全不知道怎么使用。众所周知&#xff0c;客户体验也是评判软件…

SpringBoot笔记:Hello World

SpringBoot简化了Spring应用的初始框架搭建和开发过程,利用SpringBoot框架可以快速的进行Spring应用的开发,SpringBoot具有以下特性:能够快速创建基于Spring的应用程序。 提供了约定好的初始POM来简化Maven配置,让Maven配置变得更简单。 多数情况可以直接使用注解开发来替代…