Vue进入页面后实现自动点击某个标签

在这里插入图片描述

功能场景:

当点击某个按钮后,地址栏上传值status,获取这个值,触发和值相对应的点击事件,从而进入$http查询出相对应的选项(代付款、代发货、待收货……)。

为何不直接在控制器中接这个值,从而查询出相对应的数据呢?
因为视图页面上有vue代码,如果直接进去,没有触发$http,那么这些vue代码就不显示,只有触发了$http才能够进入后台取值回到前台去显示。 我在前台中触发$http的是点击事件。就要实现进入页面后获取值从而触发和值相对应的点击事件。

<!doctype html>
<html>

<head>
	<meta charset="utf-8">
	<title>我的订单</title>
	<meta name="keywords" content="" />
	<meta name="description" content="" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
	<meta name="format-detection" content="telephone=no" />
	<meta name="apple-mobile-web-app-capable" content="yes" />
	<meta name="apple-mobile-web-app-status-bar-style" content="black">
	<link rel="stylesheet" type="text/css" href="__PUBLIC__/skn/css/header.css">
	<link rel="stylesheet" type="text/css" href="__PUBLIC__/skn/css/achievement.css">
	<link rel="stylesheet" type="text/css" href="__PUBLIC__/skn/css/reset.css">
	<link rel="stylesheet" href="__PUBLIC__/skn/css/bui.css" />
	<!-- bui.js 依赖于Zepto或jQuer y -->
	<script src="__PUBLIC__/skn/js/zepto.js"></script>
	<script src="__PUBLIC__/skn/js/bui.js"></script>
	<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
	<script src="https://unpkg.com/vue/dist/vue.js"></script>
	<script src="https://cdn.bootcss.com/vue-resource/1.5.1/vue-resource.js"></script>
</head>

<body>
	<header>
		<div class="head">
			<a href="javascript:window.history.back(-1)" class="lpic"><img src="__PUBLIC__/skn/img/back.png"></a>
			<p>我的订单</p>
		</div>
	</header>
	<main id="app5">
		<div class="bui-page main">

			<main>
				<div id="uiTab" class="bui-tab">
					<div class="bui-tab-head">
						<ul class="bui-nav" id="bui-btns">
							<li class="bui-btn" @click="indexs" value="10">全部</li>
							<li class="bui-btn" @click="indexs" value="0">待付款</li>
							<li class="bui-btn" @click="indexs" value="1">待发货</li>
							<li class="bui-btn" @click="indexs" value="2">待收货</li>
							<li class="bui-btn" @click="indexs" value="3">待评价</li>

						</ul>
					</div>

					<div class="bui-tab-main list_cont">

						<ul class="none-style">
							<!-- 内容必须在li里面 -->

							<li>
								<div class="product_order" v-for="item in items">
									<div class="product_order_top" v-for="or in item.goods">

										<img :src="or.img" alt="">
										<dl class="product_order_main">
											<dt>{{or.name}}</dt>
												<dd v-if ="item.status == 0">未支付</dd>
												<dd v-if ="item.status == 1">已支付</dd>
												<dd v-if ="item.status ==2">待收货</dd>
												<dd v-if="item.status == 3">已收货</dd>
												<dd v-if="item.status == 4">已完成</dd>
										</dl>
										<dl class="product_order_bot"><dt>¥{{or.memprice}}</dt>
											<dd>×{{or.num}}</dd>
										</dl>
										<p class="font"><span>{{or.num}}</span>件商品合计:{{item.total}}</p>
									</div>


									<div class="btn">
										<button>查看物流</button>
										<button>确认收货</button>
									</div>

								</div>

							</li>

						</ul>

					</div>
				</div>
			</main>
		</div>

	</main>
	<script>
		var app5 = new Vue({
            el: '#app5',
            data: {
                status:'',
                items:''
			},
            methods: {
                indexs:function(event){
                    var e=event.currentTarget;
					var status=e.value;
                    this.$http.post('{:U("Mylist/xianshi")}',{status:status},{emulateJSON:true})
                        .then(function(res){
                            this.items=res.data;
                            console.log(this.items)
                        })
                        .catch(function(error){
                            console.log(error);
                        });
				}
            }
        });
	</script>
</body>

</html>
<script>
	window.onload=function(){
        var value=location.href.substring(location.href.indexOf("=")+1);
		arr=['10','0','1','2','4'];
		for(var i=0;i<arr.length;i++)
		{
		    if(value==arr[i])
			{
			    $("#bui-btns").children("li")[i].click();
			}
		}
	}
</script>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
实现Vue扫描二维码自动打开某个页面,可以使用以下步骤: 1. 确保Vue项目已经成功创建并配置好。 2. 在Vue项目的根目录下,通过命令行安装`qrcode-reader`库,该库将用于解析二维码数据。可以使用以下命令进行安装: ``` npm install qrcode-reader ``` 3. 在Vue项目的某个组件,引入该库,并创建一个方法用于解析二维码数据和打开页面。可以参考以下代码: ```vue <template> <div> <!-- 二维码扫描按钮 --> <button @click="scanQRCode">扫描二维码</button> </div> </template> <script> // 引入qrcode-reader库 const QrCode = require('qrcode-reader'); const qrCode = new QrCode(); export default { methods: { scanQRCode() { // 调用浏览器的摄像头进行扫描 navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' } }).then((stream) => { const video = document.createElement('video'); video.srcObject = stream; video.setAttribute('playsinline', true); // 解决部分安卓手机不播放摄像头视频的问题 video.play(); // 摄像头视频播放成功后,开始解析二维码数据 video.addEventListener('canplay', () => { const canvas = document.createElement('canvas'); const context = canvas.getContext('2d'); const canvasWidth = video.videoWidth; const canvasHeight = video.videoHeight; canvas.width = canvasWidth; canvas.height = canvasHeight; // 绘制摄像头视频到canvas上 context.drawImage(video, 0,0, canvasWidth, canvasHeight); // 解析二维码数据 qrCode.decode(canvas.toDataURL(), (err, result) => { if (err) return console.error(err); if (result && result.result) { // 根据解析到的二维码数据打开相应页面 window.open(result.result); } }); }); }).catch((error) => { console.error(error); }); }, }, }; </script> ``` 4. 在需要扫描二维码的页面,引入该组件,并在合适的位置使用`<scan-qr-code></scan-qr-code>`标签来调用该组件。 以上步骤可以使Vue项目能够在用户扫描二维码后自动打开相应页面。在代码,我们使用了`qrcode-reader`库来解析二维码数据,通过调用浏览器的摄像头进行扫描。扫描成功后,通过解析得到的二维码数据,使用`window.open()`方法打开相应的页面
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值