@hlw-uni/mp-cli 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +0 -0
- package/package.json +37 -37
- package/templates/mp-toutiao/base/.env.dev +2 -0
- package/templates/mp-toutiao/base/.env.prod +2 -0
- package/templates/mp-toutiao/base/package.json +1 -0
- package/templates/mp-toutiao/base/src/api/ad.ts +31 -0
- package/templates/mp-toutiao/base/src/api/config.ts +46 -0
- package/templates/mp-toutiao/base/src/api/feedback.ts +120 -0
- package/templates/mp-toutiao/base/src/api/help.ts +30 -51
- package/templates/mp-toutiao/base/src/api/index.ts +9 -1
- package/templates/mp-toutiao/base/src/api/login.ts +45 -0
- package/templates/mp-toutiao/base/src/api/notice.ts +30 -0
- package/templates/mp-toutiao/base/src/api/tools.ts +71 -0
- package/templates/mp-toutiao/base/src/api/user.ts +16 -38
- package/templates/mp-toutiao/base/src/env.d.ts +1 -0
- package/templates/mp-toutiao/base/src/pages.json +1 -1
- package/templates/mp-toutiao/base/src/stores/user.ts +1 -25
- package/templates/mp-toutiao/base/tsconfig.json +3 -1
- package/templates/mp-weixin/base/.env.dev +1 -0
- package/templates/mp-weixin/base/.env.prod +1 -0
- package/templates/mp-weixin/base/package.json +1 -0
- package/templates/mp-weixin/base/src/api/ad.ts +31 -0
- package/templates/mp-weixin/base/src/api/config.ts +46 -0
- package/templates/mp-weixin/base/src/api/feedback.ts +120 -0
- package/templates/mp-weixin/base/src/api/help.ts +30 -51
- package/templates/mp-weixin/base/src/api/index.ts +9 -1
- package/templates/mp-weixin/base/src/api/login.ts +45 -0
- package/templates/mp-weixin/base/src/api/notice.ts +30 -0
- package/templates/mp-weixin/base/src/api/tools.ts +71 -0
- package/templates/mp-weixin/base/src/api/user.ts +16 -38
- package/templates/mp-weixin/base/src/env.d.ts +1 -0
- package/templates/mp-weixin/base/src/pages.json +1 -1
- package/templates/mp-weixin/base/src/stores/user.ts +3 -27
- package/templates/mp-toutiao/base/src/api/auth.ts +0 -67
- package/templates/mp-weixin/base/src/api/auth.ts +0 -67
package/bin/cli.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
2
|
+
"name": "@hlw-uni/mp-cli",
|
|
3
|
+
"version": "1.0.15",
|
|
4
|
+
"description": "uniapp 小程序脚手架生成器",
|
|
5
|
+
"main": "bin/cli.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"hlw-uni-mp": "./bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"uniapp",
|
|
11
|
+
"scaffold",
|
|
12
|
+
"weixin",
|
|
13
|
+
"toutiao",
|
|
14
|
+
"miniprogram"
|
|
15
|
+
],
|
|
16
|
+
"author": "hlw2326",
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"chalk": "^4.1.2",
|
|
20
|
+
"commander": "^11.1.0",
|
|
21
|
+
"fs-extra": "^11.2.0",
|
|
22
|
+
"inquirer": "^8.2.7",
|
|
23
|
+
"ora": "^5.4.1"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/fs-extra": "^11.0.4",
|
|
27
|
+
"@types/node": "^20.11.0",
|
|
28
|
+
"esbuild": "^0.28.0",
|
|
29
|
+
"tsx": "^4.19.0"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"dev": "tsx bin/cli.ts",
|
|
33
|
+
"create": "tsx bin/cli.ts create",
|
|
34
|
+
"build": "esbuild bin/cli.ts --bundle --platform=node --outfile=bin/cli.js --format=cjs --external:fs-extra --external:inquirer --external:chalk --external:commander --external:ora --external:path --external:fs",
|
|
35
|
+
"prepublish": "pnpm build",
|
|
36
|
+
"postbuild": "node scripts/fix-templates-path.js"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"@dcloudio/uni-components": "3.0.0-4080420251103001",
|
|
13
13
|
"@dcloudio/uni-mp-toutiao": "3.0.0-4080420251103001",
|
|
14
14
|
"@hlw-uni/mp-core": "workspace:*",
|
|
15
|
+
"@hlw-uni/mp-vue": "^1.0.0",
|
|
15
16
|
"@vueuse/core": "^10.9.0",
|
|
16
17
|
"pinia": "^2.1.7",
|
|
17
18
|
"pinia-plugin-unistorage": "^1.2.3",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 广告配置接口
|
|
3
|
+
* 控制器:Ad (extends Base,无需登录)
|
|
4
|
+
*/
|
|
5
|
+
import { http } from "@hlw-uni/mp-core";
|
|
6
|
+
import { v1 } from "./config";
|
|
7
|
+
|
|
8
|
+
/** 广告单元 */
|
|
9
|
+
export interface AdUnit {
|
|
10
|
+
id: number;
|
|
11
|
+
name: string;
|
|
12
|
+
unit_id: string;
|
|
13
|
+
ad_type: string;
|
|
14
|
+
position: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** 广告配置响应 */
|
|
18
|
+
export interface AdConfigResult {
|
|
19
|
+
list: AdUnit[];
|
|
20
|
+
map: Record<string, AdUnit>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 获取广告配置
|
|
25
|
+
*/
|
|
26
|
+
export function getAdConfig() {
|
|
27
|
+
return http.request<AdConfigResult>({
|
|
28
|
+
url: v1("ad/config"),
|
|
29
|
+
method: "GET",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API 配置中心
|
|
3
|
+
*
|
|
4
|
+
* 后端 ThinkAdmin 插件路由规则:
|
|
5
|
+
* /{plugin}/api.v{version}.{controller}/{method}
|
|
6
|
+
*
|
|
7
|
+
* 使用方式:
|
|
8
|
+
* api("ad/config") // => "/plugin-qz/api.v1.ad/config" (默认版本)
|
|
9
|
+
* api("ad/config", "v2") // => "/plugin-qz/api.v2.ad/config" (指定版本)
|
|
10
|
+
* v1("ad/config") // => "/plugin-qz/api.v1.ad/config" (语法糖)
|
|
11
|
+
* v2("ad/config") // => "/plugin-qz/api.v2.ad/config" (语法糖)
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** 插件名称(从 .env 读取) */
|
|
15
|
+
export const PLUGIN_NAME = import.meta.env.VITE_PLUGIN_NAME;
|
|
16
|
+
if (!PLUGIN_NAME) throw new Error("[api] 请在 .env 中配置 VITE_PLUGIN_NAME");
|
|
17
|
+
|
|
18
|
+
/** 默认 API 版本 */
|
|
19
|
+
export const API_VERSION = "v1";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 构建 API 请求路径
|
|
23
|
+
*
|
|
24
|
+
* @param path "controller/method" 格式,如 "ad/config"、"feedback/my"
|
|
25
|
+
* @param version 可选版本号,默认使用 API_VERSION
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* api("ad/config") // => "/plugin-qz/api.v1.ad/config"
|
|
29
|
+
* api("help/list") // => "/plugin-qz/api.v1.help/list"
|
|
30
|
+
* api("help/list", "v2") // => "/plugin-qz/api.v2.help/list"
|
|
31
|
+
*/
|
|
32
|
+
export function api(path: string, version: string = API_VERSION): string {
|
|
33
|
+
const i = path.indexOf("/");
|
|
34
|
+
if (i === -1) throw new Error(`[api] path 格式错误,需含 "/": "${path}"`);
|
|
35
|
+
return `/${PLUGIN_NAME}/api.${version}.${path.slice(0, i)}/${path.slice(i + 1)}`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 语法糖:固定版本的路径构建器
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* v1("ad/config") // => "/plugin-qz/api.v1.ad/config"
|
|
43
|
+
* v2("help/list") // => "/plugin-qz/api.v2.help/list"
|
|
44
|
+
*/
|
|
45
|
+
export const v1 = (path: string) => api(path, "v1");
|
|
46
|
+
export const v2 = (path: string) => api(path, "v2");
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 反馈建议接口
|
|
3
|
+
* 控制器:Feedback (extends Auth,需要登录)
|
|
4
|
+
*/
|
|
5
|
+
import { http } from "@hlw-uni/mp-core";
|
|
6
|
+
import { v1 } from "./config";
|
|
7
|
+
|
|
8
|
+
/** 反馈类型 */
|
|
9
|
+
export interface FeedbackType {
|
|
10
|
+
id: number;
|
|
11
|
+
name: string;
|
|
12
|
+
code: string;
|
|
13
|
+
sort: number;
|
|
14
|
+
status: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** 反馈项 */
|
|
18
|
+
export interface FeedbackItem {
|
|
19
|
+
id: number;
|
|
20
|
+
user_id: string;
|
|
21
|
+
type: string;
|
|
22
|
+
type_name?: string;
|
|
23
|
+
content: string;
|
|
24
|
+
images: string[];
|
|
25
|
+
contact: string;
|
|
26
|
+
status: number;
|
|
27
|
+
status_label?: string;
|
|
28
|
+
create_at: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** 反馈回复 */
|
|
32
|
+
export interface FeedbackReply {
|
|
33
|
+
id: number;
|
|
34
|
+
feedback_id: number;
|
|
35
|
+
/** 0=用户 1=管理员 */
|
|
36
|
+
sender_type: number;
|
|
37
|
+
content: string;
|
|
38
|
+
create_at: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** 反馈详情(含聊天记录) */
|
|
42
|
+
export interface FeedbackDetail extends FeedbackItem {
|
|
43
|
+
replies: FeedbackReply[];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** 反馈统计 */
|
|
47
|
+
export interface FeedbackStats {
|
|
48
|
+
pending: number;
|
|
49
|
+
completed: number;
|
|
50
|
+
total: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* 获取反馈类型列表
|
|
55
|
+
*/
|
|
56
|
+
export function getFeedbackTypes() {
|
|
57
|
+
return http.request<{ list: FeedbackType[] }>({
|
|
58
|
+
url: v1("feedback/types"),
|
|
59
|
+
method: "GET",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 提交反馈
|
|
65
|
+
*/
|
|
66
|
+
export function submitFeedback(data: {
|
|
67
|
+
type?: string;
|
|
68
|
+
content: string;
|
|
69
|
+
contact?: string;
|
|
70
|
+
images?: string[] | string;
|
|
71
|
+
}) {
|
|
72
|
+
return http.request<{ id: number }>({
|
|
73
|
+
url: v1("feedback/submit"),
|
|
74
|
+
method: "POST",
|
|
75
|
+
data,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 获取我的反馈列表
|
|
81
|
+
*/
|
|
82
|
+
export function getMyFeedback(page = 1, limit = 20) {
|
|
83
|
+
return http.request<{ list: FeedbackItem[]; total: number; page: number; limit: number }>({
|
|
84
|
+
url: v1("feedback/my"),
|
|
85
|
+
method: "GET",
|
|
86
|
+
data: { page, limit },
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 获取反馈详情(含聊天记录)
|
|
92
|
+
*/
|
|
93
|
+
export function getFeedbackDetail(id: number) {
|
|
94
|
+
return http.request<{ data: FeedbackDetail }>({
|
|
95
|
+
url: v1("feedback/detail"),
|
|
96
|
+
method: "GET",
|
|
97
|
+
data: { id },
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* 追加反馈内容
|
|
103
|
+
*/
|
|
104
|
+
export function appendFeedback(feedback_id: number, content: string) {
|
|
105
|
+
return http.request<{ time: string }>({
|
|
106
|
+
url: v1("feedback/append"),
|
|
107
|
+
method: "POST",
|
|
108
|
+
data: { feedback_id, content },
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* 获取反馈统计
|
|
114
|
+
*/
|
|
115
|
+
export function getFeedbackStats() {
|
|
116
|
+
return http.request<FeedbackStats>({
|
|
117
|
+
url: v1("feedback/stats"),
|
|
118
|
+
method: "GET",
|
|
119
|
+
});
|
|
120
|
+
}
|
|
@@ -1,81 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 帮助中心接口
|
|
3
|
+
* 控制器:Help (extends Base,无需登录)
|
|
3
4
|
*/
|
|
4
5
|
import { http } from "@hlw-uni/mp-core";
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
/** 帮助文章 */
|
|
8
|
-
export interface HelpArticle {
|
|
9
|
-
/** 文章 ID */
|
|
10
|
-
id: number;
|
|
11
|
-
/** 分类 ID */
|
|
12
|
-
category_id: number;
|
|
13
|
-
/** 标题 */
|
|
14
|
-
title: string;
|
|
15
|
-
/** 摘要 */
|
|
16
|
-
summary: string;
|
|
17
|
-
/** 正文(HTML) */
|
|
18
|
-
content: string;
|
|
19
|
-
/** 排序权重 */
|
|
20
|
-
sort: number;
|
|
21
|
-
/** 浏览量 */
|
|
22
|
-
views: number;
|
|
23
|
-
/** 创建时间 */
|
|
24
|
-
created_at: string;
|
|
25
|
-
}
|
|
6
|
+
import { v1 } from "./config";
|
|
26
7
|
|
|
27
8
|
/** 帮助分类 */
|
|
28
9
|
export interface HelpCategory {
|
|
29
|
-
/** 分类 ID */
|
|
30
10
|
id: number;
|
|
31
|
-
/** 分类名称 */
|
|
32
11
|
name: string;
|
|
33
|
-
/** 排序权重 */
|
|
34
12
|
sort: number;
|
|
13
|
+
status: number;
|
|
35
14
|
}
|
|
36
15
|
|
|
37
|
-
/**
|
|
38
|
-
export interface
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
16
|
+
/** 帮助文章 */
|
|
17
|
+
export interface HelpArticle {
|
|
18
|
+
id: number;
|
|
19
|
+
cate_id: number;
|
|
20
|
+
title: string;
|
|
21
|
+
content: string;
|
|
22
|
+
sort: number;
|
|
23
|
+
view_count: number;
|
|
24
|
+
status: number;
|
|
25
|
+
create_at: string;
|
|
47
26
|
}
|
|
48
27
|
|
|
49
28
|
/**
|
|
50
|
-
*
|
|
51
|
-
* @param params 分页 + 筛选参数
|
|
29
|
+
* 获取帮助分类列表
|
|
52
30
|
*/
|
|
53
|
-
export function
|
|
54
|
-
return http.request<
|
|
55
|
-
url: "
|
|
31
|
+
export function getHelpCates() {
|
|
32
|
+
return http.request<{ list: HelpCategory[] }>({
|
|
33
|
+
url: v1("help/cates"),
|
|
56
34
|
method: "GET",
|
|
57
|
-
data: params,
|
|
58
35
|
});
|
|
59
36
|
}
|
|
60
37
|
|
|
61
38
|
/**
|
|
62
|
-
*
|
|
63
|
-
* @param
|
|
39
|
+
* 获取帮助文章列表
|
|
40
|
+
* @param cate_id 分类 ID(可选)
|
|
64
41
|
*/
|
|
65
|
-
export function
|
|
66
|
-
return http.request<HelpArticle>({
|
|
67
|
-
url:
|
|
42
|
+
export function getHelpList(cate_id?: number) {
|
|
43
|
+
return http.request<{ list: HelpArticle[] }>({
|
|
44
|
+
url: v1("help/list"),
|
|
68
45
|
method: "GET",
|
|
69
|
-
data: {
|
|
46
|
+
data: cate_id ? { cate_id } : undefined,
|
|
70
47
|
});
|
|
71
48
|
}
|
|
72
49
|
|
|
73
50
|
/**
|
|
74
|
-
*
|
|
51
|
+
* 获取帮助文章详情
|
|
52
|
+
* @param id 文章 ID
|
|
75
53
|
*/
|
|
76
|
-
export function
|
|
77
|
-
return http.request<
|
|
78
|
-
url: "
|
|
54
|
+
export function getHelpDetail(id: number) {
|
|
55
|
+
return http.request<{ data: HelpArticle }>({
|
|
56
|
+
url: v1("help/detail"),
|
|
79
57
|
method: "GET",
|
|
58
|
+
data: { id },
|
|
80
59
|
});
|
|
81
60
|
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API 接口统一导出
|
|
3
|
+
*
|
|
4
|
+
* URL 规则:/{plugin}/api.v{version}.{controller}/{method}
|
|
5
|
+
* 配置:./config.ts
|
|
3
6
|
*/
|
|
4
|
-
export
|
|
7
|
+
export { api, PLUGIN_NAME, API_VERSION } from "./config";
|
|
8
|
+
export * from "./login";
|
|
5
9
|
export * from "./user";
|
|
10
|
+
export * from "./ad";
|
|
6
11
|
export * from "./help";
|
|
12
|
+
export * from "./tools";
|
|
13
|
+
export * from "./notice";
|
|
14
|
+
export * from "./feedback";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 登录相关接口
|
|
3
|
+
* 控制器:Login (extends Base,无需登录)
|
|
4
|
+
*/
|
|
5
|
+
import { http } from "@hlw-uni/mp-core";
|
|
6
|
+
import type { UserInfo } from "./user";
|
|
7
|
+
import { v1 } from "./config";
|
|
8
|
+
|
|
9
|
+
/** 登录响应数据 */
|
|
10
|
+
export interface LoginResult {
|
|
11
|
+
token: string;
|
|
12
|
+
user: Pick<UserInfo, "uid" | "nickname" | "avatar_url" | "phone" | "score" | "vip_time">;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 小程序登录
|
|
17
|
+
* @param code wx.login 获取的 code
|
|
18
|
+
*/
|
|
19
|
+
export function login(code: string, nickname?: string, avatar_url?: string) {
|
|
20
|
+
return http.request<LoginResult>({
|
|
21
|
+
url: v1("login/in"),
|
|
22
|
+
method: "POST",
|
|
23
|
+
data: { code, nickname, avatar_url },
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* 封装微信登录流程:wx.login → 调用后端
|
|
29
|
+
*/
|
|
30
|
+
export function wxLogin(nickname?: string, avatar_url?: string) {
|
|
31
|
+
return new Promise<LoginResult>((resolve, reject) => {
|
|
32
|
+
uni.login({
|
|
33
|
+
provider: "toutiao",
|
|
34
|
+
success: async (loginRes) => {
|
|
35
|
+
try {
|
|
36
|
+
const res = await login(loginRes.code, nickname, avatar_url);
|
|
37
|
+
resolve(res.data);
|
|
38
|
+
} catch (e) {
|
|
39
|
+
reject(e);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
fail: (err) => reject(new Error(err.errMsg || "微信登录失败")),
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 通知公告接口
|
|
3
|
+
* 控制器:Notice (extends Base,无需登录)
|
|
4
|
+
*/
|
|
5
|
+
import { http } from "@hlw-uni/mp-core";
|
|
6
|
+
import { v1 } from "./config";
|
|
7
|
+
|
|
8
|
+
/** 通知公告 */
|
|
9
|
+
export interface NoticeItem {
|
|
10
|
+
id: number;
|
|
11
|
+
appid: string;
|
|
12
|
+
title: string;
|
|
13
|
+
content: string;
|
|
14
|
+
type: string;
|
|
15
|
+
sort: number;
|
|
16
|
+
status: number;
|
|
17
|
+
create_at: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 获取通知列表
|
|
22
|
+
* @param type 通知类型(可选)
|
|
23
|
+
*/
|
|
24
|
+
export function getNoticeList(type?: string) {
|
|
25
|
+
return http.request<{ list: NoticeItem[] }>({
|
|
26
|
+
url: v1("notice/list"),
|
|
27
|
+
method: "GET",
|
|
28
|
+
data: type ? { type } : undefined,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具箱接口
|
|
3
|
+
* 控制器:Tools (extends Base,无需登录)
|
|
4
|
+
*/
|
|
5
|
+
import { http } from "@hlw-uni/mp-core";
|
|
6
|
+
import { v1 } from "./config";
|
|
7
|
+
|
|
8
|
+
/** 工具分类 */
|
|
9
|
+
export interface ToolsCategory {
|
|
10
|
+
id: number;
|
|
11
|
+
name: string;
|
|
12
|
+
sort: number;
|
|
13
|
+
status: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** 工具项 */
|
|
17
|
+
export interface ToolItem {
|
|
18
|
+
id: number;
|
|
19
|
+
cate_id: number;
|
|
20
|
+
name: string;
|
|
21
|
+
icon: string;
|
|
22
|
+
desc: string;
|
|
23
|
+
path: string;
|
|
24
|
+
sort: number;
|
|
25
|
+
click_count: number;
|
|
26
|
+
status: number;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 获取工具分类列表
|
|
31
|
+
*/
|
|
32
|
+
export function getToolsCates() {
|
|
33
|
+
return http.request<{ list: ToolsCategory[] }>({
|
|
34
|
+
url: v1("tools/cates"),
|
|
35
|
+
method: "GET",
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 获取工具列表(按分类筛选)
|
|
41
|
+
* @param cate_id 分类 ID(可选)
|
|
42
|
+
*/
|
|
43
|
+
export function getToolsList(cate_id?: number) {
|
|
44
|
+
return http.request<{ list: ToolItem[] }>({
|
|
45
|
+
url: v1("tools/list"),
|
|
46
|
+
method: "GET",
|
|
47
|
+
data: cate_id ? { cate_id } : undefined,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 获取全部工具(不分类)
|
|
53
|
+
*/
|
|
54
|
+
export function getToolsAll() {
|
|
55
|
+
return http.request<{ list: ToolItem[] }>({
|
|
56
|
+
url: v1("tools/all"),
|
|
57
|
+
method: "GET",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 记录工具点击
|
|
63
|
+
* @param id 工具 ID
|
|
64
|
+
*/
|
|
65
|
+
export function recordToolClick(id: number) {
|
|
66
|
+
return http.request<null>({
|
|
67
|
+
url: v1("tools/click"),
|
|
68
|
+
method: "GET",
|
|
69
|
+
data: { id },
|
|
70
|
+
});
|
|
71
|
+
}
|
|
@@ -1,49 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 用户相关接口
|
|
3
|
+
* 控制器:User (extends Auth,需要登录)
|
|
3
4
|
*/
|
|
4
5
|
import { http } from "@hlw-uni/mp-core";
|
|
5
|
-
import
|
|
6
|
+
import { v1 } from "./config";
|
|
6
7
|
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/** 更新用户信息参数 */
|
|
18
|
-
export interface UpdateUserParams {
|
|
19
|
-
/** 昵称 */
|
|
20
|
-
nickname?: string;
|
|
21
|
-
/** 头像 URL */
|
|
22
|
-
avatar_url?: string;
|
|
23
|
-
/** 手机号 */
|
|
24
|
-
phone?: string;
|
|
8
|
+
/** 后端返回的完整用户实体类型 */
|
|
9
|
+
export interface UserInfo {
|
|
10
|
+
uid: string;
|
|
11
|
+
nickname: string;
|
|
12
|
+
avatar_url: string;
|
|
13
|
+
phone: string;
|
|
14
|
+
score: number;
|
|
15
|
+
vip_time: number;
|
|
25
16
|
}
|
|
26
17
|
|
|
27
18
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
19
|
+
* 获取或刷新当前登录用户信息 (预留)
|
|
20
|
+
* GET plugin-qz/api.v1.user/info
|
|
30
21
|
*/
|
|
31
|
-
export function
|
|
32
|
-
return http.request<UserInfo>({
|
|
33
|
-
url: "
|
|
34
|
-
method: "
|
|
35
|
-
data: params,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* 绑定手机号(微信小程序获取手机号后调用)
|
|
41
|
-
* @param code 手机号授权 code
|
|
42
|
-
*/
|
|
43
|
-
export function bindPhone(code: string) {
|
|
44
|
-
return http.request<UserInfo>({
|
|
45
|
-
url: "/user/bindPhone",
|
|
46
|
-
method: "POST",
|
|
47
|
-
data: { code },
|
|
22
|
+
export function getUserInfo() {
|
|
23
|
+
return http.request<{ data: UserInfo }>({
|
|
24
|
+
url: v1("user/info"),
|
|
25
|
+
method: "GET",
|
|
48
26
|
});
|
|
49
27
|
}
|