1、Ajax优化

Former-commit-id: 0cbae8c38fe8db8f9238f936bc5712fb85ec9ae9
master
王兵 5 years ago
parent 764e28d1e7
commit 8a951729a2

@ -13,6 +13,16 @@
headers: {'Content-Type': 'application/json;charset=UTF-8'}, headers: {'Content-Type': 'application/json;charset=UTF-8'},
}); });
var uploadService = axios.create({ var uploadService = axios.create({
method: 'post',
timeout: 30000,
baseURL: '${context?default("")}',
headers: {'Content-Type': 'multipart/form-data'},
onUploadProgress: function (progressEvent) {
var complete = (progressEvent.loaded / progressEvent.total * 100 | 0) + '%'
nav.tipShow("上传中(" + complete + ")")
},
});
var importService = axios.create({
method: 'post', method: 'post',
timeout: 30000, timeout: 30000,
baseURL: '${context?default("")}', baseURL: '${context?default("")}',
@ -64,8 +74,37 @@
} }
return Promise.resolve(rsp); return Promise.resolve(rsp);
}) })
} };
function upRequest(data) { function uploadRequest(data) {
nav.barShow();
nav.tipShow("上传中...");
var fd = new FormData();
fd.append("file", data.data);
data.data = fd;
return uploadService.request(data)
.then(function (response) {
nav.tipClose();
if (response.data.errors && response.data.errors.length == 0) {
nav.barFinish();
} else if (response.data.errors && response.data.errors.length > 0) {
nav.barError();
} else {
response.data = {errors: [{message: '服务器响应错误'}]};
nav.barError();
}
return Promise.resolve(response.data);
}, function (error) {
nav.barError();
const rsp = {errors: []};
if (!error.response) {
rsp.errors.push({message: error.message});
} else {
rsp.errors.push(handleError(error.response.status));
}
return Promise.resolve(rsp);
})
};
function importRequest(data) {
nav.barShow(); nav.barShow();
nav.tipShow("上传中..."); nav.tipShow("上传中...");
var fd = new FormData(); var fd = new FormData();
@ -179,8 +218,13 @@
this.post = function (callback) { this.post = function (callback) {
switch (this.mMethod) { switch (this.mMethod) {
case "upload": case "upload":
return uploadRequest({
url: '/ajax/' + this.mModule + "/" + this.mTarget + "/" + this.mMethod,
data: this.mData
}).then(callback);
break;
case "imports": case "imports":
return upRequest({ return importRequest({
url: '/ajax/' + this.mModule + "/" + this.mTarget + "/" + this.mMethod, url: '/ajax/' + this.mModule + "/" + this.mTarget + "/" + this.mMethod,
data: this.mData data: this.mData
}).then(callback); }).then(callback);
@ -231,7 +275,7 @@
}; };
this.imports = function (callback) { this.imports = function (callback) {
this.mMethod = "imports"; this.mMethod = "imports";
return upRequest({ return importRequest({
url: '/ajax/' + this.mModule + "/" + this.mTarget + "/" + this.mMethod, url: '/ajax/' + this.mModule + "/" + this.mTarget + "/" + this.mMethod,
data: this.mData data: this.mData
}).then(callback) }).then(callback)
@ -245,7 +289,7 @@
}; };
this.upload = function (callback) { this.upload = function (callback) {
this.mMethod = "upload"; this.mMethod = "upload";
return upRequest({ return uploadRequest({
url: '/ajax/' + this.mModule + "/" + this.mTarget + "/" + this.mMethod, url: '/ajax/' + this.mModule + "/" + this.mTarget + "/" + this.mMethod,
data: this.mData data: this.mData
}).then(callback) }).then(callback)
@ -282,71 +326,51 @@
this.select = select; this.select = select;
}, },
onTemplate: function () { onTemplate: function () {
new Ajax() new Ajax(this.module, this.target, "template").post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.method("template") }
.template(function (response) { })
if (response.errors.length > 0) {
nav.e(response.errors[0].message);
}
})
}, },
onImport: function (item) { onImport: function (item) {
utils.selectFile(function (files) { utils.selectFile(function (files) {
new Ajax() new Ajax(this.module, this.target, "imports", files[0]).post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.data(files[0]) }
.imports(function (response) { });
if (response.errors.length > 0) {
nav.e(response.errors[0].message);
}
});
}.bind(this)) }.bind(this))
}, },
onExport: function () { onExport: function () {
new Ajax() new Ajax(this.module, this.target, "exports", this.vm).post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.data(this.vm) }
.exports(function (response) { });
if (response.errors.length > 0) {
nav.e(response.errors[0].message);
}
});
}, },
onSave: function () { onSave: function () {
this.$refs['form'].validate(function (valid) { this.$refs['form'].validate(function (valid) {
if (valid) { if (valid) {
if (this.form.id) { if (this.form.id) {
new Ajax() new Ajax(this.module, this.target, "update", this.form).post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.data(this.form) } else {
.update(function (response) { this.onFind();
if (response.errors.length > 0) { this.$refs['form'].resetFields();
nav.e(response.errors[0].message); this.form.dialog = false;
} else { }
this.onFind(); }.bind(this))
this.$refs['form'].resetFields();
this.form.dialog = false;
}
}.bind(this))
} else { } else {
new Ajax() new Ajax(this.module, this.target, "create", this.form).post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.data(this.form) } else {
.create(function (response) { this.onFind();
if (response.errors.length > 0) { this.$refs['form'].resetFields();
nav.e(response.errors[0].message); this.form.dialog = false;
} else { }
this.onFind(); }.bind(this))
this.$refs['form'].resetFields();
this.form.dialog = false;
}
}.bind(this))
} }
} else { } else {
return false; return false;
@ -354,18 +378,14 @@
}.bind(this)); }.bind(this));
}, },
onFind: function () { onFind: function () {
new Ajax() new Ajax(this.module, this.target, "find", this.vm).post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.data(this.vm) } else {
.find(function (response) { this.result = response.result;
if (response.errors.length > 0) { this.vm.totalCount = Number(response.totalCount);
nav.e(response.errors[0].message); }
} else { }.bind(this))
this.result = response.result;
this.vm.totalCount = Number(response.totalCount);
}
}.bind(this))
}, },
onDelete: function (item) { onDelete: function (item) {
this.$confirm('将删除该项, 是否继续?', '提示', { this.$confirm('将删除该项, 是否继续?', '提示', {
@ -373,18 +393,14 @@
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(function () { }).then(function () {
new Ajax() new Ajax(this.module, this.target, "delete", {id: item.id}).post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.data({id: item.id}) } else {
.delete(function (response) { nav.s("删除成功");
if (response.errors.length > 0) { this.onFind();
nav.e(response.errors[0].message); }
} else { }.bind(this))
nav.s("删除成功");
this.onFind();
}
}.bind(this))
}.bind(this)).catch(function (action) { }.bind(this)).catch(function (action) {
}); });
@ -400,25 +416,21 @@
}).then(function () { }).then(function () {
for (var i = 0; i < this.select.length; i++) { for (var i = 0; i < this.select.length; i++) {
(function (obj) { (function (obj) {
new Ajax() new Ajax(this.module, this.target, "delete", {id: obj.id}).post(function (response) {
.module(this.module) if (response.errors.length > 0) {
.target(this.target) nav.e(response.errors[0].message);
.data({id: obj.id}) } else {
.delete(function (response) { for (var j = 0; j < this.select.length; j++) {
if (response.errors.length > 0) { if (this.select[j].id === obj.id) {
nav.e(response.errors[0].message); this.select.splice(j, 1);
} else {
for (var j = 0; j < this.select.length; j++) {
if (this.select[j].id === obj.id) {
this.select.splice(j, 1);
}
}
if (this.select.length === 0) {
nav.s("删除成功")
this.onFind();
}
} }
}.bind(this)) }
if (this.select.length === 0) {
nav.s("删除成功")
this.onFind();
}
}
}.bind(this))
}.bind(this))(this.select[i]); }.bind(this))(this.select[i]);
} }
}.bind(this)).catch(function (action) { }.bind(this)).catch(function (action) {

Loading…
Cancel
Save

Powered by TurnKey Linux.