• Hproxy项目前端


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

     

    添加路由

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

    1. {
    2. path: '/hproxy',
    3. component: Layout,
    4. redirect: '/hproxy/index',
    5. hidden: false,
    6. children: [
    7. {
    8. path: 'index',
    9. component: () => import('@/views/hproxy/index'),
    10. name: 'hproxy',
    11. meta: { title: 'HProxy 设置', icon: 'list', noCache: true }
    12. }
    13. ]
    14. }

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

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

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

    页面内容

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

    1. <script>
    2. import { submit, pullData } from '@/api/hproxy'
    3. export default {
    4. name: 'HProxy',
    5. data() {
    6. return {
    7. title: '',
    8. drawer: false,
    9. tableData: [],
    10. form: {
    11. 'name': '',
    12. 'type': '',
    13. 'source': '',
    14. 'target': '',
    15. 'content': ''
    16. },
    17. query: {
    18. pageNum: 1,
    19. pageSize: 10,
    20. total: 0
    21. }
    22. }
    23. },
    24. mounted() {
    25. this.fetchData()
    26. },
    27. methods: {
    28. createHook() {
    29. this.title = '添加HOOK'
    30. this.drawer = true
    31. this.form = {}
    32. },
    33. editHook(row) {
    34. this.title = '编辑HOOK'
    35. this.drawer = true
    36. this.form = row
    37. },
    38. onSubmit() {
    39. submit(this.form).then((response) => {
    40. if (response.code === 0) {
    41. this.query.pageNum = 1
    42. this.fetchData()
    43. this.$message({
    44. showClose: true,
    45. message: '保存成功!',
    46. type: 'success'
    47. })
    48. this.drawer = false
    49. }
    50. })
    51. },
    52. fetchData() {
    53. pullData({
    54. ...this.query
    55. }).then((response) => {
    56. if (response.code === 0) {
    57. this.tableData = response.data.list
    58. this.page = response.data.page
    59. }
    60. })
    61. }
    62. }
    63. }
    64. 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文件中的两个函数

    1. import request from '@/utils/request'
    2. export function submit(data) {
    3. return request({
    4. url: '/api/hproxy/_plugs_settings_',
    5. method: 'post',
    6. headers: {
    7. 'Content-Type': 'application/json'
    8. },
    9. data
    10. })
    11. }
    12. export function pullData(params) {
    13. return request({
    14. url: '/api/hproxy/_plugs_settings_',
    15. method: 'get',
    16. params
    17. })
    18. }
    • api目录下的http.js为api访问函数,submit函数以post方式访问后端接口/api/hproxy/_plugs_settings_
    • pullData以get方式后端访问接口/api/hproxy/_plugs_settings_

    总结

    1、在src/router/index.js添加路由
    2、路由中引用的component就是一个vue文件,在src下新建vue文件,添加页面元素。页面元素是基于element-ui的,用v-model和数据做绑定。
    处理函数(script部分) import { submit, pullData }引用的是api下的js文件。
    3、在api下新建hproxy.js文件,用来请求后端接口。
     

  • 相关阅读:
    好心情精神心理科医生:抗抑郁药物是否成瘾?
    iOS OC项目中引入SwiftUI文件
    Java实现拼图小游戏(2)——菜单搭建(有关Java中的JMenuBar知识点)
    ElasticSearch安装、插件介绍及Kibana的安装与使用详解
    机器学习(Machine learning,ML)1基础入门
    台湾飞凌FM8PB513B单片机提供单片机方案开发 产品设计
    【数据结构笔记06】数据结构之队列的顺序表示和实现(普通队列、循环队列)
    创建线程池
    GitLab CI/CD 自动化部署-springBoot-demo示例
    计算机毕设源代码网站ssm基于web的在线学习平台
  • 原文地址:https://blog.csdn.net/seanyang_/article/details/127624077