传智健康-day1-进度

一.准备工作

1.项目介绍

2.原型展示

3.技术架构

 HTML5可以实现在手机端自适应显示

4.功能架构

5.软件开发流程

使用瀑布模型进行开发

二.环境搭建

1.项目结构

使用maven分模块开发方式,将整个项目拆分成几个maven工程,每个maven工程存放特定的一类代码

 2.环境搭建

2.1.health_parent

首先新建一个空工程(empty project)

然后在empty Project工程下新增一个maven模块health_parent

不需要选择架构,在pom文件里修改打包方式为pom,用于统一管理依赖版本

    <packaging>pom</packaging>

将资料中的依赖复制到pom文件中,如果出现依赖版本爆红,而且刷新没用的话

将下图中的标签注释掉,再刷新,就可以下载依赖了。

这个问题的原因是没有导入资料中的jar依赖包。

<dependencyManagement>

dependencyManagement元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。

简单的说,就是统一锁定子模块中的jar包版本号。

但是设置了此标签后,子模块中想要引用哪个jar包,需要子模块自己单独指定jar包。

因为每个模块使用的jar包都不一样,每个模块都统一继承了父模块的jar包,并不合理。每个模块引入jar包时,列出jar包即可,无需再列出版本号,从而实现版本号控制。

2.2 health_common

子工程,打包方式为jar,存放通用组件,例如工具类、实体类等

<packaging>jar</packaging>

复制资料中的代码即可

2.3 health_interface

子工程,打包方式为jar,存放服务接口

这个子工程只需继承common工程即可

<packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>com.itheima</groupId>
            <artifactId>health_common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

2.4 health_service_provider

子工程,打包方式为war,作为服务单独部署,存放服务类、Dao接口和Mapper映射文件等 

因为打包方式是war包,所以需要创建一个带有webapp架构的maven工程

web工程会自动在pom文件中添加很多不必要的依赖(红色方框),我们选择删除即可

依赖interface工程,添加一个tomcat插件

<!--依赖interface工程-->
        <dependency>
            <groupId>com.itheima</groupId>
            <artifactId>health_interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <!-- 指定端口 -->
                    <port>81</port>
                    <!-- 请求路径 -->
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

 web工程中没有java源码包,resource目录,需要手动添加

添加log4j日志文件

添加mybatis的配置文件,实际开发中的xml文件,一般都是直接复制,修改即可。

添加Spring的配置文件

  spring-dao:持久层配置文件

  注意修改配置

  创建对应的数据库

  

  spring-tx:事务控制层配置文件

  spring-service:发布相关的配置文件

  web.xml:初始化spring

2.5 healt_backend

创建一个maven的web工程 ,打包方式为war,单独部署,存放Controller、页面等

根据服务提供工程(service_provider)来完成自己的功能。所以需要依赖interface接口

同时需要提供tomcat服务,部署tomcat,注意和health_service_provider模块的端口号不能重复

完善web项目的工程结构

配置日志文件

配置springmvc.xml文件

配置web.xml文件,注意名称的对应,如下图

2.28进度

安装powerdesigner12成功。

创建物理模型(PDM)

3.1进度

三.ElementUI

1.使用ElementUI构建页面,在页面上引入js和css文件即可使用,在ElementUI的官方文档找到引用地址

 注意要引用vue.js,因为ElementUI是基于vue开发的

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14"></script>

 根据不同的需求,在官方文档上去寻找组件

1.container布局容器:用于布局的容器组件,方便快速搭建页面的基本结构

<el-container>:外层容器。当子元素中包含 <el-header> 或 <el-footer> 时,全部子元素会垂直上下排列,否则会水平左右排列。

<el-header>:顶栏容器。

<el-aside>:侧边栏容器。

<el-main>:主要区域容器。

<el-footer>:底栏容器。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入ElementUI样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <!--引入vue.js,因为ElementUI是配置Vue使用-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14"></script>
    <!-- 引入ElementUI组件库 -->
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
<!--2.定义一个div,id为app-->
<div id="app">
    <el-container>
        <!--外层容器,可以包含以下四种元素-->
        <el-header>Header</el-header>
        <!--顶栏容器-->
        <el-main>Main</el-main>
        <!--主要区域容器-->
    </el-container>

    <el-container>
        <el-header>Header</el-header>
        <el-main>Main</el-main>
        <el-footer>Footer</el-footer>
        <!--底栏容器-->
    </el-container>

    <el-container>
        <el-aside width="200px">Aside</el-aside>
        <el-main>Main</el-main>
    </el-container>

    <el-container>
        <el-header>Header</el-header>
        <el-container>
            <el-aside width="200px">Aside</el-aside>
            <el-main>Main</el-main>
        </el-container>
    </el-container>

    <el-container>
        <el-header>Header</el-header>
        <el-container>
            <el-aside width="200px">Aside</el-aside>
            <el-container>
                <el-main>Main</el-main>
                <el-footer>Footer</el-footer>
            </el-container>
        </el-container>
    </el-container>

    <el-container>
        <el-aside width="200px">Aside</el-aside>
        <el-container>
            <el-header>Header</el-header>
            <el-main>Main</el-main>
        </el-container>
    </el-container>

    <el-container>
        <el-aside width="200px">Aside</el-aside>
        <el-container>
            <el-header>Header</el-header>
            <el-main>Main</el-main>
            <el-footer>Footer</el-footer>
        </el-container>
    </el-container>

    <style>
        .el-header, .el-footer {
            background-color: #B3C0D1;
            color: #333;
            text-align: center;
            line-height: 60px;
        }

        .el-aside {
            background-color: #D3DCE6;
            color: #333;
            text-align: center;
            line-height: 200px;
        }

        .el-main {
            background-color: #E9EEF3;
            color: #333;
            text-align: center;
            line-height: 160px;
        }

        body > .el-container {
            margin-bottom: 40px;
        }

        .el-container:nth-child(5) .el-aside,
        .el-container:nth-child(6) .el-aside {
            line-height: 260px;
        }

        .el-container:nth-child(7) .el-aside {
            line-height: 320px;
        }
    </style>
</div>
<!--3.为container中的每一个元素定义不同的属性-->
<style>
    .el-header, .el-footer {
        background-color: #B3C0D1;
        color: #333;
        text-align: left;
        line-height: 60px;
    }

    .el-aside {
        background-color: #D3DCE6;
        color: #333;
        text-align: center;
        line-height: 200px;
    }

    .el-main {
        background-color: #E9EEF3;
        color: #333;
        text-align: center;
        line-height: 590px;
    }
</style>
<!--1.导入Vue:创建Vue对象,作用对象为app-->
<script>
    new Vue({
        el: '#app'
    });
</script>
</body>
</html>

2.Dropdown下拉菜单

4.2号进度

3.NavMenu导航菜单

<el-menu>
       <!-- 通过el-menu表示menu菜单 -->
       <el-submenu index="1">
            <!-- 通过el-submenu标签表示一级菜单,后面的索引用来区分不同的菜单 -->
          <template slot="title">
            <i class="el-icon-location"></i>
            <!-- 通过i标签来绑定一个class样式,class样式在index.css文件中已经定义好了 -->
            <span slot="title">导航一</span>
          </template>
          <el-menu-item>选项1</el-menu-item>
          <!-- 通过menu-item表示二级菜单 -->
          <el-menu-item>选项2</el-menu-item>
          <el-menu-item>选项3</el-menu-item>
        </el-submenu>
        <el-submenu index="2">
          <template slot="title">
            <i class="el-icon-menu"></i>
            <span slot="title">导航二</span>
          </template>
          <el-menu-item>选项1</el-menu-item>
          <el-menu-item>选项2</el-menu-item>
          <el-menu-item>选项3</el-menu-item>
        </el-submenu>
</el-menu>

4.table表格

<el-table stripe>
    <!-- 通过table标签来创建一个表格 -->
    <el-table-column prop="date" label="日期"></el-table-column>
    <!-- 通过table-column创建表格的表头 -->
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
    <el-table-column label="操作" align="center"></el-table-column>
  </el-table>

 数据表格绑定数据对象来展示数据

数据对象:创建vue对象时创建data属性,从而定义数据对象(tableData)

方法对象:VUE对象的method属性

<!-- 通过table标签来创建一个表格,表格中的数据来源绑定了VUE中的模型数据 -->
    <el-table :data="tableData" stripe>
      <el-table-column prop="date" label="日期"></el-table-column>
      <!-- 通过table-column创建表格的表头,如果是属性列,则用prop展示属性-->
      <el-table-column prop="name" label="姓名"></el-table-column>
      <el-table-column prop="address" label="地址"></el-table-column>
      <!-- 如果是模板列(作用是展示操作的按钮),用label表示操作 -->
      <el-table-column label="操作" align="center">
        <!--
      slot-scope:作用域插槽,可以获取表格数据
    	scope:代表表格数据,可以通过scope.row来获取表格当前行数据,scope不是固定写法
    -->
        <template slot-scope="scope">
          <!-- @click表示按钮绑定的事件,事件对应的方法名在VUE对象中创建 -->
          <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
          <el-button type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>

  <!--1.导入Vue:创建Vue对象,作用对象为app-->
  <script>
    new Vue({
      el: '#app',
      // 定义VUE对象中的模型数据,用于table展示,tableData对象是一个数组对象,对应的数据是json数据
      data: {
        tableData: [
          { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' },
          { date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1517 弄' },
          { date: '2016-05-01', name: '王小虎', address: '上海市普陀区金沙江路 1519 弄' }
        ]
      },
      // 定义VUE对象的方法,操作scope.row传输过来的数据
      methods: {
        handleUpdate(row) {
          alert(row.date);
        },
        handleDelete(row) {
          alert(row.name);
        }
      }
    });
  </script>

5.Pagination分页

@current-change="handleCurrentChange"事件,事件触发后会自动调用VUE对象中定义的方法

 layout中各属性代表的功能

6.Message消息提示

$message即可作为方法,也可作为对象

type属性对应展示的效果

<!--2.定义一个div,id为app-->
  <div id="app">
    <el-button :plain="true" @click="open1">消息</el-button>
    <el-button :plain="true" @click="open2">成功</el-button>
    <el-button :plain="true" @click="open3">警告</el-button>
    <el-button :plain="true" @click="open4">错误</el-button>
    <!--1.导入Vue:创建Vue对象,作用对象为app-->
    <script>
      new Vue({
        el: '#app',
        methods: {
          open1() {
            // $message可作为一个方法使用,也可以作为一个对象使用
            this.$message('这是一条消息提示');
          },
          open2() {
            this.$message({
              message: '恭喜你,这是一条成功消息',
              // type表示展示出的效果
              type: 'success'
            });
          },
          open3() {
            this.$message({
              message: '警告哦,这是一条警告消息',
              type: 'warning'
            });
          },
          open4() {
            // 作为一个对象使用,调用error方法
            this.$message.error('错了哦,这是一条错误消息');
          }
        }
      });
    </script>
  </div>

7.Tabs标签页

分隔内容上有关联但属于不同类别的数据集合。

el-tabs标签,value指定选中的标签页el-tabs-pane

8.Form表单(重要)

由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据。在 Form 组件中,每一个表单域由一个 Form-Item 组件构成,表单域中可以放置各种类型的表单控件,包括 Input、Select、Checkbox、Radio、Switch、DatePicker、TimePicker。

表单中的每一个表单域都绑定了VUE对象中的模型对象,两者存在绑定关系

el-form-item:表单项

model:对应VUE对象中的模型对象

rules:表单验证规则,在VUE对象中定义不同规则,表单项通过prop指定具体使用何种规则

 methods方法中,要使用到提交的表单数据,表单数据使用ref来指定了,直接传入ref参数给method中的方法即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值