我点击标签页请求不同标签的对应的数据,但是标签页在对应的value在传输过程中自动恢复了第一个标签页的value,所以点击不同的标签页请求到的数据都是第一个标签页的数据,怎么解决?
<el-radio-group v-if="status.length" v-model="statusValue" class="m-r-5">
<el-radio-button
v-for="item in status"
:key="item.value"
:label="item.value"
>{{ item.name }}</el-radio-button>
</el-radio-group>
props:{
status:{
type:Array,
default:()=>([
{
name:'批准',
value:'approved',
type: 'success',
},
{
name:'待审',
value:'pending',
type: 'warning',
},
{
name:'垃圾',
value:'spam',
type: 'danger',
},
{
name: $t('回收站'),
value: 'trash',
type: 'danger'
},
])
}
watch:{
statusValue:{
deep: true,
immediate: true,
handler( val ){
this.pagination.current = 1
this.queryInit()
}
},
}
queryInit(querys){
let query = {
with: 1,
order: this.order,
paged: this.paged,
orderby: this.orderby,
search: this.searchValue,
search_field: this.searchType,
}
query[this.queryStatus] = this.statusValue
query[this.termQuery] = this.categoryValue
query[this.dateQuery] = (this.dateVal|| [] ).join(',')
let _query = {}
for (var key in query) {
//如果对象属性的值不为空,就保存该属性(这里我做了限制,如果属性的值为0,保存该属性。如果属性的值全部是空格,属于为空。)
if ((query[key] === 0 || query[key] === false || query[key] || query[key]===[] ) && query[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
_query[key] = query[key];
}
}
if( this.searchValue != '' && this.searchType == ''){
_query['search_field'] = ''
}
console.log(_query)
this.sendQuery( _query )
},
创建页面时运行console.log(_query)的结果是:
{with: 1, paged: 1, query[comment_approved]: 'approved' }
展开:
lang: "zh"
paged: 1
per_page: 20
query[comment_approved]: "approved" 第一个标签页的value
with: 1
点击不同的标签页运行后的结果如下:
{with: 1, paged: 1, query[comment_approved]: 'pending' }
展开:
lang: "zh"
paged: 1
per_page: 20
query[comment_approved]: "approved" 点击第二个标签页展开后的value又变成了第一个标签的Value,这里应该是第二个标签:pending
with: 1
已解决,我自己在请求这里把接口写死了,感谢大家的帮助