From 982c97ab82f3beb1b4febcf014562eda34b9fc05 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 29 九月 2026 17:59:41 +0800
Subject: [PATCH] feat(ui): 江苏商贸品牌视觉与首页/登录页改版
---
src/api/wxcp/activity.ts | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 254 insertions(+), 0 deletions(-)
diff --git a/src/api/wxcp/activity.ts b/src/api/wxcp/activity.ts
new file mode 100644
index 0000000..5d5b1c8
--- /dev/null
+++ b/src/api/wxcp/activity.ts
@@ -0,0 +1,254 @@
+import type { PageParam, PageResult } from '@vben/request';
+
+import { requestClient } from '#/api/request';
+
+export namespace WxCpActivityApi {
+ /** 娲诲姩鐘舵�侊細0鑽夌 1宸插彂甯� 2宸茬粨鏉� 3宸插彇娑� */
+ export const ACTIVITY_STATUS = {
+ DRAFT: 0,
+ PUBLISHED: 1,
+ FINISHED: 2,
+ CANCELED: 3,
+ } as const;
+
+ /** 鎺ㄩ�佽寖鍥达細0鍏ㄥ憳 1鎸囧畾閮ㄩ棬 2鎸囧畾鎴愬憳 */
+ export const PUSH_SCOPE = {
+ ALL: 0,
+ PARTY: 1,
+ USER: 2,
+ } as const;
+
+ /** 娲诲姩 */
+ export interface Activity {
+ id?: number;
+ title?: string;
+ content?: string;
+ coverUrl?: string;
+ location?: string;
+ startTime?: string;
+ endTime?: string;
+ signupStartTime?: string;
+ signupEndTime?: string;
+ /** 鎶ュ悕涓婇檺锛�0 琛ㄧず涓嶉檺 */
+ signupLimit?: number;
+ signupCount?: number;
+ status?: number;
+ statusName?: string;
+ pushScope?: number;
+ pushScopeName?: string;
+ pushTarget?: string;
+ pushStatus?: number;
+ pushTime?: string;
+ remark?: string;
+ createTime?: string;
+ }
+
+ /** 娲诲姩鍒嗛〉鏌ヨ鍙傛暟 */
+ export interface ActivityPageParams extends PageParam {
+ title?: string;
+ status?: number;
+ pushStatus?: number;
+ startTime?: [string, string];
+ }
+
+ /** 鎶ュ悕璁板綍 */
+ export interface Signup {
+ id?: number;
+ activityId?: number;
+ activityTitle?: string;
+ wxUserId?: string;
+ name?: string;
+ mobile?: string;
+ deptName?: string;
+ content?: string;
+ /** 鐘舵�侊細0宸叉姤鍚� 1宸插彇娑� 2宸茬鍒� */
+ status?: number;
+ statusName?: string;
+ signupTime?: string;
+ checkInTime?: string;
+ remark?: string;
+ createTime?: string;
+ }
+
+ /** 鎶ュ悕璁板綍鍒嗛〉鏌ヨ鍙傛暟 */
+ export interface SignupPageParams extends PageParam {
+ activityId?: number;
+ name?: string;
+ mobile?: string;
+ status?: number;
+ }
+
+ /** 鍚嶇О-鏁伴噺缁熻椤� */
+ export interface NameCount {
+ name: string;
+ count: number;
+ }
+
+ /** 鎶ュ悕缁熻 */
+ export interface ActivityStats {
+ activityId: number;
+ activityTitle?: string;
+ signupLimit?: number;
+ totalSignup: number;
+ signedUpCount: number;
+ checkedInCount: number;
+ canceledCount: number;
+ /** 涓嶉檺鍚嶉鏃朵负 null */
+ remaining?: null | number;
+ signupPercent?: null | number;
+ checkInPercent: number;
+ deptStats: NameCount[];
+ dateStats: NameCount[];
+ sourceStats: NameCount[];
+ }
+
+ /** 鎺ㄩ�佽姹� */
+ export interface PushParams {
+ id: number;
+ pushScope?: number;
+ pushTarget?: string;
+ }
+
+ /** 鎺ㄩ�佺粨鏋� */
+ export interface PushResult {
+ success: boolean;
+ errCode?: null | number;
+ message?: string;
+ toUser?: string;
+ toParty?: string;
+ }
+
+ /** 鎶ュ悕闄勪欢 */
+ export interface SignupAttachment {
+ id: number;
+ name?: string;
+ originalFilename?: string;
+ contentType?: string;
+ byteSize?: number;
+ url?: string;
+ previewURL?: string;
+ downloadURL?: string;
+ }
+}
+
+/** 鑾峰緱娲诲姩鍒嗛〉 */
+export function getActivityPage(params: WxCpActivityApi.ActivityPageParams) {
+ return requestClient.get<PageResult<WxCpActivityApi.Activity>>(
+ '/wxcp/activity/page',
+ { params },
+ );
+}
+
+/** 鑾峰緱娲诲姩璇︽儏 */
+export function getActivity(id: number) {
+ return requestClient.get<WxCpActivityApi.Activity>(
+ '/wxcp/activity/get',
+ { params: { id } },
+ );
+}
+
+/** 鍒涘缓娲诲姩锛堝瓨涓鸿崏绋匡級 */
+export function createActivity(data: WxCpActivityApi.Activity) {
+ return requestClient.post<number>('/wxcp/activity/create', data);
+}
+
+/** 淇敼娲诲姩 */
+export function updateActivity(data: WxCpActivityApi.Activity) {
+ return requestClient.put<boolean>('/wxcp/activity/update', data);
+}
+
+/** 鍒犻櫎娲诲姩 */
+export function deleteActivity(id: number) {
+ return requestClient.delete<boolean>('/wxcp/activity/delete', {
+ params: { id },
+ });
+}
+
+/** 鍙戝竷娲诲姩 */
+export function publishActivity(id: number) {
+ return requestClient.put<boolean>('/wxcp/activity/publish', null, {
+ params: { id },
+ });
+}
+
+/** 缁撴潫娲诲姩 */
+export function finishActivity(id: number) {
+ return requestClient.put<boolean>('/wxcp/activity/finish', null, {
+ params: { id },
+ });
+}
+
+/** 鍙栨秷娲诲姩 */
+export function cancelActivity(id: number) {
+ return requestClient.put<boolean>('/wxcp/activity/cancel', null, {
+ params: { id },
+ });
+}
+
+/** 鎺ㄩ�佹椿鍔ㄧ粰浼佷笟寰俊鎴愬憳 */
+export function pushActivity(data: WxCpActivityApi.PushParams) {
+ return requestClient.post<WxCpActivityApi.PushResult>(
+ '/wxcp/activity/push',
+ data,
+ );
+}
+
+/** 鑾峰緱娲诲姩鎶ュ悕椤靛湴鍧� */
+export function getActivitySignupUrl(id: number) {
+ return requestClient.get<string>('/wxcp/activity/signup-url', {
+ params: { id },
+ });
+}
+
+/**
+ * 鑾峰緱娲诲姩鎶ュ悕浜岀淮鐮侊紙PNG Blob锛�
+ *
+ * 璇ユ帴鍙h繑鍥炲浘鐗囦簩杩涘埗锛岃�� <img src> 鏃犳硶鎼哄甫璇锋眰澶达紝
+ * 鎵�浠ヨ繖閲岀敤 raw 妯″紡鍙栧洖 Blob锛屽啀鐢辫皟鐢ㄦ柟杞垚 objectURL 鏄剧ず/涓嬭浇銆�
+ */
+export function getActivityQrCodeBlob(id: number, size?: number) {
+ return requestClient.request('/wxcp/activity/qrcode', {
+ method: 'GET',
+ params: { id, size },
+ responseType: 'blob',
+ responseReturn: 'raw',
+ });
+}
+
+/** 鑾峰緱娲诲姩鎶ュ悕缁熻 */
+export function getActivityStats(id: number) {
+ return requestClient.get<WxCpActivityApi.ActivityStats>(
+ '/wxcp/activity/stats',
+ { params: { id } },
+ );
+}
+
+/** 鑾峰緱鎶ュ悕璁板綍鍒嗛〉 */
+export function getSignupPage(params: WxCpActivityApi.SignupPageParams) {
+ return requestClient.get<PageResult<WxCpActivityApi.Signup>>(
+ '/wxcp/activity/signup/page',
+ { params },
+ );
+}
+
+/** 鍙栨秷鎶ュ悕 */
+export function cancelSignup(id: number) {
+ return requestClient.put<boolean>('/wxcp/activity/signup/cancel', null, {
+ params: { id },
+ });
+}
+
+/** 鎶ュ悕绛惧埌 */
+export function checkInSignup(id: number) {
+ return requestClient.put<boolean>('/wxcp/activity/signup/check-in', null, {
+ params: { id },
+ });
+}
+
+/** 鑾峰緱鏌愭潯鎶ュ悕璁板綍涓婁紶鐨勫浘鐗�/闄勪欢 */
+export function getSignupAttachments(signupId: number) {
+ return requestClient.get<WxCpActivityApi.SignupAttachment[]>(
+ '/wxcp/activity/signup/attachments',
+ { params: { signupId } },
+ );
+}
--
Gitblit v1.9.3