Compare commits

...

3 Commits

Author SHA1 Message Date
蠕虫 ff0d1b8fbb
Pre Merge pull request !1105 from 蠕虫/springboot3 2026-01-08 05:39:35 +00:00
RuoYi eafe812ae7 优化防重提交间隔时间可自定义 2026-01-08 13:39:32 +08:00
ruchong 48ef1b9434 iframe路由参数允许使用$store中的动态参数 2025-10-29 23:09:45 +08:00
3 changed files with 30 additions and 4 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

@ -26,6 +26,8 @@ service.interceptors.request.use(config => {
const isToken = (config.headers || {}).isToken === false
// 是否需要防止数据重复提交
const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
// 间隔时间(ms),小于此时间视为重复提交
const interval = (config.headers || {}).interval || 1000
if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
}
@ -55,7 +57,6 @@ service.interceptors.request.use(config => {
const s_url = sessionObj.url // 请求地址
const s_data = sessionObj.data // 请求数据
const s_time = sessionObj.time // 请求时间
const interval = 1000 // 间隔时间(ms),小于此时间视为重复提交
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
const message = '数据正在处理,请勿重复提交'
console.warn(`[${s_url}]: ` + message)
@ -115,7 +116,7 @@ service.interceptors.response.use(res => {
} else if (message.includes("timeout")) {
message = "系统接口请求超时"
} else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常"
message = "系统接口" + message.slice(-3) + "异常"
}
Message({ message: message, type: 'error', duration: 5 * 1000 })
return Promise.reject(error)

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>
路由参数