Commit 649d5018 by 潘际乾

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

parent c01570c7
...@@ -10,41 +10,28 @@ export default { ...@@ -10,41 +10,28 @@ export default {
}, },
methods:{ methods:{
init(params){ init(params){
params = params||{}
return Api.post(this.declareParams.trnName+"/init",{params}) return Api.post(this.declareParams.trnName+"/init",{params})
}, },
save(params){ save(params){
params = params||{} return Api.post(this.declareParams.trnName+"/saveData", Utils.getRequestDataFn.call(this, params))
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/saveData",{...data,params})
}, },
exeuteCheck(rulePath,params){ exeuteCheck(rulePath,params){
params = params||{} return Api.post(this.declareParams.trnName+"/executeCheck/"+rulePath, Utils.getRequestDataFn.call(this, params))
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/executeCheck/"+rulePath,{...data,params})
}, },
executeDefault(rulePath,params) executeDefault(rulePath,params)
{ {
params = params||{} return Api.post(this.declareParams.trnName+"/executeDefault/"+rulePath, Utils.getRequestDataFn.call(this, params))
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/executeDefault/"+rulePath,{...data,params})
}, },
executeRule(rulePath,params) executeRule(rulePath,params)
{ {
params = params||{} return Api.post(this.declareParams.trnName+"/executeRule/"+rulePath, Utils.getRequestDataFn.call(this, params))
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/executeRule/"+rulePath,{...data,params})
}, },
async checkAll(params){ async checkAll(params){
params = params||{} const res = await Api.post(this.declareParams.trnName+"/checkAll", Utils.getRequestDataFn.call(this, params))
let data = Utils.flatObject(this.model)
const res = await Api.post(this.declareParams.trnName+"/checkAll",{...data,params})
return res return res
}, },
pedding(params){ pedding(params){
params = params||{} return Api.post(this.declareParams.trnName+"/pending", Utils.getRequestDataFn.call(this, params))
let data = Utils.flatObject(this.model)
return Api.post(this.declareParams.trnName+"/pending",{...data,params})
}, },
async restoreDisplay() async restoreDisplay()
{ {
......
...@@ -5,7 +5,7 @@ export default { ...@@ -5,7 +5,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => { this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid) if (!valid)
return; 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") { if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
...@@ -19,7 +19,7 @@ export default { ...@@ -19,7 +19,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => { this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid) if (!valid)
return; 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") { if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
...@@ -33,7 +33,7 @@ export default { ...@@ -33,7 +33,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => { this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid) if (!valid)
return; 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") { if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
...@@ -47,7 +47,7 @@ export default { ...@@ -47,7 +47,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => { this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid) if (!valid)
return; 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") { if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
...@@ -61,7 +61,7 @@ export default { ...@@ -61,7 +61,7 @@ export default {
this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => { this.$parent.$parent.$parent.$parent.$refs.modelForm.validate(async valid => {
if (!valid) if (!valid)
return; 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") { if (rtnmsg.respCode == "AAAAAA") {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
......
...@@ -56,7 +56,7 @@ function defaultTrnInfdsp() { ...@@ -56,7 +56,7 @@ function defaultTrnInfdsp() {
} }
function defaultRecpanIncben() { function defaultRecpanIncben() {
} }
async function defaultUsrcon() { function defaultUsrcon() {
const that = this; const that = this;
that.executeDefault("usrcon").then(res => { that.executeDefault("usrcon").then(res => {
this.model.usrcon = res.data.usrcon; this.model.usrcon = res.data.usrcon;
...@@ -76,7 +76,7 @@ function defaultImgmodNewhisimg() { ...@@ -76,7 +76,7 @@ function defaultImgmodNewhisimg() {
} }
function defaultRecpanCpltxt() { function defaultRecpanCpltxt() {
} }
async function defaultTrncorcoDflg() { function defaultTrncorcoDflg() {
const that = this; const that = this;
that.executeDefault("trncorco.dflg").then(res => { that.executeDefault("trncorco.dflg").then(res => {
that.model.trncorco.dflg = res.data.trncorco_dflg; that.model.trncorco.dflg = res.data.trncorco_dflg;
...@@ -86,7 +86,7 @@ function defaultOrddsp() { ...@@ -86,7 +86,7 @@ function defaultOrddsp() {
} }
function defaultRecpanUsrExtkey() { function defaultRecpanUsrExtkey() {
} }
async function defaultAtptxt() { function defaultAtptxt() {
const that = this; const that = this;
that.executeDefault("atptxt").then(res => { that.executeDefault("atptxt").then(res => {
that.model.atptxt = res.data.atptxt; that.model.atptxt = res.data.atptxt;
......
import axios from 'axios' import axios from 'axios'
import { MessageBox } from 'element-ui' import { MessageBox } from 'element-ui'
import RequestManager from './RequestManager.js';
export const BASE_HOST = "/gjjs/" export const BASE_HOST = "/gjjs/"
export const BASE_URI=BASE_HOST+""; export const BASE_URI=BASE_HOST+"";
...@@ -13,6 +14,8 @@ const instance = axios.create({ ...@@ -13,6 +14,8 @@ const instance = axios.create({
const CODE_KEY = "respCode" const CODE_KEY = "respCode"
const MESSAGE_KEY = "respMsg" const MESSAGE_KEY = "respMsg"
const requestManager = new RequestManager()
export default class Api export default class Api
{ {
static pget(url,data) static pget(url,data)
...@@ -56,17 +59,20 @@ export default class Api ...@@ -56,17 +59,20 @@ export default class Api
}) })
} }
static logout(){ static logout(){
console.log('asdasdasdasdasd') console.log('asdasdasdasdasd')
window.location.href="#/login"; window.location.href="#/login";
} }
static _post(url,data,method="post") static async _post(url,data,method="post")
{ {
let token = window.sessionStorage.token let token = window.sessionStorage.token
let userId = window.sessionStorage.userId let userId = window.sessionStorage.userId
let headers = {userId,token,"terminal":"WEB"}; let headers = {userId,token,"terminal":"WEB"};
if(url!= `${BASE_URI}login` && token) if(url!= `${BASE_URI}login` && token)
headers.token = token; headers.token = token;
if (typeof data === "function") {
data = await data()
}
return new Promise( (resolve, reject) =>{ return new Promise( (resolve, reject) =>{
axios.post(url,data,{ axios.post(url,data,{
headers, headers,
...@@ -119,16 +125,17 @@ export default class Api ...@@ -119,16 +125,17 @@ export default class Api
} }
static _get(url,data) 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) 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) 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 { ...@@ -141,4 +141,20 @@ export default class Utils {
return output.join(''); 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 { ...@@ -148,7 +148,7 @@ export default {
this.model.didgrp.rec.tenmaxday = 0; this.model.didgrp.rec.tenmaxday = 0;
this.model.didgrp.blk.defdet = ""; 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( Api.post("ditopn/executeCheck/didgrp.rec.avbby", arg).then(
(res) => { (res) => {
if (res.respCode == "AAAAAA"){ if (res.respCode == "AAAAAA"){
...@@ -158,7 +158,7 @@ export default { ...@@ -158,7 +158,7 @@ export default {
); );
}, },
recTenmaxdayEvent(){ recTenmaxdayEvent(){
const arg = Utils.flatObject(this.model); const arg = Utils.getRequestDataFn.call(this);
Api.post("ditopn/executeDefault/didgrp.rec.tenmaxday", arg).then( Api.post("ditopn/executeDefault/didgrp.rec.tenmaxday", arg).then(
(res) => { (res) => {
if (res.respCode = "AAAAAA"){ if (res.respCode = "AAAAAA"){
......
...@@ -516,7 +516,7 @@ export default { ...@@ -516,7 +516,7 @@ export default {
this.model.trnmod.trndoc.doceot.splice(this.index, 1, this.dialog); this.model.trnmod.trndoc.doceot.splice(this.index, 1, this.dialog);
let res = Api.post( let res = Api.post(
"ditopn/executeRule/trnmod.trndoc.doccur.butaddok", "ditopn/executeRule/trnmod.trndoc.doccur.butaddok",
Utils.flatObject(this.model) Utils.getRequestDataFn.call(this)
); );
if(res.data.respCode=="AAAAAA"){ if(res.data.respCode=="AAAAAA"){
//TODO //TODO
......
...@@ -711,8 +711,7 @@ export default { ...@@ -711,8 +711,7 @@ export default {
methods: { methods: {
...Event, ...Event,
aplExtkeyEvent() { aplExtkeyEvent() {
const data = Utils.flatObject(this.model); Api.post("ditopn/executeRule/didgrp.apl.pts.extkey", Utils.getRequestDataFn.call(this)).then(
Api.post("ditopn/executeRule/didgrp.apl.pts.extkey", data).then(
(res) => { (res) => {
if (res.respCode = "AAAAAA"){ if (res.respCode = "AAAAAA"){
//失去焦点,避免多次触发 //失去焦点,避免多次触发
...@@ -724,8 +723,7 @@ export default { ...@@ -724,8 +723,7 @@ export default {
); );
}, },
benExtkeyEvent() { benExtkeyEvent() {
const data = Utils.flatObject(this.model); Api.post("ditopn/executeRule/didgrp.ben.pts.extkey", Utils.getRequestDataFn.call(this)).then(
Api.post("ditopn/executeRule/didgrp.ben.pts.extkey", data).then(
(res) => { (res) => {
if (res.respCode = "AAAAAA"){ if (res.respCode = "AAAAAA"){
Utils.copyValueFromVO(this.model, res.data); Utils.copyValueFromVO(this.model, res.data);
...@@ -734,12 +732,12 @@ export default { ...@@ -734,12 +732,12 @@ export default {
); );
}, },
banknoEvent() { banknoEvent() {
const data = Utils.flatObject(this.model); // const data = Utils.flatObject(this.model);
var temp = this.model.didgrp.beb.pts.bankno; // var temp = this.model.didgrp.beb.pts.bankno;
if (temp.length < 6){ // if (temp.length < 6){
return; // return;
} // }
Api.post("ditopn/executeRule/didgrp.beb.pts.bankno", data).then( Api.post("ditopn/executeRule/didgrp.beb.pts.bankno", Utils.getRequestDataFn.call(this)).then(
(res) => { (res) => {
if (res.respCode = "AAAAAA"){ if (res.respCode = "AAAAAA"){
if (JSON.stringify(res.fieldErrors) != '{}'){ if (JSON.stringify(res.fieldErrors) != '{}'){
...@@ -768,7 +766,7 @@ export default { ...@@ -768,7 +766,7 @@ export default {
}, },
nom1CurEvent(){ nom1CurEvent(){
const data = Utils.flatObject(this.model); 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) => { (res) => {
if (res.respCode = "AAAAAA"){ if (res.respCode = "AAAAAA"){
Utils.copyValueFromVO(this.model, res.data); Utils.copyValueFromVO(this.model, res.data);
......
<template> <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-container style="height:100%;">
<el-main style="padding:0"> <el-main style="padding:0">
...@@ -188,7 +188,7 @@ export default { ...@@ -188,7 +188,7 @@ export default {
console.log("进入office交易"); console.log("进入office交易");
if(1) return 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) console.log(rtnmsg)
if(rtnmsg.code == SUCCESS) if(rtnmsg.code == SUCCESS)
{ {
......
<template> <template>
<div class="eContainer"> <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-tabs ref="elment" type="border-card" @tab-click="tabClick">
<el-tab-pane label="待办任务查询"> <el-tab-pane label="待办任务查询">
<m-menu :model="model" :codes="codes" ref="Menu"/> <m-menu :model="model" :codes="codes" ref="Menu"/>
......
<template> <template>
<div class="eContainer"> <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-tabs ref="elment" type="border-card" @tab-click="tabClick">
<el-tab-pane label="复核夹查询"> <el-tab-pane label="复核夹查询">
<m-inftrnps :model="model" :codes="codes" ref="inftrnps" /> <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