尚医通-前端列表(十一)

news2025/1/15 7:00:08

目录:

 

(1)搭建前端环境

 (2)目录结构和登录改造

 (3)医院设置前端-列表


(1)搭建前端环境

vue-element-admin

简介

vue-element-admin是基于element-ui 的一套后台管理系统集成方案。

GitHub地址:https://github.com/PanJiaChen/vue-element-admin

项目在线预览:https://panjiachen.gitee.io/vue-element-admin

安装

# 解压压缩包
# 进入目录
cd vue-element-admin-master
# 安装依赖
npm install
# 启动。执行后,浏览器自动弹出并访问http://localhost:9527/
npm run dev
 

vueAdmin-template是基于vue-element-admin的一套后台管理系统基础模板(最少精简版),可作为模板进行二次开发。

GitHub地址:GitHub - PanJiaChen/vue-admin-template: a vue2.0 minimal admin template

建议:你可以在 vue-admin-template 的基础上进行二次开发,把 vue-element-admin当做工具箱,想要什么功能或者组件就去 vue-element-admin 那里复制过来。

首先需要把前端模板下载下来,使用第一个解压:

 把这个项目放到提前准备好的工作区中:

安装依赖:

则先执行下面的命令,再install

npm i -g node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
 

启动:

 (2)目录结构和登录改造

修改:

user.js:使它不调用接口登录:

import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'

const user = {
  state: {
    token: getToken(),
    name: '',
    avatar: '',
    roles: []
  },

  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token
    },
    SET_NAME: (state, name) => {
      state.name = name
    },
    SET_AVATAR: (state, avatar) => {
      state.avatar = avatar
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles
    }
  },

  actions: {
    // 登录
    Login({ commit }, userInfo) {
      const data = { 'token': 'admin' }
      setToken(data.token)
      commit('SET_TOKEN', data.token)
      // const username = userInfo.username.trim()
      // return new Promise((resolve, reject) => {
      //   login(username, userInfo.password).then(response => {
      //     const data = response.data
      //     setToken(data.token)
      //     commit('SET_TOKEN', data.token)
      //     resolve()
      //   }).catch(error => {
      //     reject(error)
      //   })
      // })
    },

    // 获取用户信息
    GetInfo({ commit, state }) {
      const data = { 'roles': 'admin', 'name': 'admin', 'avatar': 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif' }
      if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
        commit('SET_ROLES', data.roles)
      } else {
        reject('getInfo: roles must be a non-null array !')
      }
      commit('SET_NAME', data.name)
      commit('SET_AVATAR', data.avatar)

      // return new Promise((resolve, reject) => {
      //   getInfo(state.token).then(response => {
      //     const data = response.data
      //     if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
      //       commit('SET_ROLES', data.roles)
      //     } else {
      //       reject('getInfo: roles must be a non-null array !')
      //     }
      //     commit('SET_NAME', data.name)
      //     commit('SET_AVATAR', data.avatar)
      //     resolve(response)
      //   }).catch(error => {
      //     reject(error)
      //   })
      // })
    },

    // 登出
    LogOut({ commit, state }) {
      commit('SET_TOKEN', '')
      commit('SET_ROLES', [])
      removeToken()
      // return new Promise((resolve, reject) => {
      //   logout(state.token).then(() => {
      //     commit('SET_TOKEN', '')
      //     commit('SET_ROLES', [])
      //     removeToken()
      //     resolve()
      //   }).catch(error => {
      //     reject(error)
      //   })
      // })
    },

    // 前端 登出
    FedLogOut({ commit }) {
      //return new Promise(resolve => {
      commit('SET_TOKEN', '')
      removeToken()
      resolve()
      //})
    }
  }
}

export default user

 修改request.js:改成token

 

(2)框架开发模块介绍

 

 

 

 request.js给我们进行了封装,不用向原来在页面写axios进行调用,这个js给我们做了封装,在页面直接调用就可以了

 

 (3)医院设置前端-列表

 在router下index.js添加一份路由:

 

 刷新页面:

创建目录hospset哈vue页面: 

 add.vue:

<template>
    <div class="app-container">
        医院设置添加
    </div>
</template>

 list.vue:

<template>
    <div class="app-container">
        医院设置列表
    </div>
</template>

 创建hospset.js:书写接口访问

 

 hospset.js

import request from '@/utils/request'

// export function getList(params) {
//   return request({
//     url: '/table/list',
//     method: 'get',
//     params
//   })
// }

export default {
  getHospSetList(current,limit,searchObj) {
  return request({
    url: `${api_name}/findPageHospSet/${current}/${limit}`,
    method: 'post',
    data: searchObj //使用json
  })
  }
}

修改dev.env.js:

 

 

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
 // BASE_API: '"https://easy-mock.com/mock/5950a2419adc231f356a6636/vue-admin"',
  BASE_API: '"http://localhost:8201"',
})

测试侯后端分页查询接口:

HospConfig:配置类中加入分页插件

package com.atguigu.yygh.hosp.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan("com.atguigu.yygh.hosp.mapper")
public class HospConfig {
    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

}

 

 

 

接口测试正确:

编写  list.vue

<template>
    <div class="app-container">
        医院设置列表
    </div>
</template>
<script>
//引入接口定义的js文件
import hospset from '@/api/hospset'

export default {
    // data: {

    // }
    //定义一些变量和初始值
    data() {
        return {
            current: 1,//当前页
            limit: 3,//每页显示记录数
            searchObj: {}, //条件封装对象
            list:[] //每页数据集合
        }
    },
    created() {//在页面渲染之前执行
        //一般调用methods定义的方法,得到数据
        this.getList();
    },
    methods: {//定义方法进行请求接口的调用
        //医院设置列表方法
        getList() {
            hospset.getHospSetList(this.current, this.limit, this.searchObj)
                .then(response => {
                    //response接口返回数据
                    console.log(response);

                }) //请求成功之后调用
                .catch(error => {
                    console.log(error);
                })//请求失败调用
        }
    }   
}
</script>

报错:因为产生了跨域问题:前端端口9528 后端接口8201 

 

 

 

解决办法:

一种是在控制器上加注解 

@CrossOrigin  //跨域访问注解

 

 在封装的request.js跨域访问成功返回20000改为200

 

 list.vue:

<template>
    <div class="app-container">
        医院设置列表
    </div>
</template>
<script>
//引入接口定义的js文件
import hospset from '@/api/hospset'

export default {
    // data: {

    // }
    //定义一些变量和初始值
    data() {
        return {
            current: 1,//当前页
            limit: 3,//每页显示记录数
            searchObj: {}, //条件封装对象
            list: [], //每页数据集合
            total:0 //总记录数
        }
    },
    created() {//在页面渲染之前执行
        //一般调用methods定义的方法,得到数据
        this.getList();
    },
    methods: {//定义方法进行请求接口的调用
        //医院设置列表方法
        getList() {
            hospset.getHospSetList(this.current, this.limit, this.searchObj)
                .then(response => {//response接口返回数据
                    //返回集合赋值给list
                    this.list = response.data.records
                    //总记录数
                    this.total=response.data.total
                    console.log(response);

                }) //请求成功之后调用
                .catch(error => {
                    console.log(error);
                })//请求失败调用
        }
    }   
}
</script>

进入element-ui官网:

 复制代码

 

 

<template>
    <div class="app-container">
        医院设置列表
        <el-table :data="list" stripe style="width: 100%">
        
            <el-table-column type="index" width="50" label="序号"/>
            <el-table-column prop="hosname" label="医院名称" />
            <el-table-column prop="hoscode" label="医院编号" />
            <el-table-column prop="apiUrl" label="api基础路径" width="200" />
            <el-table-column prop="contactsName" label="联系人姓名" />
            <el-table-column prop="contactsPhone" label="联系人手机" />
            <el-table-column label="状态" width="80">
                <template slot-scope="scope">
                    {{ scope.row.status === 1 ? '可用' : '不可用' }}
                </template>
            </el-table-column>
        </el-table>

    </div>
</template>
<script>
//引入接口定义的js文件
import hospset from '@/api/hospset'

export default {
    // data: {

    // }
    //定义一些变量和初始值
    data() {
        return {
            current: 1,//当前页
            limit: 3,//每页显示记录数
            searchObj: {}, //条件封装对象
            list: [], //每页数据集合
            total:0 //总记录数
        }
    },
    created() {//在页面渲染之前执行
        //一般调用methods定义的方法,得到数据
        this.getList();
    },
    methods: {//定义方法进行请求接口的调用
        //医院设置列表方法
        getList() {
            hospset.getHospSetList(this.current, this.limit, this.searchObj)
                .then(response => {//response接口返回数据
                    //返回集合赋值给list
                    this.list = response.data.records
                    //总记录数
                    this.total=response.data.total
                    console.log(response);

                }) //请求成功之后调用
                .catch(error => {
                    console.log(error);
                })//请求失败调用
        }
    }   
}
</script>

下面做分页:

使用elemrnt-ui中的分页插件:

 

 

 

 

添加一个表单查询:

 

list.vue 

<template>
    <div class="app-container">
        医院设置列表
        <el-form :inline="true" class="demo-form-inline">
          <el-form-item>
            <el-input  v-model="searchObj.hosname" placeholder="医院名称"/>
          </el-form-item>
          <el-form-item>
            <el-input v-model="searchObj.hoscode" placeholder="医院编号"/>
          </el-form-item>
        <el-button type="primary" icon="el-icon-search" @click="getList()">查询</el-button>
        </el-form>


        <el-table :data="list" stripe style="width: 100%">
        
            <el-table-column type="index" width="50" label="序号"/>
            <el-table-column prop="hosname" label="医院名称" />
            <el-table-column prop="hoscode" label="医院编号" />
            <el-table-column prop="apiUrl" label="api基础路径" width="200" />
            <el-table-column prop="contactsName" label="联系人姓名" />
            <el-table-column prop="contactsPhone" label="联系人手机" />
            <el-table-column label="状态" width="80">
                <template slot-scope="scope">
                    {{ scope.row.status === 1 ? '可用' : '不可用' }}
                </template>
            </el-table-column>
        </el-table>
        <!-- 分页 -->
        <el-pagination 
        :current-page="current" 
        :page-size="limit" 
        :total="total" 
        style="padding: 30px 0; text-align: center;"
        layout="total, prev, pager, next, jumper" 
        @current-change="getList" />

    </div>
</template>
<script>
//引入接口定义的js文件
import hospset from '@/api/hospset'

export default {
    // data: {

    // }
    //定义一些变量和初始值
    data() {
        return {
            current: 1,//当前页
            limit: 3,//每页显示记录数
            searchObj: {}, //条件封装对象
            list: [], //每页数据集合
            total:0 //总记录数
        }
    },
    created() {//在页面渲染之前执行
        //一般调用methods定义的方法,得到数据
        this.getList();
    },
    methods: {//定义方法进行请求接口的调用
        //医院设置列表方法
        getList(page = 1) {//添加当前页的参数
            this.current = page
            //调用hospset.js中的getHospSetList方法
            hospset.getHospSetList(this.current, this.limit, this.searchObj)
                .then(response => {//response接口返回数据
                    //返回集合赋值给list
                    this.list = response.data.records
                    //总记录数
                    this.total=response.data.total
                    console.log(response);

                }) //请求成功之后调用
                .catch(error => {
                    console.log(error);
                })//请求失败调用
        }
    }   
}
</script>

 

 点击查询:

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机系统基础实验 - 数的机器级表示

实验1 数的机器级表示 实验序号&#xff1a;1 实验名称&#xff1a;数的机器级表示 适用专业&#xff1a;软件工程 学时数&#xff1a;2学时 一、实验目的 1.熟练掌握无符号整数的机器级表示 2.熟练掌握有符号整数的机器级表示 3.熟练掌握浮点数的机器级表示 二、实验要求 …

WORDPRESS WOOCOMMERCE购物网站安装AB跳转支付插件接口的教程

本文介绍在Wordpress Woocommerce购物系统上安装支付插件&#xff0c;并且对接《品牌出海AB跳转收单系统》的方法&#xff0c;以下是图文教程 注意本教程是采用Wordoress中文版本后台截取的图例&#xff0c;英文版本后台文字略有不同&#xff1b; 1、首先打开支付插件压缩包&…

反编译python 生成的exe源码

反编译python 生成的exe源码记录反编译exe工具使用 工具准备 – pyinstxtractor.py – uncompyle6 – sublime Text&#xff08;或者其他的二进制编辑工具&#xff09; 一、解包&#xff08;exe&#xff09; ①&#xff1a;先把下载的pyinstxtractor.py文件和需要进行反编译的…

π120M60代替ADuM2210SRIZ 双通道数字隔离器 电路简单速度快

π120M60代替ADuM2210SRIZ 双通道数字隔离器 电路简单速度快。具有出色的性能特征和可靠性&#xff0c;整体性能优于光耦和基于其他原理的数字隔离器产品。传输通道间彼此独立&#xff0c;可实现多种传输方向的配置&#xff0c;可实现 5.0kV rms 隔离耐压等级和 DC 到 10Mbps 信…

下载和安装MySQL官方提供的示例数据库(Employees)

一、前言 在此之前笔者写过一篇博客《你说精通MySQL其实很菜jī&#xff08;1&#xff09;&#xff1a;你不一定会的基本技巧或知识点&#xff08;值得一看&#xff09;》&#xff0c;本文内容是从那篇博客截取出来的。我们要学习MySQL相关的技术点&#xff0c;使用官方提供的测…

构造HTTP请求

构造HTTP请求一、浏览器自己构造二、通过 form 表单构造三、通过 ajax 构造一、浏览器自己构造 1&#xff09;地址栏里写URL&#xff0c;构造出GET请求 2&#xff09;点击a标签等&#xff0c;也会构造GET请求 3&#xff09;img、link、script也会构造GET请求 二、通过 form 表…

Java中的常用队列

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;Java中的常用队列 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: 林在闪闪…

【Django】第二课 基于Django图书借阅管理网站平台

概念 本文在上一篇文章之上完成登录&#xff0c;图书显示&#xff0c;关键字搜索以及分页功能 登录功能实现 当用户在首页进行输入学生用户信息后&#xff0c;点击登录按钮发送请求给服务器&#xff0c;地址请求为: /toLogin/ urls.py path(toLogin/,views.toLogin), 将接…

ArcGIS基础实验操作100例--实验3旋转矢量要素

实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验3 旋转矢量要素 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&#xff09;加载【旋转】工具 &#xff08;2&#xff09;旋转矢量要素 一…

灵龟八法推算

很久之前就对这个算法感兴趣了&#xff0c;但是一直没搞定&#xff0c;网上公说公的&#xff0c;婆说婆的&#xff0c;搞得你头晕眼睛花&#xff0c;最后东拼西凑研究了好久才研究出来,在这里给大家分享。 第一步&#xff0c;掏出你的老黄历&#xff0c;如果你没有老黄历问题不…

BUUCTF Misc 弱口令 [RoarCTF2019]黄金6年 小易的U盘 [WUSTCTF2020]alison_likes

目录 弱口令 [RoarCTF2019]黄金6年 小易的U盘 [WUSTCTF2020]alison_likes 弱口令 下载文件 一个压缩包&#xff0c;需要密码&#xff0c;爆破了一会没出结果&#xff0c;百度了一下竟然有提示 蓝色内容复制到sublime查看&#xff08;记事本也不能看&#xff09; 摩斯密码&…

vue-cli2配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)

vue-cli区分办法 vue配置生产环境.env.production、测试环境.env.development vue配置webpack生产环境、测试环境 在使用webpack创建完vue2项目的时候&#xff0c;为了解决生产打包、测试打包对应的全局变量不一致的问题。 首先看一下package.json的改动&#xff1a; "…

【Git】一文带你入门Git分布式版本控制系统(创建版本库、 版本回退)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…

改变您对Fedora的印象

导读我是 Fedora 的老用户了&#xff0c;从四年前接触嵌入式 Linux 开始&#xff0c;Fedora 就是我的桌面操作系统&#xff0c;期间从未被其他操作系统替代过&#xff0c;偶尔尝试也会第二天就装回来。用得愈久愈是喜欢&#xff0c;简洁、漂亮、稳定&#xff0c;无一不击中我&a…

OpenGL学习(基础光照)

这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型(Phong Lighting Model)。冯氏光照模型的主要结构由3个分量组成&#xff1a;环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照 环境光照 全局照明(Global Illumination)算法&#xff0c;但是…

吴恩达《机器学习》——线性回归代码实现

线性回归1. 单变量线性回归单变量线性回归公式损失函数优化算法——批梯度下降&#xff08;BGD&#xff09;2. 多变量线性回归特征缩放&#xff08;标准化&#xff09;参数的逆缩放3. 线性回归算法代码实现向量实现Python代码4. 实验结果单变量回归多变量回归实验总结数据集、源…

使用C#开发Word VSTO外接程序示例

目标&#xff1a;实现类似word中导航栏视图的功能。 创建新项目&#xff0c;选择模板“Word VSTO 外接程序”。选择工程&#xff0c;新建项目---新建功能区&#xff08;可视化设计器&#xff09;双击打开新建的可视化编辑器&#xff0c;编辑容器RibbonGroup在容器RibbonGroup里…

ReactJS入门之Model层

目录 一&#xff1a;分层 二&#xff1a;使用DVA进行数据分层管理 三&#xff1a;在model中请求数据 四&#xff1a;mock数据 一&#xff1a;分层 上图中&#xff0c;左侧是服务端代码的层次结构&#xff0c;由Controller、Service、Data Access 三层组成服务端系统&#…

Docker图文 | Docker、Dockerfile、Docker-compose、Docker镜像仓库操作 | 系统性学习 | 无知的我费曼笔记

Dokcer和Linux一样都是一些死命令&#xff0c;不必花费过多的时间去学习。 也不必花费过多时间专项地记忆&#xff0c;在实际运用中随用随取即可。 还不如将省下来的时间更多地花费在于培养思维上。 文章目录Docker1.初识Docker1.1.Docker意义1.1.1.应用部署的环境问题描述1.1…

Antd UI Switch组件 中 checked与defaultChecked踩坑记录

目录 需求分析 问题发现 解决方法 总结 需求分析 需求其实很简单&#xff0c;就是在对应的表格行内添加一个人switch 滑块&#xff0c;用于开启或关闭单点登录入口。只需要修改一下对应的表格&#xff0c;添加一个滑块组件&#xff0c;新增一个接口。于是菜鸡博主&#xf…