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