You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudnote_web/plugins/global.js

74 lines
1.9 KiB

import Vue from 'vue'
import { Loading } from 'element-ui'
Vue.prototype.GLOBAL ={
//用户cookie
4 years ago
user_key:'user',
//服务器地址
server_address:'http://127.0.0.1:8080',
// 检查元素可见
visible_in_container:function(p,e) {
var z = p.getBoundingClientRect();
var r = e.getBoundingClientRect();
// Check style visiblilty and off-limits
return !(r.top > z.bottom || r.bottom < z.top ||
r.left > z.right || r.right < z.left);
},
//发送json请求
fetchJSON(url,method, form, success){
fetch(this.server_address + url, {
body:JSON.stringify(form),
method: method,
headers: {
'Content-Type': 'application/json'
},
credentials: "include"
}).then(res=>res.json()).then(res=>success(res)).catch(err=>{
console.error(err)
})
},
//发送get请求
fetchGet(url,params,success){
if (params) {
let paramsArray = [];
//拼接参数
Object.keys(params).forEach(key => paramsArray.push(key + '=' + params[key]))
if (url.search(/\?/) === -1) {
url += '?' + paramsArray.join('&')
} else {
url += '&' + paramsArray.join('&')
}
}
fetch(this.server_address + url, {
method:'GET',
credentials: "include"
}).then(res=>res.json()).then(res=>success(res)).catch(err=>{
console.error(err)
})
},
}
//阅读论文
Vue.prototype.$read= function(item) {
let loadingInstance =Loading.service({});
let that=this
this.GLOBAL.fetchGet("/v1/api/file/find",{
paperId:item.id,
fileId:item.fileId
},function(res) {
if(res.code==='200'){
item.content=res.msg
that.$store.commit('menus/read')
that.$store.commit('read/open', item)
that.$router.push(that.localePath('/read'))
loadingInstance.close()
}else{
that.$message.error(that.$t('error_500').toString())
}
loadingInstance.close()
})
}