You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

api.md 6.5 KiB

4 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # 力软框架移动端 · API 文档
  2. 以下 API 均定义在 **/common/mixins.js** 文件中,其中定义的方法、计算属性,会挂载到每一个 .vue 文件的 `this` 对象上。
  3. 在任一 .vue 文件中,或是将通过 mixins 混入到 vue 页面的文件中,您都可以直接使用 `this.*` 的方式来调用这些 API。
  4. ## 常用变量
  5. - `this.API`: 当前后台接口地址;
  6. - `this.PATH`: 当前页面路径,例如首页是 `/pages/home`;
  7. - `this.DEV`: 当前是否是开发模式;
  8. - `this.APP_VERSION`: 当前 App 端版本号,定义在 /config.js 里;
  9. - `this.PLATFORM`: 当前平台英文简称,取值 'weixin'/'alipay'/'dingtalk'/'h5'/'app'/'unknown';
  10. - `this.PLATFORM_TEXT`: 当前平台中文全称,取值 '微信小程序'/'支付宝小程序'/'钉钉小程序'/'移动 Web'/'手机App'/'(未知)'。
  11. ## 网络请求
  12. 使用网络请求的 API 时,地址均只需要填写路径即可,无需填写完整的地址;且均集成了力软后台的身份验证,无需额外配置 token、loginMark 等字段。
  13. 这些方法均是异步(async)方法,您可以使用 `await` 来等待其返回,或使用 `.then( result => { /* ... */} )` 的回调方式。
  14. 上层封装的版本:
  15. (出错时均返回 null;如果配置了 errorTips 则出错时还会显示错误提示;如果用户登录状态失效,会强制跳转到登录页)
  16. - `this.HTTP_GET(url, data, errorTips)`: 发起一个 GET 请求,返回后台响应的数据;
  17. - `this.HTTP_POST(url, data, errorTips)`: 发起一个 POST 请求,返回后台响应的数据;
  18. - `this.HTTP_UPLOAD(filePath, formData)`: 上传一个文件,返回后台响应的数据,`filePath` 是文件的临时路径,`formData` 是上传时额外带的请求参数;
  19. - `this.HTTP_DOWNLOAD(formData)`: 下载一个文件,返回下载后文件的临时路径,`formData` 是额外带的请求参数。
  20. 请求服务端数据:
  21. - `this.FETCH_DATASOURCE(code)`: 请求指定 code 编码的数据源数据;
  22. - `this.FETCH_ENCODE(rulecode)`: 请求指定规则编号的表单编码数据;
  23. - `this.FETCH_FILEINFO(fileId)`: 请求指定 ID 的附件文件信息。
  24. 简易封装的版本:
  25. (以下网络请求的返回值均为一个数组,与 uni-app 原生的网络请求方法的返回值相同;返回值第一项 `error` 如果不为空表示发生了网络错误)
  26. - `this.GET(url, data, header)`: 发起一个 GET 请求,返回值为 `[errpr, { statusCode, header, data }]`;
  27. - `this.POST(url, data, header)`: 发起一个 POST 请求,返回值为 `[errpr, { statusCode, header, data }]`;
  28. - `this.UPLOAD(url, filePath, fromData)`: 上传一个文件,返回值为 `[error, { data, statusCode }]`;
  29. - `this.DOWNLOAD(url)`: 下载一个文件,返回值为 `[error, { tempFilePath, statusCode }]`。
  30. 您也可以使用 uni-app 提供的 [网络请求 API](https://uniapp.dcloud.io/api/request/request),其中包含了更丰富的方法。
  31. 注意 uni-app 的 API 对钉钉小程序兼容性较差,如需使用钉钉小程序,请充分测试。
  32. ## 全局变量
  33. 这些变量只是在本次启动 App 时可用,重新启动 App 后会被重置;如需持久化储存数据在客户端,使用 uni-app 的[数据缓存 API](https://uniapp.dcloud.io/api/storage/storage?id=setstorage)。
  34. 注意:自行添加的全局变量,需要在 /config.js 的 `globalVariables` 字段中进行注册。
  35. - `this.CONFIG(path)`: 获取一个设置在 /config.js 中的配置项;传入参数是配置项的访问路径,例如配置项「全局头像是否显示为圆形」的路径为 `"pageConfig.roundAvatar"`;
  36. - `this.SET_GLOBAL(key, value)`: 以指定键名设置一个全局变量;
  37. - `this.GET_GLOBAL(key)`: 以指定键名获取一个全局变量;
  38. - `this.CLEAR_GLOBAL()`: 清除所有全局变量,一般用于用户注销的场合;
  39. - `this.SET_PARAM(obj)`: 设置一个跨页面变量,用于复杂参数的页面传参;
  40. - `this.GET_PARAM()`: 获取之前设置的跨页面变量。
  41. 力软框架内置变量:
  42. - `this.DEV_ONLY_GLOBAL`: 【仅开发环境下可用】当前全局对象;仅可用于开发过程中观察数据变化;
  43. - `this.GET_GLOBAL('loginUser')`: 当前登录用户的用户信息对象;
  44. - `this.GET_GLOBAL('token')`: 【身份验证字段】用户令牌;
  45. - `this.GET_GLOBAL('loginMark`: 【身份验证字段】登录设备 ID,由客户端生成,可以使用设备号或随机字符串;
  46. - `this.GET_GLOBAL('company')`: 全局数据,所有公司列表;
  47. - `this.GET_GLOBAL('department')`: 全局数据,所有部门列表;
  48. - `this.GET_GLOBAL('user')`: 全局数据,所有职员列表;
  49. - `this.GET_GLOBAL('dataDictionary')`: 全局数据,数据字典。
  50. 已登录用户,可以通过 `this.FETCH_CLIENTDATA()` (异步) API 来拉取公司、部门、用户列表以及数据字典。
  51. ## 工具方法
  52. - `this.MD5(str)`: 获取指定字符串的 MD5 码,用于处理密码;
  53. - `this.GUID(joinChar)`: 用于生成 GUID;默认的分隔符是下划线 `_`,可以传入一个字符串参数来自定义分隔符;
  54. - `this.COPY(obj)`: 创建目标对象的拷贝,使用 JSON 序列化的方式;
  55. - `this.URL_QUERY(obj, auth=false)`: 将一个对象转换成 GET 请求参数字符串的形式(不包括问号),第二个参数表示是否加入身份验证信息(默认 false);
  56. - `this.CONVERT_HTML(str)`: 用于转义 HTML,例如将 `&amp;` 替换为 `<`,用于表单中的 html 区块;
  57. - `this.TABLEITEM_DATEFORMAT(date)`: 将时间日期字符串格式化为列表项所使用的的格式;举例:是当天的时间:`['今天 8:30']`,是当年年度:`['5月22日', '8:30']`,不是当前年度:`['2019-05-22']`;返回值也可以直接当做字符串使用,会自动进行转化;
  58. - `this.MP_SHARE_ENCODE(pageParam, query, pagePath)`: 创建小程序分享消息时使用,其他用户点开分享消息后会跳转到 pagePath 参数的页面,并且携带 pageParam 和 query 作为参数,该函数自动将这些参数格式化并编码成查询字符串;
  59. - `this.MP_SHARE_DECODE(shareInfo)`: 解析小程序分享消息,自动获取参数并跳转页面;
  60. - `this.FETCH_CLIENTDATA()`: 【异步】拉取客户端数据,包括:数据字典、公司/部门/人员数据。
  61. ## uni-app 的 API
  62. 以 uni.* 开头的 API 为未经力软框架封装的 API。您也可以自行进行封装。
  63. 更多 API 请查看 uni-app 的[官方 API 文档](https://uniapp.dcloud.io/api/README)。