first commit
This commit is contained in:
155
README.md
Normal file
155
README.md
Normal file
@@ -0,0 +1,155 @@
|
||||
|
||||
|
||||
使用 vue3 + javascript 开发项目
|
||||
|
||||
- ✅ Vue3
|
||||
- ✅ JavaScript
|
||||
- ✅ Pinia
|
||||
- ✅ Pnpm
|
||||
- ✅ Sass
|
||||
|
||||
## 工具库 utils
|
||||
|
||||
### 请求库
|
||||
|
||||
用作请求接口的,封装的 uni.request,返回一个 Promise。
|
||||
|
||||
**使用示例**
|
||||
|
||||
- request(options, [config])
|
||||
|
||||
**options参考**
|
||||
|
||||
| 名称 | 类型 | 必填 | 默认值 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| url | `string` | 是 | - | 接口地址,示例:`/api/user/get` |
|
||||
| method | `string` | 否 | GET | 可选项 `GET` `POST` `PUT` `DELETE` `OPTIONS` 等,参考 uni.request method 参数有效值 |
|
||||
| data | `object` | 否 | - | 提交参数 |
|
||||
| header | `object` | 否 | - | 请求头,示例 `{ token: '你的 token'}` |
|
||||
|
||||
**config参考**
|
||||
|
||||
| 名称 | 类型 | 必填 | 默认值 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| baseUrl | `string` | 否 | - | 基础接口地址, 读取 .env 的 VITE_APP_BASE_URL |
|
||||
| isReturnDefaultResponse | `bool` | 否 | false | 返回默认响应体,不做额外处理, 原样返回 |
|
||||
| isTransformResponse | `bool` | 否 | true | 转换响应体,false 直接返回 data, true 自动处理业务代码报错提示等(前提 isReturnDefaultResponse 是 false) |
|
||||
| ignoreCancel | `bool` | 否 | false | 忽略取消重复请求 |
|
||||
| retryCount | `number` | 否 | 2 | 重试次数 |
|
||||
| retryTimeout | `number` | 否 | 300 | 重试延迟 |
|
||||
| withToken | `bool` | 否 | true | 携带 token |
|
||||
| isAuth | `bool` | 否 | false | 接口是否鉴权,暂时无用,可在拦截器中扩展 |
|
||||
|
||||
#### 请求示例
|
||||
|
||||
🏷️ 所有接口请求都必须放在 `src/api/` 目录下统一维护
|
||||
|
||||
```javascript
|
||||
import request from '@/utils/request'
|
||||
|
||||
// get 请求
|
||||
export function getCaptchaImage() {
|
||||
return request.get({
|
||||
url: '/api/captchaImage',
|
||||
})
|
||||
}
|
||||
|
||||
// post 请求
|
||||
export function login(data) {
|
||||
return request.post({
|
||||
url: '/api/user/login',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### @/utils/cache.js
|
||||
|
||||
缓存工具
|
||||
|
||||
```javascript
|
||||
import cache from '@/utils/cache.js'
|
||||
|
||||
// 设置缓存
|
||||
cache.set('token', '1b1b1b1b1b1')
|
||||
|
||||
// 获取缓存
|
||||
cache.get('token')
|
||||
// 1b1b1b1b1b1
|
||||
|
||||
// 删除缓存
|
||||
cache.remove('token')
|
||||
|
||||
// 获取时间戳
|
||||
cache.time()
|
||||
// 1660060800
|
||||
```
|
||||
|
||||
### @/utils/formatter.js
|
||||
|
||||
格式化工具
|
||||
|
||||
```javascript
|
||||
import { maskPhoneNumber, maskIdNumber} from '@/utils/formatter.js'
|
||||
|
||||
// 手机号加掩码
|
||||
maskPhoneNumber('15112345678')
|
||||
// 151****5678
|
||||
|
||||
// 证件号码加掩码
|
||||
maskIdNumber('110101198506020011')
|
||||
// 1101***********0011
|
||||
```
|
||||
|
||||
### @/utils/message.js
|
||||
|
||||
操作反馈
|
||||
|
||||
```javascript
|
||||
import {
|
||||
showToast,
|
||||
showAlert,
|
||||
showLoading,
|
||||
hideLoading,
|
||||
useMessage
|
||||
} from '@/utils/message.js'
|
||||
|
||||
// toast
|
||||
showToast('操作成功')
|
||||
|
||||
// 模态确认框
|
||||
showAlert('操作成功,请确认')
|
||||
|
||||
// 加载 loading
|
||||
showLoading('拼命加载中')
|
||||
hideLoading()
|
||||
|
||||
// 组合式api
|
||||
const message = useMessage()
|
||||
message.toast('提交成功')
|
||||
message.success('操作成功')
|
||||
message.error('操作失败')
|
||||
message.alert('操作完成')
|
||||
message.showLoading()
|
||||
message.hideLoading()
|
||||
```
|
||||
|
||||
### @/utils/validate.js
|
||||
|
||||
验证库
|
||||
|
||||
```javascript
|
||||
import {
|
||||
isUrl,
|
||||
isPhoneNumber,
|
||||
isIdCardValid,
|
||||
isHttpProtocol,
|
||||
isHttpsProtocol
|
||||
} from '@/utils/validate.js'
|
||||
|
||||
isUrl('http://www.baidu.com') // true
|
||||
isPhoneNumber('15112345601') // true
|
||||
isIdCardValid('110101198506020011') // true
|
||||
isHttpProtocol('ftp://root@192.168.1.1') // false
|
||||
```
|
||||
Reference in New Issue
Block a user