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