Vue_iviewUI+jsp的使用


介绍 :iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品。

参考文档:

https://www.iviewui.com/docs/update4 官网是最好的资料!

​ 背景:基于springboot、jsp操作。

导入依赖
		<!--vue-->
        <dependency>
            <groupId>org.webjars.npm</groupId>
            <artifactId>vue</artifactId>
            <version>2.6.11</version>
        </dependency>
        <!--iview-->
        <dependency>
            <groupId>org.webjars.npm</groupId>
            <artifactId>iview</artifactId>
            <version>3.5.0</version>
        </dependency>
        <!--axios-->
        <dependency>
            <groupId>org.webjars.npm</groupId>
            <artifactId>axios</artifactId>
            <version>0.19.2</version>
        </dependency>
在页面引入css和js
<link rel="stylesheet" href="webjars/iview/3.5.0/dist/styles/iview.css">
<script src="webjars/vue/2.6.11/dist/vue.js"></script>
<script src="webjars/iview/3.5.0/dist/iview.js"></script>
<script src="webjars/axios/0.19.2/dist/axios.js"></script>

例举几个常见的操作吧

i-table-数据展示
 <div id="roelRoot">
        <i-table :columns="columns" :data="data" border stripe>
            <template slot-scope="{row,index}" slot="action">
              
            </template>
        </i-table>
    </div>
<script>
    new Vue({
        el:"#roelRoot",
        data:{
            columns:[
                {title:"角色id",key:"id"},
                {title:"角色编码",key:"roleCode"},
                {title:"角色名字",key:"roleName"},
                {title:"角色创建",key:"creationDate"},
                {title:"角色操作",slot:"action"}
            ],
            data:[],
        },
        mounted(){
            this.getRoleList();
        },
        methods:{
            getRoleList(){
                axios.get("/sys/role/list").then( //发送请求 获取数据
                    ({data})=>{
                        // console.log(data);
                        this.data=data.result;
                    }  )
            }
        }
    })
</script>

mounted() 自理解,通常是为 metheds 函数提前定义( 类似提前声明变量 进入页面内容全部渲染完成后自动引函数)

Modal-form提交
	 <i-card>
            <i-button type="info" @click="add()" >添加角色</i-button>
      </i-card>
	
 	<Modal v-model="RoleAdd" title="添加角色" @on-ok="doadd"
            @on-cancel="cancel">
            <i-Form  :label-width="80">
               <Form-Item label="用户编码:">
                   <i-Input v-model="role.roleCode" placeholder="用户编码"></i-Input>
               </Form-Item>
               <Form-Item label="用户名:">
                   <i-Input v-model="role.roleName" placeholder="用户名"></i-Input>
               </Form-Item>
           </i-Form>
        </Modal>


 <script>
        new Vue({
            el:"#roelRoot",
            data:{
                 role:{},//这里也必须写上 对应的是 model里面input的  双项绑定
                RoleAdd:false //注意 使用model的时候 需要设为false关闭状态
            },
     
            methods:{
				add(){
                        this.RoleAdd=true;//当添加按钮点击后 把model框设为true 为开启状态
           		 	},
                
               doadd(){ //model点击 确定之后   这里的doadd  和model里的@on-ok="doadd"保持一致
                
                axios.post("/sys/role/add",this.role).then( //开始发送添加请求 then里回调
                    ({data})=>{
                       iview.Message.success({content:"角色添加成功"});//提示框
                        this.getRoleList();
                  			  }
               			 )
           		 },
            }
     
        })
 </script>

Model-修改回显

这里是对table里的数据做修改操作

 	<i-table :columns="columns" :data="data" border stripe>
            <template slot-scope="{row,index}" slot="action">
                <i-Button type="info" size="large" @click="roleUpd(row)" >修改</i-Button>
                <i-Button type="error" @click="Del(row,index)" size="large">删除</i-Button>
            </template>
        </i-table>		
	
	<Modal v-model="RoleUpd" title="修改角色" @on-ok="doupd"
               @on-cancel="cancel">
            <i-Form  :label-width="80">
                <Form-Item label="用户编码:">
                    <i-Input v-model="role.roleCode" placeholder="用户编码"></i-Input>
                </Form-Item>
                <Form-Item label="用户名:">
                    <i-Input v-model="role.roleName" placeholder="用户名"></i-Input>
                </Form-Item>
            </i-Form>
        </Modal>
<script>
    new Vue({
        el:"#roelRoot",
        data:{
            columns:[
                {title:"角色id",key:"id"},
                {title:"角色编码",key:"roleCode"},
                {title:"角色名字",key:"roleName"},
                {title:"角色创建",key:"creationDate"},
                {title:"角色操作",slot:"action"} // template  >slot="action" 保持一致
            ],
            data:[],
            RoleAdd:false,
            RoleUpd:false,//同样是 设置 默认关闭
            role:{}
        },
        mounted(){
            this.getRoleList();
        },
        methods:{
            getRoleList(){
                axios.get("/sys/role/list").then(
                    ({data})=>{
                        // console.log(data);
                        this.data=data.result;
                    }  )
            },
            
            roleUpd(row){ //roleUpd(row) 传入了行数据
                this.role=row;//row的数据 给RoleUpd模态框里的input 作为回显操作
              this.RoleUpd=true;//展示model
            },
            doupd(){
              // alert("点击了修改啊")
                axios.post("sys/role/update",this.role).then(
                    ({data})=>{
                        iView.Message.success({content:"角色修改成功"})//成功提示
                        this.getRoleList();//显示数据
                    }
                )
            },
           
        }
    })
</script>
Model-删除数据
	 <i-table :columns="columns" :data="data" border stripe>
            <template slot-scope="{row,index}" slot="action">
                <i-Button type="error" @click="Del(row,index)" size="large">删除</i-Button>
            </template>
        </i-table>
<script>
    new Vue({
        el:"#roelRoot",
        data:{
            columns:[
                {title:"角色id",key:"id"},
                {title:"角色编码",key:"roleCode"},
                {title:"角色名字",key:"roleName"},
                {title:"角色创建",key:"creationDate"},
                {title:"角色操作",slot:"action"}
            ],
            data:[],
            role:{}
        },

        mounted(){
            this.getRoleList();
        },

        methods:{
            getRoleList(){
                axios.get("/sys/role/list").then(
                    ({data})=>{
                        // console.log(data);
                        this.data=data.result;
                    }  )
            },
            Del(row,index){//传入一行数据  一行数据 就等于是一个java对象
               var _this=this;
                iview.Modal.confirm({ //这里使用了model一个提示框操作 
                    title:"删除角色",
                    content:"删除后就没了,请谨慎操作",
                    onOk(){
                        axios.get("sys/role/del?id="+row.id).then(
                            ({data})=>{
                                iview.Message.success({content:"角色删除成功"});
                               _this.getRoleList();
                            }
                        )
                    },
                    onCancel(){

                    }
                })
            },
         
            cancel(){

            }
        }
    })
</script>

把以上操作拼接后展示一下完整的
 <div id="roelRoot">
        <i-card>
            <i-button type="info" @click="add()" >添加角色</i-button>

            <i-button type="error">修改角色</i-button>
        </i-card>

        <i-table :columns="columns" :data="data" border stripe>
            <template slot-scope="{row,index}" slot="action">
                <i-Button type="info" size="large" @click="roleUpd(row)" >修改</i-Button>
                <i-Button type="error" @click="Del(row,index)" size="large">删除</i-Button>
            </template>
        </i-table>

        <Modal v-model="RoleAdd" title="添加角色" @on-ok="doadd"
            @on-cancel="cancel">
            <i-Form  :label-width="80">
               <Form-Item label="用户编码:">
                   <i-Input v-model="role.roleCode" placeholder="用户编码"></i-Input>
               </Form-Item>
               <Form-Item label="用户名:">
                   <i-Input v-model="role.roleName" placeholder="用户名"></i-Input>
               </Form-Item>
           </i-Form>
        </Modal>

        <Modal v-model="RoleUpd" title="修改角色" @on-ok="doupd"
               @on-cancel="cancel">
            <i-Form  :label-width="80">
                <Form-Item label="用户编码:">
                    <i-Input v-model="role.roleCode" placeholder="用户编码"></i-Input>
                </Form-Item>
                <Form-Item label="用户名:">
                    <i-Input v-model="role.roleName" placeholder="用户名"></i-Input>
                </Form-Item>
            </i-Form>
        </Modal>
    </div>
<script>
    new Vue({
        el:"#roelRoot",
        data:{
            columns:[
                {title:"角色id",key:"id"},
                {title:"角色编码",key:"roleCode"},
                {title:"角色名字",key:"roleName"},
                {title:"角色创建",key:"creationDate"},
                {title:"角色操作",slot:"action"}
            ],
            data:[],
            RoleAdd:false,
            RoleUpd:false,
            role:{}
        },

        mounted(){
            this.getRoleList();
        },


        methods:{
            getRoleList(){
                axios.get("/sys/role/list").then(
                    ({data})=>{
                        // console.log(data);
                        this.data=data.result;
                    }  )
            },

            add(){
                this.RoleAdd=true;
                // alert("tan")
            },
            doadd(){
                //开始发送添加请求
                axios.post("/sys/role/add",this.role).then(
                    ({data})=>{
                       iview.Message.success({content:"角色添加成功"});
                        this.getRoleList();
                    }
                )
            },
            Del(row,index){
               var _this=this;
                iview.Modal.confirm({
                    title:"删除角色",
                    content:"删除后就没了,请谨慎操作",
                    onOk(){
                        axios.get("sys/role/del?id="+row.id).then(
                            ({data})=>{
                                iview.Message.success({content:"角色删除成功"});
                               _this.getRoleList();

                            }
                        )
                    },
                    onCancel(){

                    }
                })
            },
            roleUpd(row){
                this.role=row;//回显操作
              this.RoleUpd=true;
            },
            doupd(){
              // alert("点击了修改啊")
                axios.post("sys/role/update",this.role).then(
                    ({data})=>{
                        iView.Message.success({content:"角色修改成功"})
                        this.getRoleList();
                    }
                )
            },
            cancel(){

            }
        }

    })
</script>
controller
package com.HsL.controller;

import com.HsL.pojo.Role;
import com.HsL.service.RoleService;
import com.HsL.vo.ResultVo;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.time.LocalDateTime;

@RestController
@RequestMapping("/sys/role")
public class RoleController {

    @Resource
    private RoleService roleService;

//    @GetMapping("/list")
//    public Object getRoleList(){
//        return roleService.roleList();
//    }

    @GetMapping("/list")
    public ResultVo getRoleList(){

        return ResultVo.sucess(roleService.roleList());
    }

    @PostMapping("/add")
    public ResultVo RoleAdd(@RequestBody Role role){//这里参数需要使用@RequestBody 注解 因为是JSON格式
        try {
            role.setCreationDate(LocalDateTime.now());
            role.setCreatedBy(1);
            System.out.println("展示");
            roleService.addRole(role);
//            log.info("角色添加成功!!!");
            return ResultVo.sucess("添加角色成功");
        } catch (Exception e) {
            e.printStackTrace();
//            log.error("角色添加失败");
            return ResultVo.fail("添加角色失败",e);
        }
    }

//    @PostMapping("/add")
//    public void RoleAdd(@RequestBody Role role){
//        role.setCreationDate(LocalDateTime.now());
//        role.setCreatedBy(1);
//        System.out.println("展示");
//        roleService.addRole(role);
//    }

    @GetMapping("/del")
    public ResultVo del(String id){

        try {
            roleService.delRole(Integer.parseInt(id));
            return ResultVo.sucess("删除角色成功");
        } catch (NumberFormatException e) {
            e.printStackTrace();
            return ResultVo.fail("删除角色失败",e);
        }

    }

    @PostMapping("/update")
    public ResultVo roleUpd(@RequestBody Role role){
        try {
            System.out.println("=========================进入修改");
            role.setModifyDate(LocalDateTime.now());
            role.setModifyBy(1);
            roleService.updataRole(role);
            return ResultVo.sucess("修改角色成功");
        } catch (NumberFormatException e) {
            e.printStackTrace();
            return ResultVo.fail("修改角色失败",e);
        }
        
    }
}

里面controller 使用了ResultVo进行了封装操作 有疑问的话请参考其它文章。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值