uniapp 封装request请求 前端
Vue.prototype.sendRequest = function(param,backpage, backtype){
var _self = this,
url = param.url,
method = param.method,
header = {},
data = param.data || {},
token = "",
hideLoading = param.hideLoading || false;
//拼接完整请求地址
var requestUrl = this.siteBaseUrl + url;
//固定参数:仅仅在小程序绑定页面通过code获取token的接口默认传递了参数token = login
if(!data.token){//其他业务接口传递过来的参数中无token
token = uni.getStorageSync(this.sessionKey);//参数中无token时在本地缓存中获取
console.log("当前token:" + token);
if(!token){//本地无token需重新登录(退出时清缓存token)
_self.login(backpage, backtype);
return;
}else{
data.token = token;
}
}
var timestamp = Date.parse(new Date());//时间戳
data["timestamp"] = timestamp;
// #ifdef MP-WEIXIN
data["device"] = "wxapp";
data["ver"] = "1.1.30";
// #endif
// #ifdef APP-PLUS || H5
data["device"] = "iosapp";
data["ver"] = "1.0.0";
// #endif
//请求方式:GET或POST(POST需配置header: {'content-type' : "application/x-www-form-urlencoded"},)
if(method){
method = method.toUpperCase();//小写改为大写
if(method=="POST"){
header = {'content-type' : "application/x-www-form-urlencoded"};
}else{
header = {'content-type' : "application/json"};
}
}else{
method = "GET";
header = {'content-type' : "application/json"};
}
//用户交互:加载圈
if (!hideLoading) {
uni.showLoading({title:'加载中...'});
}
console.log("网络请求start");
//网络请求
uni.request({
url: requestUrl,
method: method,
header: header,
data: data,
success: res => {
console.log("网络请求success:" + JSON.stringify(res));
if (res.statusCode && res.statusCode != 200) {//api错误
uni.showModal({
content:"" + res.errMsg
});
return;
}
if (res.data.code) {//返回结果码code判断:0成功,1错误,-1未登录(未绑定/失效/被解绑)
if (res.data.code == "-1") {
_self.login(backpage, backtype);
return;
}
if (res.data.code != "0") {
uni.showModal({
showCancel:false,
content:"" + res.data.msg
});
return;
}
} else{
uni.showModal({
showCancel:false,
content:"No ResultCode:" + res.data.msg
});
return;
}
typeof param.success == "function" && param.success(res.data);
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content:"" + e.errMsg
});
typeof param.fail == "function" && param.fail(e.data);
},
complete: () => {
console.log("网络请求complete");
if (!hideLoading) {
uni.hideLoading();
}
typeof param.complete == "function" && param.complete();
return;
}
});
}
HTML的电子邮件链接标签mailto用法详解 前端
大家知道,mailto 是网页设计制作中的一个非常实用的 html 标签,许多拥有个人网页的朋友都喜欢在网站的醒目位置处写上自己的电子邮件地址,这样网页浏览者一旦用鼠标单击一下由 mailto 组成的超级连接后,就能自动打开当前计算机系统中默认的电子邮件客户端软件,例如 OutLook Express 以及 Foxmail 等。当然有关 mailto 标签的使用,并不仅仅就象上面所说的那样简单,它还有其他方面的应用。现在我再进一步讲解一下 mailto 的用法。
mailto 四个常用的参数
subject — 代表邮件的标题
body — 代表邮件的内容
cc — 代表一个抄送对象
bcc — 代表一个暗送对象
mailto 示例:
杨佳乐
定义了邮件的标题为 杨佳乐
杨佳乐
定义了邮件的标题为 杨佳乐 和内容为 杨佳乐博客。
杨佳乐
定义了邮件的抄送对象为 1401586744@ss.com 和邮件的暗送对象为 1401586744@tt.com
Bootstrap日期时间选择器(Bootstrap DateTime Picker) 分钟间隔30 前端
$('.js-date').datetimepicker({
lang:'ch',
format:'Y-m-d H:i',
step:1,
onChangeDateTime:logic,
onShow:logic,
allowTimes:[
'00:00', '00:30', '01:00', '01:30', '02:00', '02:30', '03:00', '03:30',
'04:00', '04:30', '05:00', '05:30', '06:00', '06:30', '07:00', '07:30',
'08:00', '08:30', '09:00', '09:30', '10:00', '10:30', '11:00', '11:30',
'12:00', '12:30', '13:00', '13:30', '14:00', '14:30', '15:00', '15:30',
'16:00', '16:30', '17:00', '17:30', '18:00', '18:30', '19:00', '19:30',
'20:00', '20:30', '21:00', '21:30', '22:00', '22:30', '23:00', '23:30'
]
});
vue.js 使用npm创建项目记录(windows) 前端
安装node.js http://nodejs.cn/ 安装以后 win+r cmd 命令行里运行npm -v 如果有版本号则安装成功
安装cnpm 淘宝地址,增加速度 npm install -g cnpm --registry=https://registry.npm.taobao.org
安装vue-cli cnpm install -g @vue/cli
安装webpack cnpm install -g webpack
安装完成后,cmd命令行进入D盘 运行 vue ui 进入浏览器 新建项目即可 http://localhost:8000