diff --git a/src/api/index.js b/src/api/index.js index 7acc1092..25e3c641 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,162 +1,38 @@ -import config from "@/config"; -import http from "@/utils/request"; - /** * 所有接口集合 * 每个接口对象需含有以下字段 - * @url 接口的URL地址 - * @name 接口名称 - * @get|post 返回请求接口的函数 + * 开发者可将不同的业务模块细化分离处理 + * @param {接口地址} url + * @param {接口名称描述} name + * @param {请求类型 get|post|put|patch|delete} type */ +//公共模块 +import common from './model/common' +//用户模块 +import user from './model/user' +//角色模块 +import role from './model/role' +//字典模块 +import dic from './model/dic' +//应用模块 +import app from './model/app' +//菜单模块 +import menu from './model/menu' +//日志模块 +import log from './model/log' +//演示模块 +import demo from './model/demo' + const api = { - default: { - upload: { - url: `${config.API_URL}/upload`, - name: "文件上传", - post: async function(data){ - return await http.post(this.url, data); - } - } - }, - user: { - login: { - url: `${config.API_URL}/login`, - name: "登录获取用户菜单和权限,全部权限", - get: async function(params={}){ - return await http.get(this.url, params); - } - }, - login_demo: { - url: `${config.API_URL}/login_user`, - name: "登录获取用户菜单和权限,部分权限", - get: async function(params={}){ - return await http.get(this.url, params); - } - }, - list: { - url: `${config.API_URL}/user_list`, - name: "获取用户列表", - get: async function(params={}){ - return await http.get(this.url, params); - } - }, - save: { - url: `${config.API_URL}/post`, - name: "新增编辑用户", - post: async function(params={}){ - return await http.post(this.url, params); - } - }, - del: { - url: `${config.API_URL}/post`, - name: "删除用户", - post: async function(params={}){ - return await http.post(this.url, params); - } - } - }, - role: { - select: { - url: `${config.API_URL}/role`, - name: "角色选择列表", - get: async function(){ - return await http.get(this.url); - } - }, - list: { - url: `${config.API_URL}/role`, - name: "角色列表", - get: async function(){ - return await http.get(this.url); - } - } - }, - dic: { - list: { - url: `${config.API_URL}/dic_list`, - name: "字典列表", - get: async function(){ - return await http.get(this.url); - } - }, - info: { - url: `${config.API_URL}/dic_info`, - name: "字典明细", - get: async function(params){ - return await http.get(this.url, params); - } - }, - get: { - url: `${config.API_URL}/dic`, - name: "获取字典数据", - get: async function(params){ - return await http.get(this.url, params); - } - } - }, - app: { - list: { - url: `${config.API_URL}/app`, - name: "应用列表", - get: async function(){ - return await http.get(this.url); - } - } - }, - menu: { - list: { - url: `${config.API_URL}/login`, - name: "菜单管理", - get: async function(){ - // 这里接口对象偷懒重复了登录接口 - var res = await http.get(this.url); - res.data = res.data.menuList; - return res; - } - } - }, - log: { - list: { - url: `${config.API_URL}/loglist`, - name: "日志列表", - get: async function(params){ - return await http.get(this.url, params); - } - } - }, - demo: { - page: { - url: `${config.API_URL}/page`, - name: "分页列表", - get: async function(params){ - return await http.get(this.url, params); - } - }, - upload: { - url: `${config.API_URL}/upload`, - name: "文件上传接口", - post: async function(data){ - return await http.post(this.url, data); - } - }, - select: { - url: `${config.API_URL}/json/select.json`, - name: "下拉菜单数据", - get: async function(data){ - return await http.get(this.url, data); - } - }, - demolist: { - list: { - url: `${config.API_URL}/json/list.json`, - name: "列表数据", - get: async function(data){ - return await http.get(this.url, data); - } - } - } - } + common, + user, + role, + dic, + app, + menu, + log, + demo } export default api; diff --git a/src/api/model/app.js b/src/api/model/app.js new file mode 100644 index 00000000..4c15e046 --- /dev/null +++ b/src/api/model/app.js @@ -0,0 +1,12 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + list: { + url: `${config.API_URL}/app`, + name: "应用列表", + get: async function(){ + return await http.get(this.url); + } + } +} diff --git a/src/api/model/common.js b/src/api/model/common.js new file mode 100644 index 00000000..812c5b90 --- /dev/null +++ b/src/api/model/common.js @@ -0,0 +1,12 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + upload: { + url: `${config.API_URL}/upload`, + name: "文件上传", + post: async function(data){ + return await http.post(this.url, data); + } + } +} diff --git a/src/api/model/demo.js b/src/api/model/demo.js new file mode 100644 index 00000000..05f5e70d --- /dev/null +++ b/src/api/model/demo.js @@ -0,0 +1,35 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + page: { + url: `${config.API_URL}/page`, + name: "分页列表", + get: async function(params){ + return await http.get(this.url, params); + } + }, + upload: { + url: `${config.API_URL}/upload`, + name: "文件上传接口", + post: async function(data){ + return await http.post(this.url, data); + } + }, + select: { + url: `${config.API_URL}/json/select.json`, + name: "下拉菜单数据", + get: async function(data){ + return await http.get(this.url, data); + } + }, + demolist: { + list: { + url: `${config.API_URL}/json/list.json`, + name: "列表数据", + get: async function(data){ + return await http.get(this.url, data); + } + } + } +} \ No newline at end of file diff --git a/src/api/model/dic.js b/src/api/model/dic.js new file mode 100644 index 00000000..6fc799bd --- /dev/null +++ b/src/api/model/dic.js @@ -0,0 +1,26 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + list: { + url: `${config.API_URL}/dic_list`, + name: "字典列表", + get: async function(){ + return await http.get(this.url); + } + }, + info: { + url: `${config.API_URL}/dic_info`, + name: "字典明细", + get: async function(params){ + return await http.get(this.url, params); + } + }, + get: { + url: `${config.API_URL}/dic`, + name: "获取字典数据", + get: async function(params){ + return await http.get(this.url, params); + } + } +} diff --git a/src/api/model/log.js b/src/api/model/log.js new file mode 100644 index 00000000..5588f251 --- /dev/null +++ b/src/api/model/log.js @@ -0,0 +1,12 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + list: { + url: `${config.API_URL}/loglist`, + name: "日志列表", + get: async function(params){ + return await http.get(this.url, params); + } + } +} \ No newline at end of file diff --git a/src/api/model/menu.js b/src/api/model/menu.js new file mode 100644 index 00000000..266a0948 --- /dev/null +++ b/src/api/model/menu.js @@ -0,0 +1,15 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + list: { + url: `${config.API_URL}/login`, + name: "菜单管理", + get: async function(){ + // 这里接口对象偷懒重复了登录接口 + var res = await http.get(this.url); + res.data = res.data.menuList; + return res; + } + } +} diff --git a/src/api/model/role.js b/src/api/model/role.js new file mode 100644 index 00000000..7c1c3287 --- /dev/null +++ b/src/api/model/role.js @@ -0,0 +1,19 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + select: { + url: `${config.API_URL}/role`, + name: "角色选择列表", + get: async function(){ + return await http.get(this.url); + } + }, + list: { + url: `${config.API_URL}/role`, + name: "角色列表", + get: async function(){ + return await http.get(this.url); + } + } +} diff --git a/src/api/model/user.js b/src/api/model/user.js new file mode 100644 index 00000000..f2608a40 --- /dev/null +++ b/src/api/model/user.js @@ -0,0 +1,40 @@ +import config from "@/config" +import http from "@/utils/request" + +export default { + login: { + url: `${config.API_URL}/login`, + name: "登录获取用户菜单和权限,全部权限", + get: async function(params={}){ + return await http.get(this.url, params); + } + }, + login_demo: { + url: `${config.API_URL}/login_user`, + name: "登录获取用户菜单和权限,部分权限", + get: async function(params={}){ + return await http.get(this.url, params); + } + }, + list: { + url: `${config.API_URL}/user_list`, + name: "获取用户列表", + get: async function(params={}){ + return await http.get(this.url, params); + } + }, + save: { + url: `${config.API_URL}/post`, + name: "新增编辑用户", + post: async function(params={}){ + return await http.post(this.url, params); + } + }, + del: { + url: `${config.API_URL}/post`, + name: "删除用户", + post: async function(params={}){ + return await http.post(this.url, params); + } + } +} \ No newline at end of file diff --git a/src/components/scEditor/index.vue b/src/components/scEditor/index.vue index d2cc5e85..6b73ff28 100644 --- a/src/components/scEditor/index.vue +++ b/src/components/scEditor/index.vue @@ -72,7 +72,7 @@ const data = new FormData(); data.append("file", blobInfo.blob() ,blobInfo.filename()); try { - const res = await API.default.upload.post(data) + const res = await API.common.upload.post(data) success(res.data.src) }catch (error) { failure("Image upload failed") diff --git a/src/config/upload.js b/src/config/upload.js index e57d1b7c..7e8393e6 100644 --- a/src/config/upload.js +++ b/src/config/upload.js @@ -3,7 +3,7 @@ import API from "@/api"; //上传配置 export default { - apiObj: API.default.upload, //上传请求API对象 + apiObj: API.common.upload, //上传请求API对象 maxSize: 10, //最大文件大小 默认10MB parseData: function (res) { return { diff --git a/src/utils/request.js b/src/utils/request.js index 9a70111f..201428e2 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -64,35 +64,100 @@ var http = { /** get 请求 * @param {接口地址} url * @param {请求参数} params + * @param {参数} config */ - get: function(url, params={}, headers={}) { + get: function(url, params={}, config={}) { return new Promise((resolve, reject) => { - axios.get(url, { - params: params, - headers: headers - }) - .then((response) => { - resolve(response.data); - }) - .catch((error) => { - reject(error); - }); + axios({ + method: 'get', + url: url, + params: params, + ...config + }).then((response) => { + resolve(response.data); + }).catch((error) => { + reject(error); + }) }) }, /** post 请求 * @param {接口地址} url - * @param {请求参数} params + * @param {请求参数} data + * @param {参数} config */ - post: function(url, params={}, headers={}) { + post: function(url, data={}, config={}) { return new Promise((resolve, reject) => { - axios.post(url, params, {headers: headers}) - .then((response) => { - resolve(response.data); - }) - .catch((error) => { - reject(error); - }); + axios({ + method: 'post', + url: url, + data: data, + ...config + }).then((response) => { + resolve(response.data); + }).catch((error) => { + reject(error); + }) + }) + }, + + /** put 请求 + * @param {接口地址} url + * @param {请求参数} data + * @param {参数} config + */ + put: function(url, data={}, config={}) { + return new Promise((resolve, reject) => { + axios({ + method: 'put', + url: url, + data: data, + ...config + }).then((response) => { + resolve(response.data); + }).catch((error) => { + reject(error); + }) + }) + }, + + /** patch 请求 + * @param {接口地址} url + * @param {请求参数} data + * @param {参数} config + */ + patch: function(url, data={}, config={}) { + return new Promise((resolve, reject) => { + axios({ + method: 'patch', + url: url, + data: data, + ...config + }).then((response) => { + resolve(response.data); + }).catch((error) => { + reject(error); + }) + }) + }, + + /** delete 请求 + * @param {接口地址} url + * @param {请求参数} data + * @param {参数} config + */ + delete: function(url, data={}, config={}) { + return new Promise((resolve, reject) => { + axios({ + method: 'delete', + url: url, + data: data, + ...config + }).then((response) => { + resolve(response.data); + }).catch((error) => { + reject(error); + }) }) } }