Commit 6d688c61 by li_hongchao

1、逻辑分库工作队列和队列名称item的事件监听扩大范围

2、网络请求工具进行了重构,新增网络请求配置工具类,具体介绍和使用方法 已经更新到 网络工具说明.md 文档
parent e97bf407
##日志工具:
#网络工具:
##日志工具:
#网络工具:
```
关于网络请求相关的工具,有http.js、HttpConfig.js、HttpConfigUtil.js主类。
```
## 1 http.js:
```
基于axios进行的封装,统一配置请求拦截器,响应拦截器,统一处理响应失败、异常,添加了加载进度(默认开启)、提示(默认开启)
```
##文件位置
### 1.1 文件位置
```
\src\request\http.js
```
### 方法
### 1.2 方法介绍
#### get
```
......@@ -58,58 +63,162 @@
可以取消指定的网络请求,前提需要使用 fHttp.setId('xxx') 设置id
fHttp.cancel('xxx')
```
### 1.3 使用方法
```
fHttp.get(_url,_parameter) 或 fHttp.get(_url,_parameter,config)
fHttp.postform(_url,_parameter) 或 fHttp.postform(_url,_parameter,config)
fHttp.postdown(_url,_parameter) 或 fHttp.postdown(_url,_parameter,config)
fHttp.postJson(_url,_parameter) 或 fHttp.postJson(_url,_parameter,config)
fHttp.cancel()
```
### *说明
```
http.js注册到 window.fHttp = fHttp
```
#### closeTip
```
closeTip(params = {}) 关闭提示,此方法应用于以上网络请求方法的第三个参数(config),不可单独使用
基本用法:
fHttp.postJson(_url, _parameter, fHttp.closeTip())
与 closeLoad联合使用:
fHttp.postJson(_url, _parameter, fHttp.closeTip(fHttp.closeLoad()))
配置头信息写法:
fHttp.postJson(_url, _parameter, fHttp.closeTip(fHttp.closeLoad({
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})))
## 2 HttpConfig.js:
```
#### closeLoad
```
closeLoad(params = {}) 关闭加载进度,此方法应用于以上网络请求方法的第三个参数(config),不可单独使用
主要是用于http.js网络请求方法中config参数构建
```
### 2.1 文件位置
```
\src\request\HttpConfig.js
```
### 2.2 方法介绍
基本用法:
fHttp.postJson(_url, _parameter, fHttp.closeLoad())
与 closeLoad联合使用:
fHttp.postJson(_url, _parameter, fHttp.closeLoad(fHttp.closeTip()))
配置头信息写法:
fHttp.postJson(_url, _parameter, fHttp.closeLoad(fHttp.closeTip({
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})))
```
#### setId
#### _TYPE
```
内置常用网络请求设置关键字
ON_UPLOAD_PROGRESS: 'onUploadProgress' // 网络进度监听方法
LOADING: 'loading', // 网络进度
LOADING_TARGET: 'loadingTarget', // 网络进度目标view
TIP: 'isShowTip', // 提示
CANCLE_KEY: 'cancleId', // 网络请求id
CANCLE_DEFAULT: 'cancle' // 网络请求id 默认值
```
设置当前网络请求的id,可以用于取消网络请求,不可单独使用
请求时设置id
fHttp.postJson(_url, _parameter, fHttp.setId('_ry_123456'))
取消id为 '_ry_123456' 的网络请求
fHttp.cancel('_ry_123456')
#### obtain
```
用于构建HttpConfig实例
```
#### done
```
用于生成设置参数的最终结果
```
#### addConfig
```
添加网络配置参数的通用方法
```
#### addHeader
```
添加网络配置头参数(headers)的通用方法
```
#### setLoading
```
设置是否显示加载进度,默认开启
```
#### openLoading
```
开启加载进度
```
#### closeLoading
```
关闭加载进度
```
### 说明
#### setLoadingTarget
```
使用设置的target,比如el-table
```
http.js注册到 window.fHttp = fHttp
#### setTip
```
### 使用方法
设置是否显示提示,默认开启
```
#### openTip
```
开启提示
```
#### closeTip
```
关闭提示
```
#### setId
```
设置网络请求id
```
#### setOnUploadProgress
```
监听网络请求进度
```
### 2.3 使用方法
```
引入文件:import HttpConfig from './request/HttpConfigUtil.js'
使用方法:
var config = HttpConfig.obtain()
.addConfig('xxxx','xxxx')
.addHearder('xxxx','xxxx')
.openTip()
.setId('1234567890')
.closeLoading()
.setOnUploadProgress(listener)
.done()
fHttp.postJson(_path, _parameter, config)
config格式:
{
xxxx:xxxx
loading:false,
isShowTip: true,
headers: {
'Content-Type': 'application/json',
'xxxx': 'xxxx',
}
onUploadProgress: listener
}
```
## 3 HttpConfigUtil.js:
```
是基于HttpConfig中常用的方法进行了封装
```
### 3.1 文件位置
```
\src\request\HttpConfigUtil.js
```
### 3.2 方法介绍
#### closeLoadAndTip
```
关闭加载进度和提示
```
#### closeLoad
```
关闭加载进度
```
#### closeTip
```
关闭提示
```
#### setContentType
```
设置头信息的 Content-Type 参数方法
```
#### addHeader
```
设置头信息的
```
### 3.3 使用方法
```
引入文件:
import HttpConfigUtil from './request/HttpConfigUtil.js'
使用方法:
fHttp.postJson(_path, _parameter, HttpConfigUtil.closeLoadAndTip())
```
fHttp.get(_url,_parameter) 或 fHttp.get(_url,_parameter,config)
fHttp.postform(_url,_parameter) 或 fHttp.postform(_url,_parameter,config)
fHttp.postdown(_url,_parameter) 或 fHttp.postdown(_url,_parameter,config)
fHttp.postJson(_url,_parameter) 或 fHttp.postJson(_url,_parameter,config)
fHttp.cancel()
fHttp.postJson(_url, _parameter, fHttp.closeTip())
fHttp.postJson(_url, _parameter, fHttp.closeLoad())
```
......@@ -7,6 +7,7 @@
* @FilePath: \指纹系统\founder_vue\src\netmgr\cxyrd\cxyrd.js
*/
import addrType from '../../netmgr/NetAddressType'
import HttpConfigUtil from '../../request/HttpConfigUtil.js'
const _path = {
// 获取案件指纹
......@@ -23,22 +24,22 @@ const _path = {
export default {
// 获取案件指纹
ajfinger(_parameter) {
return fHttp.postJson(_path.ajfinger, _parameter, fHttp.closeTip(fHttp.closeLoad()) )
return fHttp.postJson(_path.ajfinger, _parameter, HttpConfigUtil.closeLoadAndTip())
},
// 获取案件掌纹
ajhand(_parameter) {
return fHttp.postJson(_path.ajhand, _parameter, fHttp.closeTip(fHttp.closeLoad()) )
return fHttp.postJson(_path.ajhand, _parameter, HttpConfigUtil.closeLoadAndTip())
},
// 获取人员平面指纹
ryfingerPain(_parameter) {
return fHttp.postJson(_path.ryfingerPain, _parameter, fHttp.closeTip(fHttp.closeLoad()) )
return fHttp.postJson(_path.ryfingerPain, _parameter, HttpConfigUtil.closeLoadAndTip())
},
// 获取人员滚动指纹
ryfingerRoll(_parameter) {
return fHttp.postJson(_path.ryfingerRoll, _parameter, fHttp.closeTip(fHttp.closeLoad()) )
return fHttp.postJson(_path.ryfingerRoll, _parameter, HttpConfigUtil.closeLoadAndTip())
},
// 获取人员掌纹
ryhand(_parameter) {
return fHttp.postJson(_path.ryhand, _parameter, fHttp.closeTip(fHttp.closeLoad()) )
return fHttp.postJson(_path.ryhand, _parameter, HttpConfigUtil.closeLoadAndTip())
},
}
import addrType from '../../netmgr/NetAddressType'
import HttpConfig from '../../request/HttpConfig.js'
const _path = {
drFptx: addrType.api + '/upload/',
......@@ -11,11 +12,15 @@ export default {
case 6: url = 'case'; break
case 9: url = 'hitresult'; break
}
var config = HttpConfig.obtain()
.closeLoading()
.setOnUploadProgress(onProgress)
.done()
return fHttp.postJson(
_path.drFptx + url,
_parameter,
fHttp.closeLoad({
onUploadProgress: onProgress
}))
config)
},
}
import addrType from '../../netmgr/NetAddressType'
import HttpConfigUtil from '../../request/HttpConfigUtil.js'
import CommonContentType from '../../request/CommonContentType.js'
/**
* Description: 逻辑分库相关接口类
......@@ -41,7 +43,7 @@ export default {
* @date: 2022/1/5 11:31
*/
yhList() {
return fHttp.get(_path.ljkyh + 'getUserAndUserGroup', {}, fHttp.closeLoad())
return fHttp.get(_path.ljkyh + 'getUserAndUserGroup', {}, HttpConfigUtil.closeLoad())
},
/**
......@@ -59,9 +61,10 @@ export default {
},
queryGzl(_parameter) {
return fHttp.post(_path.gzl + 'queryByLogicIdAndType', _parameter, {
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
return fHttp.post(
_path.gzl + 'queryByLogicIdAndType',
_parameter,
HttpConfigUtil.setContentType(CommonContentType._APPLICATION.X_WWW_FORM_URLENCODED))
},
addLjfk(_parameter) { // 信息包括逻辑库信息和工作流信息
......
import addrType from '../../netmgr/NetAddressType'
import HttpConfigUtil from '../../request/HttpConfigUtil.js'
const _path = {
getCaseBybarcode: addrType.api + '/org/case/barcode',
getCasePalmBybarcode: addrType.api + '/org/case/palm/barcode'
}
export default {
getCaseBybarcode (_parameter) {
getCaseBybarcode(_parameter) {
return fHttp.postJson(
_path.getCaseBybarcode,
_parameter,
fHttp.closeLoad(fHttp.closeTip())
HttpConfigUtil.closeLoadAndTip()
)
},
getCasePalmBybarcode (_parameter) {
getCasePalmBybarcode(_parameter) {
return fHttp.postJson(
_path.getCasePalmBybarcode,
_parameter,
fHttp.closeLoad(fHttp.closeTip())
HttpConfigUtil.closeLoadAndTip()
)
}
}
\ No newline at end of file
}
/**
* Description: 常见 ContentType 类型
* @author: li_hongchao
* @date: 2022/2/7 18:13
*/
class CommonContentType {
static _CONTENT_TYPE_KEY = 'Content-Type'
static _TEXT = {
HTML : 'text/html',//HTML格式
PLAIN : 'text/plain',//纯文本格式
XML : 'text/xml'//XML格式
}
static _IMAGE = {
GIF : 'image/gif',//gif图片格式
JPEG : 'image/jpeg',//jpg图片格式
PNG : 'image/png',//png图片格式
}
static _APPLICATION = {
XHTML_XML : 'application/xhtml+xml' ,//XHTML格式
XML : 'application/xml' ,//XML数据格式
ATOM_XML : 'application/atom+xml' ,//Atom XML聚合格式
JSON : 'application/json' ,//JSON数据格式
PDF : 'application/pdf' ,//pdf格式
MSWORD : 'application/msword' ,//Word文档格式
OCTET_STREAM : 'application/octet-stream' ,//二进制流数据(如常见的文件下载)
X_WWW_FORM_URLENCODED: 'application/x-www-form-urlencoded' ,// <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
}
static _MULTIPART = {
FORM_DATA : 'multipart/form-data'//需要在表单中进行文件上传时,就需要使用该格式
}
}
export default CommonContentType
class HttpCode {
static _0 = 0
static _200 = 200
static _200_S = '200'
static _400 = 400
static _401 = 401
static _403 = 403
static _404 = 404
static _500 = 500
static _501 = 501
static _CANCLE = 1000
static _TIMEOUT = 2000
static _OTHER = 9999
}
export default HttpCode
/**
* Description: HTTP 设置Config的方法类
* @author: li_hongchao
* @date: 2022/2/7 19:19
*/
class HttpConfig {
/**
* Description: 有关网络请求设置的关键字
* @author: li_hongchao
* @date: 2022/2/7 16:20
*/
static _TYPE = {
ON_UPLOAD_PROGRESS: 'onUploadProgress',
LOADING: 'loading',
LOADING_TARGET: 'loadingTarget',
TIP: 'isShowTip',
CANCLE_KEY: 'cancleId',
CANCLE_DEFAULT: 'cancle'
}
config = {
headers: {}
}
static obtain() {
return new HttpConfig()
}
done() {
return this.config
}
/**
* Description: 添加自定义的配置信息
* @author: li_hongchao
* @date: 2022/2/7 17:38
*/
addConfig(key, value) {
this.config[key] = value
return this
}
/**
* Description: 添加头信息
* @author: li_hongchao
* @date: 2022/2/7 16:49
*/
addHeader(key, value) {
this.config.headers[key] = value
return this
}
/**
* Description: 设置是否显示加载进度,默认开启
* @author: li_hongchao
* @date: 2022/2/7 16:35
*/
setLoading(flag = true) {
return this.addConfig(HttpConfig._TYPE.LOADING, flag)
}
/**
* Description: 开启加载进度
* @author: li_hongchao
* @date: 2022/2/7 16:37
*/
openLoading() {
return this.setLoading(true)
}
/**
* Description: 关闭加载进度
* @author: li_hongchao
* @date: 2022/2/7 16:37
*/
closeLoading() {
return this.setLoading(false)
}
/**
* Description: 使用设置的target,比如el-table
* @author: li_hongchao
* @date: 2022/2/7 16:35
*/
setLoadingTarget(value) {
return this.addConfig(HttpConfig._TYPE.LOADING_TARGET, value)
}
/**
* Description: 设置是否显示提示,默认开启
* @author: li_hongchao
* @date: 2022/2/7 16:42
*/
setTip(flag = true) {
return this.addConfig(HttpConfig._TYPE.TIP, flag)
}
/**
* Description: 开启提示
* @author: li_hongchao
* @date: 2022/2/7 16:42
*/
openTip() {
return this.setTip(true)
}
/**
* Description: 关闭提示
* @author: li_hongchao
* @date: 2022/2/7 16:42
*/
closeTip() {
return this.setTip(false)
}
/**
* Description: 设置网络请求id
* @author: li_hongchao
* @date: 2022/2/7 16:49
*/
setId(id) {
return this.addConfig(HttpConfig._TYPE.CANCLE_KEY, id)
}
/**
* Description: 监听网络请求进度
* @author: li_hongchao
* @date: 2022/2/7 17:44
*/
setOnUploadProgress(listener) {
return this.addConfig(HttpConfig._TYPE.ON_UPLOAD_PROGRESS, listener)
}
}
export default HttpConfig
import HttpConfig from '../request/HttpConfig.js'
import CommonContentType from '../request/CommonContentType.js'
/**
* Description: 常用的网络配置
* @author: li_hongchao
* @date: 2022/2/7 17:47
*/
class HttpConfigUtil {
/**
* Description: 关闭加载进度和提示
* @author: li_hongchao
* @date: 2022/2/7 17:47
*/
static closeLoadAndTip() {
return HttpConfig.obtain()
.closeTip()
.closeLoading()
.done()
}
/**
* Description:关闭加载进度
* @author: li_hongchao
* @date: 2022/2/7 17:47
*/
static closeLoad() {
return HttpConfig.obtain()
.closeLoading()
.done()
}
/**
* Description: 关闭提示
* @author: li_hongchao
* @date: 2022/2/7 17:47
*/
static closeTip() {
return HttpConfig.obtain()
.closeTip()
.done()
}
static setContentType(value) {
return HttpConfig.obtain()
.addHeader(CommonContentType._CONTENT_TYPE_KEY, value)
.done()
}
static addHeader(key, value) {
return HttpConfig.obtain()
.addHeader(key, value)
.done()
}
}
export default HttpConfigUtil
......@@ -4,42 +4,45 @@ import qs from 'qs'
import {ACCESS_TOKEN} from '../store/mutation-types'
import router from '../router'
import {showLoading, hideLoading} from '@/utils/requestLoading'
import fa from 'element-ui/src/locale/lang/fa'
import HttpConfig from '../request/HttpConfig.js'
import CommonContentType from '../request/CommonContentType.js'
import HttpCode from '../request/HttpCode.js'
// import fa from 'element-ui/src/locale/lang/fa'
// debugger
axios.defaults.timeout = 0
axios.defaults.headers = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json'
[CommonContentType._CONTENT_TYPE_KEY]: CommonContentType._APPLICATION.JSON
}
axios.defaults.responseType = 'json'
var _HTTP_TYPE = {
LOADING: 'loading',
LOADING_TARGET: 'loadingTarget',
TIP: 'isShowTip',
CANCLE_KEY: 'cancleId',
CANCLE_DEFAULT: 'cancle'
}
// var _HTTP_TYPE = {
// LOADING: 'loading',
// LOADING_TARGET: 'loadingTarget',
// TIP: 'isShowTip',
// CANCLE_KEY: 'cancleId',
// CANCLE_DEFAULT: 'cancle'
// }
var common = axios.create()
var instance = axios.create({// post 常规请求
headers: {
'Content-Type': 'multipart/form-data'
[CommonContentType._CONTENT_TYPE_KEY]: CommonContentType._MULTIPART.FORM_DATA
}
})
var json = axios.create({ // post json
headers: {
'Content-Type': 'application/json'
[CommonContentType._CONTENT_TYPE_KEY]: CommonContentType._APPLICATION.JSON
}
})
var down = axios.create({ // 文件下载
headers: {
'Content-Type': 'application/json'
[CommonContentType._CONTENT_TYPE_KEY]: CommonContentType._APPLICATION.JSON
},
})
......@@ -47,6 +50,7 @@ var _IS_SHOW_TIP = true
// 初始化参数
let initConfig = (config) => {
// logger.info('http--initConfig:', config)
if (config.url.indexOf('/login/myLoginForm') <= 0) {
const token = localStorage.getItem(ACCESS_TOKEN)
if (token) {
......@@ -60,9 +64,9 @@ let initConfig = (config) => {
if (!window._axiosPromiseArr) {
window._axiosPromiseArr = []
}
let _key = _HTTP_TYPE.CANCLE_DEFAULT
if (config[_HTTP_TYPE.CANCLE_KEY]) {
_key = config[_HTTP_TYPE.CANCLE_KEY]
let _key = HttpConfig._TYPE.CANCLE_DEFAULT
if (config[HttpConfig._TYPE.CANCLE_KEY]) {
_key = config[HttpConfig._TYPE.CANCLE_KEY]
}
window._axiosPromiseArr.push({
key: _key,
......@@ -73,11 +77,11 @@ let initConfig = (config) => {
// logger.info('_axiosPromiseArr', window._axiosPromiseArr)
})
// 判断当前请求是否设置了不显示Loading,默认显示
if (config[_HTTP_TYPE.LOADING] !== false) {
showLoading(config[_HTTP_TYPE.LOADING_TARGET]) // 如果设置了targer,使用设置的target,比如el-table
if (config[HttpConfig._TYPE.LOADING] !== false) {
showLoading(config[HttpConfig._TYPE.LOADING_TARGET]) // 如果设置了targer,使用设置的target,比如el-table
}
_IS_SHOW_TIP = config[_HTTP_TYPE.TIP]
_IS_SHOW_TIP = config[HttpConfig._TYPE.TIP]
// console.log('initConfig', config)
return config
}
......@@ -90,31 +94,33 @@ let onError = (error) => {
logger.error('onError-error', error)
logger.error('onError-error.toString', error.toString())
let result = {
code: 999,
code: HttpCode._OTHER,
message: '',
[_HTTP_TYPE.TIP]: _IS_SHOW_TIP
[HttpConfig._TYPE.TIP]: _IS_SHOW_TIP
}
if (error.toString().indexOf('400') >= 0) {
result.code = 400
result.code = HttpCode._400
result.message = '失败(400):客户端错误!'
} else if (error.toString().indexOf('403') >= 0) {
result.code = 403
result.code = HttpCode._403
result.message = '失败(403):您的权限不足!'
} else if (error.toString().indexOf('404') >= 0) {
result.code = 404
result.code = HttpCode._404
result.message = '失败(404):网络请求不存在!'
} else if (error.toString().indexOf('500') >= 0) {
result.code = 500
result.code = HttpCode._500
result.message = '失败(500):服务器异常!'
} else if (error.toString().indexOf('501') >= 0) {
result.code = 501
result.code = HttpCode._501
result.message = '失败(501):您的操作被取消或不允许提交!'
} else if (error.toString().indexOf('timeout') >= 0) {
result.code = HttpCode._TIMEOUT
result.message = '请求超时,请检查网络连接!'
} else if (error.toString().indexOf('Cancel') >= 0) {
result.code = 1000
result.code = HttpCode._CANCLE
result.message = '取消请求成功!'
} else {// 其他未知异常
result.code = HttpCode._OTHER
result.message = '未知错误:' + error.toString()
}
let errorMsg = error + '-------' + result.message
......@@ -134,12 +140,12 @@ let onResponse = (response) => {
if (response.data && response.data.code >= 0) {
let status = response.data.code
let message = response.data.message
response.data[_HTTP_TYPE.TIP] = response.config[_HTTP_TYPE.TIP]
if (status === 0) {
response.data[HttpConfig._TYPE.TIP] = response.config[HttpConfig._TYPE.TIP]
if (status === HttpCode._0) {
// return response.data
} else if (status === '200' || status === 200) {
} else if (status === HttpCode._200_S || status === HttpCode._200) {
response.data.code = 0
} else if (status === 401) {
} else if (status === HttpCode._401) {
response.data.message = message === '未登录' ? '登陆超时,请重新登录!' : message
$('.tzdDrawing').css('z-index', '1')
} else {
......@@ -170,7 +176,7 @@ instance.interceptors.response.use(onResponse, onError)
json.interceptors.request.use(
config => {
config.headers['Content-Type'] = 'application/json'
config.headers[CommonContentType._CONTENT_TYPE_KEY] = CommonContentType._APPLICATION.JSON
config = initConfig(config)
return config
}, onError)
......@@ -184,7 +190,7 @@ let handleError = (response) => {
let message = response.message
let type = 'error'
switch (code) {
case 401:
case HttpCode._401:
if (resTimer) clearTimeout(resTimer)
resTimer = setTimeout(() => {
hideLoading()
......@@ -204,12 +210,12 @@ let handleError = (response) => {
})
}, 500)
break
case 1000:
case HttpCode._CANCLE:
type = 'info'
break
}
if (response[_HTTP_TYPE.TIP] !== false) {
if (response[HttpConfig._TYPE.TIP] !== false) {
Message({
message: message,
type: type
......@@ -310,12 +316,12 @@ export default {
* @author: li_hongchao
* @date: 2022/1/7 19:55
*/
cancel(id = _HTTP_TYPE.CANCLE_DEFAULT) {// 取消当前网络请求
cancel(id = HttpConfig._TYPE.CANCLE_DEFAULT) {// 取消当前网络请求
if (window._axiosPromiseArr) {
let ele
for (var i = 0; i < window._axiosPromiseArr.length; i++) {
ele = window._axiosPromiseArr[i]
if (id !== _HTTP_TYPE.CANCLE_DEFAULT) {
if (id !== HttpConfig._TYPE.CANCLE_DEFAULT) {
if (ele && id === ele.key && ele.cancle) {
ele.cancle()
delete window._axiosPromiseArr[i]
......@@ -330,22 +336,22 @@ export default {
}
},
closeTip(params = {}) { // 关闭提示
params[_HTTP_TYPE.TIP] = false
return params
},
closeLoad(params = {}) { // 关闭加载进度
params[_HTTP_TYPE.LOADING] = false
return params
},
setId(id = _HTTP_TYPE.CANCLE_DEFAULT) {
let params = {
[_HTTP_TYPE.CANCLE_KEY]: id
}
return params
},
// closeTip(params = {}) { // 关闭提示
// params[HttpConfig._TYPE.TIP] = false
// return params
// },
//
// closeLoad(params = {}) { // 关闭加载进度
// params[HttpConfig._TYPE.LOADING] = false
// return params
// },
//
// setId(id = HttpConfig._TYPE.CANCLE_DEFAULT) {
// let params = {
// [HttpConfig._TYPE.CANCLE_KEY]: id
// }
// return params
// },
// get, post, postform, postdown, postJson
}
......@@ -5,6 +5,8 @@
*/
import HttpConfigUtil from '../../request/HttpConfigUtil'
/**
* Description: _DL_TYPES 队列类型 _CXDL_TYPES 队列中查询队列类型
* <pre>
......@@ -331,4 +333,4 @@ class Gzlzz {
}
module.exports = Gzlzz
export default Gzlzz
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