iframe路由参数允许使用$store中的动态参数

pull/1105/head
ruchong 2025-10-29 23:09:45 +08:00
parent 964569f715
commit 48ef1b9434
2 changed files with 27 additions and 2 deletions

View File

@ -23,10 +23,35 @@ export default {
methods: {
iframeUrl(url, query) {
if (Object.keys(query).length > 0) {
let params = Object.keys(query).map((key) => key + "=" + query[key]).join("&")
let params = Object.keys(query).map((key) => {
let value = this.parseStoreValue(query[key])
return key + "=" + value
}).join("&")
return url + "?" + params
}
return url
},
parseStoreValue(value){
// eg. $store.getters.name
if(value!=null && value.startsWith("$store") && value.indexOf(".")>-1){
const storeRouter = value.split("\.");
let temp = this.$store
for (const index in storeRouter) {
if (index==0) continue
const storeRouterKey = storeRouter[index]
if(storeRouterKey.endsWith("?")){
const realKey = storeRouterKey.substring(0,storeRouterKey.length-1)
if(temp[realKey]==null){
return ""
}
temp = temp[realKey]
continue
}
temp = temp[storeRouterKey];
}
return temp;
}
return value;
}
}
}

View File

@ -231,7 +231,7 @@
<el-form-item prop="query">
<el-input v-model="form.query" placeholder="请输入路由参数" maxlength="255" />
<span slot="label">
<el-tooltip content='访问路由的默认传递参数,如:`{"id": 1, "name": "ry"}`' placement="top">
<el-tooltip content='访问路由的默认传递参数,如:`{"id": 1, "name": "$store.getters.name"}`' placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
路由参数