vue點擊Dashboard不同內容 跳轉到同一表格的實例
1.點擊跳轉寫法
點擊頁面內容:優(yōu)先級
<router-link :to='{ path: "/cases/case",query: { priorityId: 0 ,type:"priorityId"}}' style="color: #515a6e;">優(yōu)先級</router-link>
點擊頁面內容:狀態(tài)
<router-link :to='{ path: "/cases/case",query: { status: 0 ,type:"status"}}' style="color: #515a6e;">狀態(tài)</router-link>
點擊echarts柱狀
this.chartEvent.on('click',function (param) {
that.$router.push({
path: '/cases/case',
query: { createdTime: param.name,type:"createdTime" }
});
})
2.表格分頁寫法(不同跳轉 顯示不同傳參)
注:由于該頁面下拉框也有相應的優(yōu)先級篩選條件 所有寫了兩層if判斷了一下
getData: function(){
//獲取CaseSearch里面的搜索內容
eventBus.$on('ticketEntityId',function(val){
tableCaseVue.ticketEntityId=val;
})
eventBus.$on('companyId',function(val){
tableCaseVue.companyId=val;
})
eventBus.$on('priorityId',function(val){
tableCaseVue.priorityId=val;
})
eventBus.$on('status',function(val){
tableCaseVue.status=val;
})
eventBus.$on('ticketCategory',function(val){
tableCaseVue.ticketCategory=val;
})
var pageTicketDate = {
"pageNum": this.current,
"pageSize": this.pageSize,
"priorityId":tableCaseVue.priorityId,
"status":tableCaseVue.status,
"ticketEntityId":tableCaseVue.ticketEntityId,
"companyId":tableCaseVue.companyId,
"ticketCategory":tableCaseVue.ticketCategory
};
// 優(yōu)先級
if((this.$route.query.type == 'priorityId')&&(pageTicketDate.priorityId=='')){
pageTicketDate.priorityId=this.$route.query.priorityId;
}
// 狀態(tài)
if((this.$route.query.type == 'status')&&(pageTicketDate.status=='')){
pageTicketDate.status=this.$route.query.status;
}
//創(chuàng)建時間
if (this.$route.query.type == 'createdTime') {
pageTicketDate.createdTime = this.$route.query.createdTime;
}
//當前月
if (this.$route.query.type == 'currentMonth') {
pageTicketDate.currentMonth = this.$route.query.currentMonth;
}
if(pageTicketDate.ticketEntityId||pageTicketDate.companyId||pageTicketDate.priorityId||pageTicketDate.status||pageTicketDate.ticketCategory){
pageTicketDate.ticketEntityId=tableCaseVue.ticketEntityId;
pageTicketDate.companyId=tableCaseVue.companyId;
pageTicketDate.priorityId=tableCaseVue.priorityId;
pageTicketDate.status=tableCaseVue.status;
pageTicketDate.ticketCategory=tableCaseVue.ticketCategory;
pageTicketDate.createdTime='';
pageTicketDate.currentMonth='';
}
this.$api.ticket.pageTicket(pageTicketDate)
.then(res => {
this.tableCaseDate = res.data.records;
for(var i=0;i<this.tableCaseDate.length;i++){
// 響應時間
if(this.tableCaseDate[i].waitTime!=undefined){
this.tableCaseDate[i].waitTime=this.tableCaseDate[i].waitTime+'分鐘';
}
// 處理時間
if(this.tableCaseDate[i].handleTime!=undefined){
this.tableCaseDate[i].handleTime=this.tableCaseDate[i].handleTime+'分鐘';
}
// 完成時間
if(this.tableCaseDate[i].finishTime!=undefined){
this.tableCaseDate[i].finishTime=this.tableCaseDate[i].finishTime;
}else{
this.tableCaseDate[i].finishTime='N/A';
}
}
// 當前頁
this.current = res.data.current;
// 總條數
this.dataTotal = res.data.total;
});
}
補充知識:vue點擊跳轉到詳情頁
1商品組件頁面GoodsInfo.vue(點擊該組件跳轉到詳情頁)
<template>
<div class="goods-info" @click="goGoodsPage()">
<div class="goods-image">
<img v-lazy="goodsImage">
</div>
<div class="goods-name">{{goodsName}}</div>
<div class="goods-price">¥{{ goodsPrice.toFixed(2) }}</div>
</div>
</template>
<script>
export default {
name: "goodsInfo",
// 首頁傳過來的
props: ["goodsImage", "goodsName", "goodsPrice", "goodsId"],
data() {
return {};
},
methods: {
goGoodsPage() {
// 跳轉到Goods.vue商品詳情頁面,name為Goods.vue頁面路由配置里的的name屬性
this.$router.push({name:"goods",query:{goodsId:this.goodsId}})
}
}
};
</script>
<style lang="scss" scoped>
.goods-info {
padding-bottom: 0.2rem;
.goods-image {
text-align: center;
img{
width: 95%;vertical-align: middle;
}
}
.goods-name {
padding: 0 8px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.goods-price {
text-align: center;
color: #e5017d;
}
}
</style>
2商品詳情頁面Goods.vue(接收商品組件頁面GoodsInfo.vue傳過來的goodsId)
<template>
<div>商品詳情頁</div>
</template>
<script>
import url from "@/urlApi.js";
export default {
name: "goods",
data() {
return {
goodsId: ""
};
},
created () {
// 接收GoodsInfo.vue傳過來的goodsId
this.goodsId = this.$route.query.goodsId
console.log(this.goodsId)
this.getGoodsInfo();
},
methods: {
getGoodsInfo() {
let that = this;
this.$http
.post(url.getDetailGoodsInfo,{goodsId: that.goodsId})
.then(response => {
//根據goodsId獲取對應的商品詳情信息
console.log(response)
})
.catch(error => {
});
}
}
};
</script>
<style lang="scss" scoped>
</style
以上這篇vue點擊Dashboard不同內容 跳轉到同一表格的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue3 setup語法糖銷毀一個或多個定時器(setTimeout/setInterval)
這篇文章主要給大家介紹了關于Vue3 setup語法糖銷毀一個或多個定時器(setTimeout/setInterval)的相關資料,vue是單頁面應用,路由切換后,定時器并不會自動關閉,需要手動清除,當頁面被銷毀時,清除定時器即可,需要的朋友可以參考下2023-10-10

