From 3b03f87a02458f719e2eb4bf112a13441b427d14 Mon Sep 17 00:00:00 2001 From: ‘chensiAb’ <‘chenchenco03@163.com’> Date: Tue, 25 Mar 2025 13:54:34 +0800 Subject: [PATCH] Merge branch 'master' of ssh://dev.zhiheiot.com:29418/mob-components --- _cursor.ai/rules/fit-base-fetcher.mdc | 66 +++++++++++++++------------------ 1 files changed, 30 insertions(+), 36 deletions(-) diff --git "a/_cursor.ai/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md" b/_cursor.ai/rules/fit-base-fetcher.mdc similarity index 78% rename from "_cursor.ai/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md" rename to _cursor.ai/rules/fit-base-fetcher.mdc index 5166145..20ee33f 100644 --- "a/_cursor.ai/201-\350\257\267\346\261\202\345\261\202\345\237\272\347\261\273Fetcher.md" +++ b/_cursor.ai/rules/fit-base-fetcher.mdc @@ -1,25 +1,10 @@ -# 请求层基类 Fetcher.js +--- +description: 数据控制器基类,所有数据控制器都必须继承此类 +globs: +alwaysApply: false +--- -- [请求层基类 Fetcher.js](#请求层基类-fetcherjs) - - [功能说明](#功能说明) - - [引用方法](#引用方法) - - [构造函数](#构造函数) - - [主要方法](#主要方法) - - [`spellURL(devSuffix, serSuffix)`](#spellurldevsuffix-sersuffix) - - [`get(url, data, options)`](#geturl-data-options) - - [`post(url, data, options)`](#posturl-data-options) - - [`query(type, url, data, options)`](#querytype-url-data-options) - - [`stringToCamel(str)`](#stringtocamelstr) - - [`stringToUnderline(str)`](#stringtounderlinestr) - - [`transKeyName(type, json)`](#transkeynametype-json) - - [请求的 options 配置](#请求的-options-配置) - - [`hostType` 主机类型](#hosttype-主机类型) - - [`silence` 静音请求](#silence-静音请求) - - [响应处理](#响应处理) - - [处理流程](#处理流程) - - [前端统一响应数据格式](#前端统一响应数据格式) - - [前端统一响应状态码](#前端统一响应状态码) - - [请求调用](#请求调用) +# 请求层基类 Fetcher.js ## 功能说明 @@ -29,15 +14,14 @@ ## 引用方法 ```js -import { - Fetcher -} from '@components/bases/Fetcher'; +import { Fetcher } from '@components/bases/Fetcher'; ``` ## 构造函数 -构造函数接受一个配置对象 options 作为参数,包含如下属性: -* **urlPrefix** 数组,包含两项,第一项为本地 Mock 的 URL 前缀,第二项为服务器接口的前缀 +构造函数接受一个配置对象作为参数,包含如下属性: + +- **urlPrefix** 数组,包含两项,第一项为本地 Mock 的 URL 前缀,第二项为服务器接口的前缀 ```js class FCommon extends Fetcher { @@ -133,7 +117,7 @@ - `type` (String):请求类型(如 `'get'`、`'post'`) - `url` (String):请求的 URL 地址 - `data` (Object,可选):请求参数 -- `options` (Object,可选):请求配置 +- `options` (Object,可选):请求配置(参照下文) **返回值** - (Promise):返回请求结果的 Promise @@ -195,7 +179,7 @@ **注意事项** - 支持嵌套对象的递归转换 -## 请求的 options 配置 +## 请求 query 的 options 配置 ### `hostType` 主机类型 @@ -277,7 +261,7 @@ } ``` -注意,为了保证接口数据的扩展性,data 只能接 Object 类型,禁止接其他类型 +注意,为了保证接口数据的扩展性,**data 只能接 Object 类型**,禁止接其他类型 ### 前端统一响应状态码 @@ -294,23 +278,31 @@ ```js import { Fetcher } from '@components/bases/Fetcher'; -class FCommon extends Fetcher {} +// 请求集 +class FCommon extends Fetcher { + + getUserInfo(user) { + const url = this.spellURL('getUserInfo', 'User/info'); + const send = {..user}; + return this.post(url, send); + } + +} // 全局单例 export const $fetchCommon = new FCommon(); ``` ```js -import { - $fetchCommon -} from '@fetchers/FCommon'; +import { $fetchCommon } from '@fetchers/FCommon'; -export class PPageName extends Pilot { +// 数据控制器 +export class PUserDetail extends Pilot { - // 在数据控制层中,发请求示例 onLoadUserInfo() { Taro.showLoading(); - $fetchCommon.getUserInfo(this.userId) + // 调用请求集发请求示例 + $fetchCommon.getUserInfo({uid: this.userId}) .then(res => { Taro.hideLoading(); if (!res) { @@ -322,3 +314,5 @@ } ``` + + -- Gitblit v1.9.1