Browse Source

✨ 投放书籍接口

晓晓晓晓丶vv 4 years ago
parent
commit
c88e0300c9

+ 8 - 1
src/api/index.ts

@@ -3,7 +3,7 @@ import axios from "./config";
 
 // NOTE: 暂时使用ts-ignore忽略module not exported的问题
 // @ts-ignore
-import { IUser, IList, IDeliveryBook } from "@/types/api";
+import { IUser, IList, IDeliveryBook, IOfficialSimple } from "@/types/api";
 
 /**
  * 登录
@@ -29,3 +29,10 @@ export const getDeliveryBookList = (
     params: query,
   });
 };
+
+/**
+ * 获取公众号 - 无分页 用作于下拉
+ */
+export const getOfficialSimpleAccount = (): AxiosPromise<IOfficialSimple[]> => {
+  return axios("/simpleUserOfficialAccounts");
+};

+ 6 - 0
src/store/modules/app/_type.ts

@@ -12,6 +12,7 @@ type State = {
   routes: RouteConfig[];
   addRoutes: RouteConfig[];
   user: Partial<IUser>;
+  officials: SelectOptions<number>;
 };
 
 // mutation 定义
@@ -19,12 +20,14 @@ enum MutationType {
   setRoles = "setRoles",
   setRoutes = "setRoutes",
   setUser = "setUser",
+  setOfficial = "setOfficial",
 }
 
 type Mutations<S = State> = {
   [MutationType.setRoles](state: S, roles: string[]): void;
   [MutationType.setRoutes](state: S, routes: RouteConfig[]): void;
   [MutationType.setUser](state: S, user: Partial<IUser>): void;
+  [MutationType.setOfficial](state: S, officials: SelectOptions<number>): void;
 };
 
 // action 定义
@@ -32,6 +35,7 @@ enum ActionType {
   generatorRoutes = "generatorRoutes",
   getUserRoles = "getUserRoles",
   doLogin = "doLogin",
+  doSaveOfficial = "doSaveOfficial",
 }
 
 type Actions = {
@@ -43,6 +47,7 @@ type Actions = {
     commit,
   }: AugmentedActionContext): Promise<string[]>;
   [ActionType.doLogin]({ commit }: AugmentedActionContext, user: unknown): void;
+  [ActionType.doSaveOfficial]({ commit }: AugmentedActionContext): void;
 };
 
 // getter 定义
@@ -51,6 +56,7 @@ type Getters = {
   userRoles(state: State): string[];
   user(state: State): Partial<IUser>;
   pageTitle(state: State): string;
+  officials(state: State): SelectOptions<number>;
 };
 
 export { State, Mutations, MutationType, Actions, ActionType, Getters };

+ 15 - 1
src/store/modules/app/actions.ts

@@ -4,7 +4,7 @@ import { RootState } from "@/store";
 import asyncRoutes from "@/router/async";
 import { filterRoutesByRoles } from "@/helper/permission";
 
-import { doLogin } from "@/api";
+import { doLogin, getOfficialSimpleAccount } from "@/api";
 
 type userData = {
   account: string;
@@ -34,6 +34,20 @@ const actions: ActionTree<State, RootState> & Actions = {
       console.log("error", e);
     }
   },
+  async [ActionType.doSaveOfficial]({ commit }) {
+    try {
+      const { data } = await getOfficialSimpleAccount();
+      const storeOfficials: SelectOptions<number> = data.map((item) => {
+        return {
+          label: item.name,
+          value: item.id,
+        };
+      });
+      commit(MutationType.setOfficial, storeOfficials);
+    } catch (e) {
+      console.log("error", e);
+    }
+  },
 };
 
 export default actions;

+ 1 - 0
src/store/modules/app/getters.ts

@@ -7,6 +7,7 @@ const getters: GetterTree<State, RootState> & Getters = {
   userRoles: (state) => state.roles,
   user: (state) => state.user,
   pageTitle: (state) => state.pageTitle,
+  officials: (state) => state.officials,
 };
 
 export default getters;

+ 3 - 0
src/store/modules/app/mutations.ts

@@ -12,6 +12,9 @@ const mutations: MutationTree<State> & Mutations = {
     state.user = user;
     state.store.setItem("user", JSON.stringify(user));
   },
+  [MutationType.setOfficial](state, officials) {
+    if (!state.officials.length) state.officials = officials;
+  },
 };
 
 export default mutations;

+ 1 - 0
src/store/modules/app/state.ts

@@ -20,6 +20,7 @@ const state: State = {
   routes: [],
   addRoutes: [],
   user: store.getItem("user")?.parse<IUser>() ?? {},
+  officials: [],
 };
 
 export default state;

+ 5 - 0
src/types/api.d.ts

@@ -44,3 +44,8 @@ export interface IDeliveryBook {
   end_time: string;
   official_name: string;
 }
+
+export interface IOfficialSimple {
+  id: number;
+  name: string;
+}

+ 2 - 2
src/types/global.d.ts

@@ -7,9 +7,9 @@ declare interface IObj<T = any> {
   [key: number]: T;
 }
 
-declare type SelectOptions = {
+declare type SelectOptions<T = any> = {
   label: string;
-  value: any;
+  value: T;
 }[];
 
 declare type EmitType = (event: string, ...args: any[]) => void;