'init_again'
Change-Id: Ib7ecdb9f5baeab1e4681152a57b936edf7475b35
diff --git a/src/services/system/auth.ts b/src/services/system/auth.ts
new file mode 100644
index 0000000..b757618
--- /dev/null
+++ b/src/services/system/auth.ts
@@ -0,0 +1,39 @@
+import { request } from '@umijs/max';
+
+export async function getCaptchaImg(params?: Record<string, any>, options?: Record<string, any>) {
+ return request('/api/captchaImage', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ headers: {
+ isToken: false,
+ },
+ ...(options || {}),
+ });
+}
+
+/** 登录接口 POST /api/login/account */
+export async function login(body: API.LoginParams, options?: Record<string, any>) {
+ return request<API.LoginResult>('/api/login', {
+ method: 'POST',
+ headers: {
+ isToken: false,
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 退出登录接口 POST /api/login/outLogin */
+export async function logout() {
+ return request<Record<string, any>>('/api/logout', {
+ method: 'delete',
+ });
+}
+
+// 获取手机验证码
+export async function getMobileCaptcha(mobile: string) {
+ return request(`/api/login/captcha?mobile=${mobile}`);
+}
diff --git a/src/services/system/config.ts b/src/services/system/config.ts
new file mode 100644
index 0000000..9843daf
--- /dev/null
+++ b/src/services/system/config.ts
@@ -0,0 +1,62 @@
+import { request } from '@umijs/max';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询参数配置列表
+export async function getConfigList(params?: API.System.ConfigListParams) {
+ return request<API.System.ConfigPageResult>('/api/system/config/list', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ params
+ });
+}
+
+// 查询参数配置详细
+export function getConfig(configId: number) {
+ return request<API.System.ConfigInfoResult>(`/api/system/config/${configId}`, {
+ method: 'GET'
+ });
+}
+
+// 新增参数配置
+export async function addConfig(params: API.System.Config) {
+ return request<API.Result>('/api/system/config', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 修改参数配置
+export async function updateConfig(params: API.System.Config) {
+ return request<API.Result>('/api/system/config', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 删除参数配置
+export async function removeConfig(ids: string) {
+ return request<API.Result>(`/api/system/config/${ids}`, {
+ method: 'DELETE'
+ });
+}
+
+// 导出参数配置
+export function exportConfig(params?: API.System.ConfigListParams) {
+ return downLoadXlsx(`/api/system/config/export`, { params }, `config_${new Date().getTime()}.xlsx`);
+}
+
+
+// 刷新参数缓存
+export function refreshConfigCache() {
+ return request<API.Result>('/api/system/config/refreshCache', {
+ method: 'delete'
+ })
+}
diff --git a/src/services/system/dept.ts b/src/services/system/dept.ts
new file mode 100644
index 0000000..ad58807
--- /dev/null
+++ b/src/services/system/dept.ts
@@ -0,0 +1,56 @@
+import { request } from '@umijs/max';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询部门列表
+export async function getDeptList(params?: API.System.DeptListParams) {
+ return request<API.System.DeptPageResult>('/api/system/dept/list', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ params
+ });
+}
+
+// 查询部门列表(排除节点)
+export function getDeptListExcludeChild(deptId: number) {
+ return request(`/api/system/dept/list/exclude/${deptId}`, {
+ method: 'get',
+ });
+}
+
+// 查询部门详细
+export function getDept(deptId: number) {
+ return request<API.System.DeptInfoResult>(`/api/system/dept/${deptId}`, {
+ method: 'GET'
+ });
+}
+
+// 新增部门
+export async function addDept(params: API.System.Dept) {
+ return request<API.Result>('/api/system/dept', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 修改部门
+export async function updateDept(params: API.System.Dept) {
+ return request<API.Result>('/api/system/dept', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 删除部门
+export async function removeDept(ids: string) {
+ return request<API.Result>(`/api/system/dept/${ids}`, {
+ method: 'DELETE'
+ });
+}
diff --git a/src/services/system/dict.ts b/src/services/system/dict.ts
new file mode 100644
index 0000000..5671124
--- /dev/null
+++ b/src/services/system/dict.ts
@@ -0,0 +1,120 @@
+import { request } from '@umijs/max';
+import { DictValueEnumObj } from '@/components/DictTag';
+import { HttpResult } from '@/enums/httpEnum';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+/* *
+ *
+ * @author whiteshader@163.com
+ * @datetime 2021/09/16
+ *
+ * */
+
+// 查询字典类型列表
+export async function getDictTypeList(params?: API.DictTypeListParams) {
+ return request(`/api/system/dict/type/list`, {
+ params: {
+ ...params,
+ },
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ });
+}
+
+// 查询字典类型详细
+export function getDictType(dictId: string) {
+ return request(`/api/system/dict/type/${dictId}`, {
+ method: 'GET',
+ });
+}
+
+// 查询字典数据详细
+export async function getDictValueEnum(dictType: string, isDigital?: boolean): Promise<DictValueEnumObj> {
+ const resp = await request<API.System.DictTypeResult>(`/api/system/dict/data/type/${dictType}`, {
+ method: 'GET',
+ });
+ if(resp.code === HttpResult.SUCCESS) {
+ const opts: DictValueEnumObj = {};
+ resp.data.forEach((item: any) => {
+ opts[item.dictValue] = {
+ text: item.dictLabel,
+ label: item.dictLabel,
+ value: isDigital ? Number(item.dictValue) : item.dictValue,
+ key: item.dictCode,
+ listClass: item.listClass,
+ status: item.listClass };
+ });
+ return opts;
+ } else {
+ return {};
+ }
+}
+
+export async function getDictSelectOption(dictType: string, isDigital?: boolean) {
+ const resp = await request<API.System.DictTypeResult>(`/api/system/dict/data/type/${dictType}`, {
+ method: 'GET',
+ });
+ if (resp.code === 200) {
+ const options: DictValueEnumObj[] = resp.data.map((item) => {
+ return {
+ text: item.dictLabel,
+ label: item.dictLabel,
+ value: isDigital ? Number(item.dictValue) : item.dictValue,
+ key: item.dictCode,
+ listClass: item.listClass,
+ status: item.listClass
+ };
+ });
+ return options;
+ }
+ return [];
+};
+
+// 新增字典类型
+export async function addDictType(params: API.System.DictType) {
+ return request<API.Result>('/api/system/dict/type', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 修改字典类型
+export async function updateDictType(params: API.System.DictType) {
+ return request<API.Result>('/api/system/dict/type', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 删除字典类型
+export async function removeDictType(ids: string) {
+ return request<API.Result>(`/api/system/dict/type/${ids}`, {
+ method: 'DELETE'
+ });
+}
+
+// 导出字典类型
+export function exportDictType(params?: API.System.DictTypeListParams) {
+ return downLoadXlsx(`/api/system/dict/type/export`, { params }, `dict_type_${new Date().getTime()}.xlsx`);
+}
+
+// 获取字典选择框列表
+export async function getDictTypeOptionSelect(params?: API.DictTypeListParams) {
+ return request('/api/system/dict/type/optionselect', {
+ params: {
+ ...params,
+ },
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ });
+}
diff --git a/src/services/system/dictdata.ts b/src/services/system/dictdata.ts
new file mode 100644
index 0000000..f7856e8
--- /dev/null
+++ b/src/services/system/dictdata.ts
@@ -0,0 +1,65 @@
+import { request } from '@umijs/max';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询字典数据列表
+export async function getDictDataList(
+ params?: API.System.DictDataListParams,
+ options?: { [key: string]: any },
+) {
+ return request<API.System.DictDataPageResult>('/api/system/dict/data/list', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ params,
+ ...(options || {}),
+ });
+}
+
+// 查询字典数据详细
+export function getDictData(dictCode: number, options?: { [key: string]: any }) {
+ return request<API.System.DictDataInfoResult>(`/api/system/dict/data/${dictCode}`, {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
+
+// 新增字典数据
+export async function addDictData(params: API.System.DictData, options?: { [key: string]: any }) {
+ return request<API.Result>('/api/system/dict/data', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params,
+ ...(options || {}),
+ });
+}
+
+// 修改字典数据
+export async function updateDictData(params: API.System.DictData, options?: { [key: string]: any }) {
+ return request<API.Result>('/api/system/dict/data', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params,
+ ...(options || {}),
+ });
+}
+
+// 删除字典数据
+export async function removeDictData(ids: string, options?: { [key: string]: any }) {
+ return request<API.Result>(`/api/system/dict/data/${ids}`, {
+ method: 'DELETE',
+ ...(options || {}),
+ });
+}
+
+// 导出字典数据
+export function exportDictData(
+ params?: API.System.DictDataListParams,
+ options?: { [key: string]: any },
+) {
+ return downLoadXlsx(`/api/system/dict/data/export`, { params }, `dict_data_${new Date().getTime()}.xlsx`);
+}
diff --git a/src/services/system/index.ts b/src/services/system/index.ts
new file mode 100644
index 0000000..24ce62d
--- /dev/null
+++ b/src/services/system/index.ts
@@ -0,0 +1,14 @@
+/* eslint-disable */
+// 该文件由 OneAPI 自动生成,请勿手动修改!
+
+import * as Auth from './auth';
+import * as User from './User';
+import * as Dict from './dict';
+import * as Menu from './menu';
+
+export default {
+ Auth,
+ User,
+ Dict,
+ Menu,
+};
diff --git a/src/services/system/menu.ts b/src/services/system/menu.ts
new file mode 100644
index 0000000..b2f411b
--- /dev/null
+++ b/src/services/system/menu.ts
@@ -0,0 +1,61 @@
+import { request } from '@umijs/max';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询菜单权限列表
+export async function getMenuList(params?: API.System.MenuListParams, options?: { [key: string]: any }) {
+ return request<API.System.MenuPageResult>('/api/system/menu/list', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ params,
+ ...(options || {}),
+ });
+}
+
+// 查询菜单权限详细
+export function getMenu(menuId: number, options?: { [key: string]: any }) {
+ return request<API.System.MenuInfoResult>(`/api/system/menu/${menuId}`, {
+ method: 'GET',
+ ...(options || {})
+ });
+}
+
+// 新增菜单权限
+export async function addMenu(params: API.System.Menu, options?: { [key: string]: any }) {
+ return request<API.Result>('/api/system/menu', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params,
+ ...(options || {})
+ });
+}
+
+// 修改菜单权限
+export async function updateMenu(params: API.System.Menu, options?: { [key: string]: any }) {
+ return request<API.Result>('/api/system/menu', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params,
+ ...(options || {})
+ });
+}
+
+// 删除菜单权限
+export async function removeMenu(ids: string, options?: { [key: string]: any }) {
+ return request<API.Result>(`/api/system/menu/${ids}`, {
+ method: 'DELETE',
+ ...(options || {})
+ });
+}
+
+// 查询菜单权限详细
+export function getMenuTree() {
+ return request('/api/system/menu/treeselect', {
+ method: 'GET',
+ });
+}
diff --git a/src/services/system/notice.ts b/src/services/system/notice.ts
new file mode 100644
index 0000000..2c86a08
--- /dev/null
+++ b/src/services/system/notice.ts
@@ -0,0 +1,49 @@
+import { request } from '@umijs/max';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询通知公告列表
+export async function getNoticeList(params?: API.System.NoticeListParams) {
+ return request<API.System.NoticePageResult>('/api/system/notice/list', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ params
+ });
+}
+
+// 查询通知公告详细
+export function getNotice(noticeId: number) {
+ return request<API.System.NoticeInfoResult>(`/api/system/notice/${noticeId}`, {
+ method: 'GET'
+ });
+}
+
+// 新增通知公告
+export async function addNotice(params: API.System.Notice) {
+ return request<API.Result>('/api/system/notice', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 修改通知公告
+export async function updateNotice(params: API.System.Notice) {
+ return request<API.Result>('/api/system/notice', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 删除通知公告
+export async function removeNotice(ids: string) {
+ return request<API.Result>(`/api/system/notice/${ids}`, {
+ method: 'DELETE'
+ });
+}
diff --git a/src/services/system/post.ts b/src/services/system/post.ts
new file mode 100644
index 0000000..3170b89
--- /dev/null
+++ b/src/services/system/post.ts
@@ -0,0 +1,54 @@
+import { request } from '@umijs/max';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询岗位信息列表
+export async function getPostList(params?: API.System.PostListParams) {
+ return request<API.System.PostPageResult>('/api/system/post/list', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ params
+ });
+}
+
+// 查询岗位信息详细
+export function getPost(postId: number) {
+ return request<API.System.PostInfoResult>(`/api/system/post/${postId}`, {
+ method: 'GET'
+ });
+}
+
+// 新增岗位信息
+export async function addPost(params: API.System.Post) {
+ return request<API.Result>('/api/system/post', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 修改岗位信息
+export async function updatePost(params: API.System.Post) {
+ return request<API.Result>('/api/system/post', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 删除岗位信息
+export async function removePost(ids: string) {
+ return request<API.Result>(`/api/system/post/${ids}`, {
+ method: 'DELETE'
+ });
+}
+
+// 导出岗位信息
+export function exportPost(params?: API.System.PostListParams) {
+ return downLoadXlsx(`/api/system/post/export`, { params }, `post_${new Date().getTime()}.xlsx`);
+}
diff --git a/src/services/system/role.ts b/src/services/system/role.ts
new file mode 100644
index 0000000..3836243
--- /dev/null
+++ b/src/services/system/role.ts
@@ -0,0 +1,128 @@
+import { ContentType } from '@/enums/httpEnum';
+import { request } from '@umijs/max';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询角色信息列表
+export async function getRoleList(params?: API.System.RoleListParams) {
+ return request<API.System.RolePageResult>('/api/system/role/list', {
+ method: 'GET',
+ headers: { 'Content-Type': ContentType.FORM_URLENCODED },
+ params
+ });
+}
+
+// 查询角色信息详细
+export function getRole(roleId: number) {
+ return request<API.System.RoleInfoResult>(`/api/system/role/${roleId}`, {
+ method: 'GET'
+ });
+}
+
+// 新增角色信息
+export async function addRole(params: API.System.Role) {
+ return request<API.Result>('/api/system/role', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 修改角色信息
+export async function updateRole(params: API.System.Role) {
+ return request<API.Result>('/api/system/role', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params
+ });
+}
+
+// 删除角色信息
+export async function removeRole(ids: string) {
+ return request<API.Result>(`/api/system/role/${ids}`, {
+ method: 'DELETE'
+ });
+}
+
+// 导出角色信息
+export function exportRole(params?: API.System.RoleListParams) {
+ return downLoadXlsx(`/api/system/role/export`, { params }, `role_${new Date().getTime()}.xlsx`);
+}
+
+// 获取角色菜单列表
+export function getRoleMenuList(id: number) {
+ return request<API.System.RoleMenuResult>(`/api/system/menu/roleMenuTreeselect/${id}`, {
+ method: 'get',
+ });
+}
+
+// 角色数据权限
+export function updateRoleDataScope(data: Record<string, any>) {
+ return request('/api/system/role/dataScope', {
+ method: 'put',
+ data
+ })
+}
+
+// 角色状态修改
+export function changeRoleStatus(roleId: number, status: string) {
+ const data = {
+ roleId,
+ status
+ }
+ return request<API.Result>('/api/system/role/changeStatus', {
+ method: 'put',
+ data: data
+ })
+}
+
+// 查询角色已授权用户列表
+export function allocatedUserList(params?: API.System.RoleListParams) {
+ return request('/api/system/role/authUser/allocatedList', {
+ method: 'get',
+ params
+ })
+}
+
+// 查询角色未授权用户列表
+export function unallocatedUserList(params?: API.System.RoleListParams) {
+ return request('/api/system/role/authUser/unallocatedList', {
+ method: 'get',
+ params
+ })
+}
+
+// 取消用户授权角色
+export function authUserCancel(data: any) {
+ return request<API.Result>('/api/system/role/authUser/cancel', {
+ method: 'put',
+ data: data
+ })
+}
+
+// 批量取消用户授权角色
+export function authUserCancelAll(data: any) {
+ return request<API.Result>('/api/system/role/authUser/cancelAll', {
+ method: 'put',
+ params: data
+ })
+}
+
+// 授权用户选择
+export function authUserSelectAll(data: Record<string, any>) {
+ return request<API.Result>('/api/system/role/authUser/selectAll', {
+ method: 'put',
+ params: data,
+ headers: { 'Content-Type': ContentType.FORM_URLENCODED },
+ })
+}
+
+// 根据角色ID查询部门树结构
+export function getDeptTreeSelect(roleId: number) {
+ return request('/api/system/role/deptTree/' + roleId, {
+ method: 'get'
+ })
+}
diff --git a/src/services/system/user.ts b/src/services/system/user.ts
new file mode 100644
index 0000000..da997bf
--- /dev/null
+++ b/src/services/system/user.ts
@@ -0,0 +1,152 @@
+import { formatTreeData } from '@/utils/tree';
+import { request } from '@umijs/max';
+import { DataNode } from 'antd/es/tree';
+import { downLoadXlsx } from '@/utils/downloadfile';
+
+// 查询用户信息列表
+export async function getUserList(params?: API.System.UserListParams, options?: { [key: string]: any }) {
+ return request<API.System.UserPageResult>('/api/system/user/list', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ params,
+ ...(options || {})
+ });
+}
+
+// 查询用户信息详细
+export function getUser(userId: number, options?: { [key: string]: any }) {
+ return request<API.System.UserInfoResult>(`/api/system/user/${userId}`, {
+ method: 'GET',
+ ...(options || {})
+ });
+}
+
+// 新增用户信息
+export async function addUser(params: API.System.User, options?: { [key: string]: any }) {
+ return request<API.Result>('/api/system/user', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params,
+ ...(options || {})
+ });
+}
+
+// 修改用户信息
+export async function updateUser(params: API.System.User, options?: { [key: string]: any }) {
+ return request<API.Result>('/api/system/user', {
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8',
+ },
+ data: params,
+ ...(options || {})
+ });
+}
+
+// 删除用户信息
+export async function removeUser(ids: string, options?: { [key: string]: any }) {
+ return request<API.Result>(`/api/system/user/${ids}`, {
+ method: 'DELETE',
+ ...(options || {})
+ });
+}
+
+// 导出用户信息
+export function exportUser(params?: API.System.UserListParams, options?: { [key: string]: any }) {
+ return downLoadXlsx(`/api/system/user/export`, { params }, `user_${new Date().getTime()}.xlsx`);
+}
+
+// 用户状态修改
+export function changeUserStatus(userId: number, status: string) {
+ const data = {
+ userId,
+ status
+ }
+ return request<API.Result>('/api/system/user/changeStatus', {
+ method: 'put',
+ data: data
+ })
+}
+
+// 查询用户个人信息
+export function getUserProfile() {
+ return request('/api/system/user/profile', {
+ method: 'get'
+ })
+}
+
+export function updateUserProfile(data: API.CurrentUser) {
+ return request<API.Result>('/api/system/user/profile', {
+ method: 'put',
+ data: data
+ })
+}
+
+// 用户密码重置
+export function resetUserPwd(userId: number, password: string) {
+ const data = {
+ userId,
+ password
+ }
+ return request<API.Result>('/api/system/user/resetPwd', {
+ method: 'put',
+ data: data
+ })
+}
+
+// 用户t个人密码重置
+export function updateUserPwd(oldPassword: string, newPassword: string) {
+ const data = {
+ oldPassword,
+ newPassword
+ }
+ return request<API.Result>('/api/system/user/profile/updatePwd', {
+ method: 'put',
+ params: data
+ })
+}
+
+// 用户头像上传
+export function uploadAvatar(data: any) {
+ return request('/api/system/user/profile/avatar', {
+ method: 'post',
+ data: data
+ })
+}
+
+
+// 查询授权角色
+export function getAuthRole(userId: number) {
+ return request('/system/user/authRole/' + userId, {
+ method: 'get'
+ })
+}
+
+// 保存授权角色
+export function updateAuthRole(data: Record<string, any>) {
+ return request('/system/user/authRole', {
+ method: 'put',
+ params: data
+ })
+}
+
+// 获取数据列表
+export function getDeptTree(params: any): Promise<DataNode[]> {
+ return new Promise((resolve) => {
+ request(`/api/system/user/deptTree`, {
+ method: 'get',
+ params,
+ }).then((res: any) => {
+ if (res && res.code === 200) {
+ const treeData = formatTreeData(res.data);
+ resolve(treeData);
+ } else {
+ resolve([]);
+ }
+ });
+ });
+}