Commit 649d5018 by 潘际乾

前端请求并发限制及model参数的传递方式更改

parent c01570c7
......@@ -10,41 +10,28 @@ export default {
},
methods:{
init(params){
params = params||{}
return Api.post(this.declareParams.trnName+"/init",{params})
},
save(params){
params = params||{}
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/saveData",{...data,params})
return Api.post(this.declareParams.trnName+"/saveData", Utils.getRequestDataFn.call(this, params))
},
exeuteCheck(rulePath,params){
params = params||{}
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/executeCheck/"+rulePath,{...data,params})
return Api.post(this.declareParams.trnName+"/executeCheck/"+rulePath, Utils.getRequestDataFn.call(this, params))
},
executeDefault(rulePath,params)
{
params = params||{}
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/executeDefault/"+rulePath,{...data,params})
return Api.post(this.declareParams.trnName+"/executeDefault/"+rulePath, Utils.getRequestDataFn.call(this, params))
},
executeRule(rulePath,params)
{
params = params||{}
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/executeRule/"+rulePath,{...data,params})
return Api.post(this.declareParams.trnName+"/executeRule/"+rulePath, Utils.getRequestDataFn.call(this, params))
},
async checkAll(params){
params = params||{}
let data = Utils.flatObject(this.model)
const res = await Api.post(this.declareParams.trnName+"/checkAll",{...data,params})
const res = await Api.post(this.declareParams.trnName+"/checkAll", Utils.getRequestDataFn.call(this, params))
return res
},
pedding(params){
params = params||{}
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/pending",{...data,params})
return Api.post(this.declareParams.trnName+"/pending", Utils.getRequestDataFn.call(this, params))
},
async restoreDisplay()
{
......
......@@ -5,7 +5,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid)
return;
let rtnmsg = await Api.post("sptsel/usfmod_shwflt", Utils.flatObject(this.model))
let rtnmsg = await Api.post("sptsel/usfmod_shwflt", Utils.getRequestDataFn.call(this))
if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑
......@@ -19,7 +19,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid)
return;
let rtnmsg = await Api.post("sptsel/butypt", Utils.flatObject(this.model))
let rtnmsg = await Api.post("sptsel/butypt", Utils.getRequestDataFn.call(this))
if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑
......@@ -33,7 +33,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid)
return;
let rtnmsg = await Api.post("sptsel/dlmft", Utils.flatObject(this.model))
let rtnmsg = await Api.post("sptsel/dlmft", Utils.getRequestDataFn.call(this))
if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑
......@@ -47,7 +47,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid)
return;
let rtnmsg = await Api.post("sptsel/dlaxq", Utils.flatObject(this.model))
let rtnmsg = await Api.post("sptsel/dlaxq", Utils.getRequestDataFn.call(this))
if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑
......@@ -61,7 +61,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid)
return;
let rtnmsg = await Api.post("sptsel/butimg", Utils.flatObject(this.model))
let rtnmsg = await Api.post("sptsel/butimg", Utils.getRequestDataFn.call(this))
if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑
......
......@@ -56,7 +56,7 @@ function defaultTrnInfdsp() {
}
function defaultRecpanIncben() {
}
async function defaultUsrcon() {
function defaultUsrcon() {
const that = this;
that.executeDefault("usrcon").then(res => {
this.model.usrcon = res.data.usrcon;
......@@ -76,7 +76,7 @@ function defaultImgmodNewhisimg() {
}
function defaultRecpanCpltxt() {
}
async function defaultTrncorcoDflg() {
function defaultTrncorcoDflg() {
const that = this;
that.executeDefault("trncorco.dflg").then(res => {
that.model.trncorco.dflg = res.data.trncorco_dflg;
......@@ -86,7 +86,7 @@ function defaultOrddsp() {
}
function defaultRecpanUsrExtkey() {
}
async function defaultAtptxt() {
function defaultAtptxt() {
const that = this;
that.executeDefault("atptxt").then(res => {
that.model.atptxt = res.data.atptxt;
......
import axios from 'axios'
import { MessageBox } from 'element-ui'
import RequestManager from './RequestManager.js';
export const BASE_HOST = "/gjjs/"
export const BASE_URI=BASE_HOST+"";
......@@ -13,6 +14,8 @@ const instance = axios.create({
const CODE_KEY = "respCode"
const MESSAGE_KEY = "respMsg"
const requestManager = new RequestManager()
export default class Api
{
static pget(url,data)
......@@ -56,17 +59,20 @@ export default class Api
})
}
static logout(){
static logout(){
console.log('asdasdasdasdasd')
window.location.href="#/login";
}
static _post(url,data,method="post")
{
static async _post(url,data,method="post")
{
let token = window.sessionStorage.token
let userId = window.sessionStorage.userId
let headers = {userId,token,"terminal":"WEB"};
if(url!= `${BASE_URI}login` && token)
headers.token = token;
if (typeof data === "function") {
data = await data()
}
return new Promise( (resolve, reject) =>{
axios.post(url,data,{
headers,
......@@ -119,16 +125,17 @@ export default class Api
}
static _get(url,data)
{
return this._post(url,data,"get");
// return this._post(url,data,"get");
return requestManager.pushRequest(this._post.bind(this, BASE_URI+url, data, "get"))
}
static post(url,data)
{
return this._post(BASE_URI+url,data)
// return this._post(BASE_URI+url,data)
return requestManager.pushRequest(this._post.bind(this, BASE_URI+url, data))
}
static get(url,data)
{
return this._get(BASE_HOST+url,data)
return this._get(BASE_HOST+url,data)
}
}
\ No newline at end of file
class RequestManager {
constructor() {
// 并发请求数
this.concurrency = 1;
this.running = 0;
this.requestQueue = [];
}
async pushRequest(request) {
if (this.running >= this.concurrency) {
// resolve()未被执行之前,当前request会在这里await
await new Promise(resolve => this.requestQueue.push(resolve));
}
return this._handleRequest(request);
}
async _handleRequest(request) {
this.running++;
try {
return await request();
} catch (error) {
return Promise.reject(error)
} finally {
this.running--;
if (this.requestQueue.length > 0) {
// 执行下一个resolve
this.requestQueue[0]();
this.requestQueue.shift();
}
}
}
}
export default RequestManager
\ No newline at end of file
......@@ -141,4 +141,20 @@ export default class Utils {
return output.join('');
}
static getRequestDataFn(params) {
params = params||{}
const fn = async () => {
const that = this;
const data = await new Promise(resolve => {
// 保证前一次请求结果赋值VO完成
setTimeout(() => {
const d = Utils.flatObject(that.model)
resolve(d)
}, 0)
})
return {...data, params}
}
return fn;
}
}
\ No newline at end of file
......@@ -148,7 +148,7 @@ export default {
this.model.didgrp.rec.tenmaxday = 0;
this.model.didgrp.blk.defdet = "";
}
const arg = Utils.flatObject(this.model);
const arg = Utils.getRequestDataFn.call(this);
Api.post("ditopn/executeCheck/didgrp.rec.avbby", arg).then(
(res) => {
if (res.respCode == "AAAAAA"){
......@@ -158,7 +158,7 @@ export default {
);
},
recTenmaxdayEvent(){
const arg = Utils.flatObject(this.model);
const arg = Utils.getRequestDataFn.call(this);
Api.post("ditopn/executeDefault/didgrp.rec.tenmaxday", arg).then(
(res) => {
if (res.respCode = "AAAAAA"){
......
......@@ -516,7 +516,7 @@ export default {
this.model.trnmod.trndoc.doceot.splice(this.index, 1, this.dialog);
let res = Api.post(
"ditopn/executeRule/trnmod.trndoc.doccur.butaddok",
Utils.flatObject(this.model)
Utils.getRequestDataFn.call(this)
);
if(res.data.respCode=="AAAAAA"){
//TODO
......
......@@ -711,8 +711,7 @@ export default {
methods: {
...Event,
aplExtkeyEvent() {
const data = Utils.flatObject(this.model);
Api.post("ditopn/executeRule/didgrp.apl.pts.extkey", data).then(
Api.post("ditopn/executeRule/didgrp.apl.pts.extkey", Utils.getRequestDataFn.call(this)).then(
(res) => {
if (res.respCode = "AAAAAA"){
//失去焦点,避免多次触发
......@@ -724,8 +723,7 @@ export default {
);
},
benExtkeyEvent() {
const data = Utils.flatObject(this.model);
Api.post("ditopn/executeRule/didgrp.ben.pts.extkey", data).then(
Api.post("ditopn/executeRule/didgrp.ben.pts.extkey", Utils.getRequestDataFn.call(this)).then(
(res) => {
if (res.respCode = "AAAAAA"){
Utils.copyValueFromVO(this.model, res.data);
......@@ -734,12 +732,12 @@ export default {
);
},
banknoEvent() {
const data = Utils.flatObject(this.model);
var temp = this.model.didgrp.beb.pts.bankno;
if (temp.length < 6){
return;
}
Api.post("ditopn/executeRule/didgrp.beb.pts.bankno", data).then(
// const data = Utils.flatObject(this.model);
// var temp = this.model.didgrp.beb.pts.bankno;
// if (temp.length < 6){
// return;
// }
Api.post("ditopn/executeRule/didgrp.beb.pts.bankno", Utils.getRequestDataFn.call(this)).then(
(res) => {
if (res.respCode = "AAAAAA"){
if (JSON.stringify(res.fieldErrors) != '{}'){
......@@ -768,7 +766,7 @@ export default {
},
nom1CurEvent(){
const data = Utils.flatObject(this.model);
Api.post("ditopn/executeDefault/didgrp.cbs.nom1.cur", data).then(
Api.post("ditopn/executeDefault/didgrp.cbs.nom1.cur", Utils.getRequestDataFn.call(this)).then(
(res) => {
if (res.respCode = "AAAAAA"){
Utils.copyValueFromVO(this.model, res.data);
......
<template>
<el-form :model="model" :rules="rules" ref="modelForm" label-width="100px" size="small" style="height:100%;">
<el-form :model="model" :rules="rules" ref="modelForm" label-width="100px" size="small" style="height:100%;" :validate-on-rule-change="false">
<el-container style="height:100%;">
<el-main style="padding:0">
......@@ -188,7 +188,7 @@ export default {
console.log("进入office交易");
if(1) return
let rtnmsg = await Api.post("office/init",{params:{}})
let rtnmsg = await Api.post("office/init",Utils.getRequestDataFn.call(this, {}))
console.log(rtnmsg)
if(rtnmsg.code == SUCCESS)
{
......
<template>
<div class="eContainer">
<el-form :model="model" :rules="rules" ref="modelForm" tokenKey="modelForm" label-width="170px" size="small">
<el-form :model="model" :rules="rules" ref="modelForm" tokenKey="modelForm" label-width="170px" size="small" :validate-on-rule-change="false">
<el-tabs ref="elment" type="border-card" @tab-click="tabClick">
<el-tab-pane label="待办任务查询">
<m-menu :model="model" :codes="codes" ref="Menu"/>
......
<template>
<div class="eContainer">
<el-form :model="model" :rules="rules" ref="modelForm" tokenKey="modelForm" label-width="170px" size="small">
<el-form :model="model" :rules="rules" ref="modelForm" tokenKey="modelForm" :validate-on-rule-change="false" label-width="170px" size="small">
<el-tabs ref="elment" type="border-card" @tab-click="tabClick">
<el-tab-pane label="复核夹查询">
<m-inftrnps :model="model" :codes="codes" ref="inftrnps" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment