Vue查询数据并通过bootstarp table渲染数据

需求

把页面进行改造把apptoken,appkey列隐藏,并且更改该列为企业秘钥,列下显示查看公司秘钥

如图:

点击按钮显示当前的企业秘钥:

1.需求分析和步骤:

1.首先改造JS代码:

首先把数据要渲染的visible设置为true需要的设置false,

主要的formatter: actionFormatter这个用于:格式化输出函数及其他

    //操作栏的格式化
    function actionFormatter(value, row, index) {
	    console.log("列"+row,"坐标"+index)
        console.log(row.appkey+"---"+row.apptoken)

        //var id = value;
        var result = "";
        result = "<a class=\"btn label label-success btn \" style='background-color: #4575FF' οnclick=QyMsg()>&nbsp;企业秘钥</a>";
        return result;
    }

只要的这个返回的数据不能用Vue 的点击@click=“QyMsg”,无效后面解决的方案采用前端设置一个onclick方法QyMSg()通过它来调用Vue框架的vm对象的方法实现该效果。(不推荐,第二天发现可以通过Vm对象调用…)

2.  对Vue创建一个对象,用于返回调用方法其中QyDataList属性设置点击后返回对话框的排版。在通过vue属性把数据遍历出来

var vm = new Vue({
	el:'#dpLTE',
	data: {
		keyword: null,
        companyname:'',
        submitMsg:{
            id:0
		},

        QyDataList:[
            {
                title:"企业的秘钥",
                modelname:'mchtConf',
                list:[  //设置前端页面的数据模型    // 其中field :返回json数据中的name
                    {isvalid:"",checkexpession:"",field : "apptoken", title : "apptoken", type:"input"},
                    {isvalid:"",checkexpession:"",field : "appkey", title : "key", type:"input"},
                    // {isvalid:"",checkexpession:"",field : "craterorderflag", title : "创建仓库单", type:"select",data:'iscraterorderflagList'}

                ]
            }
        ]
	},
	methods : {
        QyMsgAlert:function () {//企业查看
            var ck = $('#dataGrid').bootstrapTable('getSelections');//这个是通过选择行获取数据
            if(checkedRow(ck)){//checkedRow判断一下行是否被选择
                vm.submitMsg=ck[0];//把获取到的数据返回给vm用于渲染

                layer.open({
                    type : 1,
                    title : '企业秘钥',
                    closeBtn : 1,
                    anim: -1,
                    isOutAnim: false,
                    shadeClose : false,
                    shade : 0.3,
                    area : ['450px', '250px'],
                    shift : 5,
                    content : $("#setQyMsgDlg"),
                    btn: ['确定', '取消'],
                    success: null,
                    yes:null
                });
            }
        },

	}
})

这个方法用于判断行是否被选择

checkedRow = function (id) {
    var isOK = true;
    if (id == undefined || id == "" || id == 'null' || id == 'undefined') {
        isOK = false;
        dialogMsg('您没有选中任何数据项!');
    } else if (id.length > 1) {
        isOK = false;
        dialogMsg('您只能选择一条数据项!');
    }
    return isOK;
}

在js中添加页面提交标签用于弹出的对话框排版和数据。数据的来源QyDataList的数据

类似这样的关系,在通过QyDataList把key,value遍历给标签

<!-- 企业秘钥 -->
	div这个id的时候需要通过用来弹出窗口的布局
	<div id="setQyMsgDlg" class="container-fluid" style="display: none;">
		<table class="form" style="margin-top: 20px;margin-bottom: 20px">
			<tbody v-for="dataMsg in QyDataList">

				<tr v-for="(singleDataMsg,index) in dataMsg.list" v-if="index%2==0" style="text-align: center">

					<td class="formTitle" v-if="index%2==0&&(singleDataMsg.type=='select'||singleDataMsg.type=='input')"><b>{{singleDataMsg.title}}:</b><font v-if="singleDataMsg.checkexpession=='NotNull'" face="宋体">*</font></td>
						<td style="text-align: left;margin-left: 20px" class="formValue" v-if="index%2==0&&(singleDataMsg.type=='select'||singleDataMsg.type=='input')">
							<b class="formTitle " v-if="(singleDataMsg.type=='select'||singleDataMsg.type=='input')">{{submitMsg[singleDataMsg.field]}}<font v-if="singleDataMsg.checkexpession=='NotNull'" face="宋体">*</font></b>
						</td>
				</tr>

				<tr v-for="(singleDataMsg,index) in dataMsg.list" v-if="index%2==1" style="text-align: center">
					<td class="formTitle" v-if="index%2==1&&(singleDataMsg.type=='select'||singleDataMsg.type=='input')"><b>{{singleDataMsg.title}}:</b><font v-if="singleDataMsg.checkexpession=='NotNull'" face="宋体">*</font></td>
					<td style="text-align: left;margin-left: 20px" class="formValue" v-if="index%2==1&&(singleDataMsg.type=='select'||singleDataMsg.type=='input')">
						<b class="formTitle " v-if="(singleDataMsg.type=='select'||singleDataMsg.type=='input')">{{submitMsg[singleDataMsg.field]}}<font v-if="singleDataMsg.checkexpession=='NotNull'" face="宋体">*</font></b>
					</td>
				</tr>
			</tbody>
		</table>
	</div>

问题:这样做一开始是没有想到获取的时候是通过选择点击行的获取的数据,或者会出现提示框

需要在点击一下,发现会遮挡数据,虽然只有几秒钟,但是给人感觉不舒服。所以今天更新一下这个问题。

2. 更新问题:

对js的代码进行更改,之前用的属性是获取选择行,现在使用的属性是获取到页面的数据在通过传入的坐标辨别是哪个对象的数据。

在对操作栏的格式化进行修改,第一种的方式是调用list.html的js方法间接调用vue对象的方式( 考 昨天没想到 ),第二种方式是直接调用vue对象并且传入坐标,这样就不需要和第一种一样脱裤子放屁了多写一个步骤。

3.columns属性

以上就是Vue查询数据并通过bootstarp table渲染数据的详细内容,更多关于Vue查询数据bootstarp table渲染的资料请关注我们其它相关文章!

(0)

相关推荐

  • Vue项目中使用Bootstrap

    一.安装jQuery Bootstrap需要依赖jQuery,所以引用Bootstrap之前要先引用jQuery,使用下面的命令引用jQuery: npm install jquery --save 注意:如果想查看npm上jquery有哪些版本,可以执行命令: npm view jquery versions 二.引入Bootstrap 1.使用命令安装 可以使用下面的命令安装: npm install bootstrap --save 2.下载Bootstrap文件 直接去Bootstrap

  • 使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能

    一.写在前面 1. Bootstrap是一个由 Twitter 开发和维护的前端框架,目前很受欢迎,Bootstrap中文网点击这里. 2. Vue.js 是一套构建用户界面的渐进式框架,点这里访问官网. 二.实现效果: 三.页面引入bootstrap.vue资源 <link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="e

  • vue bootstrap小例子一枚

    vue和angular非常像都是MVVM.道理都是想通的,就是语法的差异 我觉得vue和angular区别: 1.vue更轻,更便捷,适用于移动开发 2.vue更简单.. angular和vue指令的差别大致就是 ng-xxx和v-xxx.  vue是用过new Vue创建实例,然后在属性data绑定数据,在属性methods里添加方法.  vue的循环遍历是 v-for="" ,事件是 v-on:clicl ="": 直接上代码. <!DOCTYPE htm

  • bootstrap-table formatter 使用vue组件的方法

    bootstrap-table简介 •1.1.bootstrap table简介及特征: Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能.目前在github上已经有2600多个Star,可见其受欢迎程度.其官方网站地址 为:http://bootstrap-table.wenzhixin.net.cn/.里面可以下载使用所需的JS和CSS文件,以及参

  • vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作

    vuex数据改变,组件中页面不渲染 相信许多vuex新手都会遇到这样的问题: vuex数据更新后,插件中使用数据的地方没有更新 这样的代码 data() { return { tableData: this.$store.state.AdminInfo }; } 然后在 template 中使用 tableData <el-table :data="tableData" class="tablePst"> <el-table-column labe

  • Vue查询数据并通过bootstarp table渲染数据

    需求 把页面进行改造把apptoken,appkey列隐藏,并且更改该列为企业秘钥,列下显示查看公司秘钥 如图: 点击按钮显示当前的企业秘钥: 1.需求分析和步骤: 1.首先改造JS代码: 首先把数据要渲染的visible设置为true需要的设置false, 主要的formatter: actionFormatter这个用于:格式化输出函数及其他 //操作栏的格式化 function actionFormatter(value, row, index) { console.log("列"

  • 使用Vue调取接口,并渲染数据的示例代码

    刚接触vue.js框架的时候,很伤脑筋.今天整理一下post/get两种方式,简单的调取数据库数据,并进行渲染,希望帮助大家! 首先,在HTML页面引入: //引入vue.js文件 <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script> 引入vue-resource.min.js文件,就可以引入接口方法了 <script src="https://cdn.st

  • 浅谈vue获得后台数据无法显示到table上面的坑

    因为刚学vue然后自己自习了一下axios,然后想写一个简单的查询后台数据 <tr v-for=" user in uList"> <td>{{user.id}}</td> <td>{{user.name}}</td> <td>{{user.gender}}</td> </td> </tr> 然后先是写了这样一个代码 created: function () { axios.ge

  • 浅谈vue单一组件下动态修改数据时的全部重渲染

    今天在学习vue的过程中,发现一个有趣的现象. 在某一组件下的某一数据通过点击事件被动态修改的时候,对应view中的数据同步的进行了修改,没错,这不是废话吗,vue的一大特色就是数据的双向绑定.可有趣的是,该组件下我写的另一个用Math.random()的data值对应的值和视图也发生了变化 这就让我这个刚入门的小白有点奇怪了,我修改一个,怎么变了两个????脑洞放开一想,会不会数据在双向同步的时候,发生了什么,比如.是不是只要有一个节点变了,node都重新进行了加载??? 我想这其中的缘由必定

  • layui table表格数据的新增,修改,删除,查询,双击获取行数据方式

    layui table利用参数新增,修改,删除,查询,双击数据行获取本行数据等.模块化使用layui table表格,通过二次封装实现语法上的解耦使用layui table,使用参数就可以以及外部的方法调用即可实现对layui table表格的操作,通过封装,把更多自主权交给页面自定义,layui:v:2.3.0.感谢layui的作者贤心. 演示效果如下: 以上json显示不完整是录屏的原因,请见谅! var Table = function(ops){ this.dataList = [];

  • layui框架table 数据表格的方法级渲染详解

    如下所示: <table class="layui-table" lay-filter="demo11" id="test11"></table> //js 规范书写 var tst=table.render({ elem: '#test11' ,cols: [[ //标题栏 {checkbox: true} ,{field: 'pay_ct_time', title: '创建时间', width: 80} ,{field

  • vue实现form表单与table表格的数据关联功能示例

    本文实例讲述了vue实现form表单与table表格的数据关联功能.分享给大家供大家参考,具体如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-sc

  • Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法

    1. 引入jquery和vue.js <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript" src="http://cdn.bootcss.com/vue/2.2.2/vue.min.js"

  • Egg Vue SSR 服务端渲染数据请求与asyncData

    服务端渲染 Node 层直接获取数据 在 Egg 项目如果使用模板引擎规范时通是过 render 方法进行模板渲染,render 的第一个参数模板路径,第二个参数时模板渲染数据. 如如下调用方式: async index(ctx) { // 获取数据,可以是从数据库,后端 Http 接口 等形式 const list = ctx.service.article.getArtilceList(); // 对模板进行渲染,这里的 index.js 是 vue 文件通过 Webpack 构建的 JSB

  • Vue实现渲染数据后控制滚动条位置(推荐)

    需求场景如下: 实现了消息发送,如果容器内消息过多,会出现滚动条,最新的消息位于最底部,不能及时出现在可视区域内,此时就需要在渲染列表后,将滚动条的位置定位到最底部.先来看看最终实现的效果 实现思路 渲染完数据后,通过refs对象获取消息容器的实际高度 将滚动条的设置到最底部 实现过程 sendMessage: function (event) { // 数据渲染 this.senderMessageList.push(thisSenderMessageObj); // 改变滚动条位置 this

随机推荐