From a29cfd5c9281c231dc8667a7ac001df1325a9568 Mon Sep 17 00:00:00 2001 From: rarsyansyahr Date: Thu, 16 Dec 2021 16:07:32 +0700 Subject: [PATCH] feat: show membership by superior --- src/pages/App/DesktopLayout.js | 2 +- src/pages/Membership/Membership.js | 25 ++++++++++++++++++------- src/pages/Product/Product.js | 28 +++++++++++++++++++++------- src/store/membership.js | 17 ++++++++++++----- 4 files changed, 52 insertions(+), 20 deletions(-) diff --git a/src/pages/App/DesktopLayout.js b/src/pages/App/DesktopLayout.js index de39103..1b47af9 100644 --- a/src/pages/App/DesktopLayout.js +++ b/src/pages/App/DesktopLayout.js @@ -83,7 +83,7 @@ export const DesktopLayout = observer(() => { color: "#413d3e", }} > - Admin + {store.authentication.userData.role} {}} /> diff --git a/src/pages/Membership/Membership.js b/src/pages/Membership/Membership.js index d27c4f0..17e781e 100644 --- a/src/pages/Membership/Membership.js +++ b/src/pages/Membership/Membership.js @@ -37,8 +37,8 @@ export const Membership = observer(() => { const init = async () => { try { setIsLoading(true); - await store.membership.getData(); - await store.role.getData(); + await getData(); + store.role.getData(); setIsLoading(false); } catch (e) { setIsLoading(false); @@ -48,6 +48,12 @@ export const Membership = observer(() => { init(); }, []); + const getData = () => { + (store.authentication.userData.role === "Admin") + ? store.membership.getData() + : store.membership.getDataBySuperior(); + } + const changeStatus = async (id, isActive) => { const status = isActive ? "inactive" : "active"; const status2 = isActive ? "Inactivating" : "Activating"; @@ -77,6 +83,11 @@ export const Membership = observer(() => { dataIndex: "username", key: "username", }, + { + title: "Role", + dataIndex: "roleName", + key: "role", + }, { title: "Status", dataIndex: "status", @@ -165,7 +176,7 @@ export const Membership = observer(() => { ? "Success Change Member Password" : "Success Update Data Member" ); - await store.membership.getData(); + await getData(); } catch (e) { message.error( initialData.isChangePassword @@ -181,7 +192,7 @@ export const Membership = observer(() => { try { await store.membership.create(data); message.success("Success Add New Member"); - await store.membership.getData(); + await getData(); } catch (e) { console.log(e, "apa errornya"); message.error("Failed Add Member"); @@ -203,7 +214,7 @@ export const Membership = observer(() => { //TODO: minta apinya ke ka ilham ya, jangan di uncomment kalo pake api reconcile, nanti beneran ke apus datanya await store.membership.delete(record); message.success("Success Delete Data"); - await store.membership.getData(); + await getData(); } catch (e) { message.error("Failed Delete Data"); } @@ -268,7 +279,7 @@ export const Membership = observer(() => { store.membership.pageSize = page.pageSize; store.membership.page = pageNumber - 1; // store.membership.isLoading = true; - await store.membership.getData(); + await getData(); // store.membership.isLoading = false; }} /> @@ -282,7 +293,7 @@ export const Membership = observer(() => { onChange: (page) => { store.membership.pageSize = page.pageSize; store.membership.page = page.current; - store.membership.getData(); + getData(); }, pageSize: store.membership.pageSize, total: store.membership.total_data, diff --git a/src/pages/Product/Product.js b/src/pages/Product/Product.js index 2f5496a..0f80346 100644 --- a/src/pages/Product/Product.js +++ b/src/pages/Product/Product.js @@ -1,5 +1,5 @@ import React, { useEffect, useState } from "react"; -import { Button, Card, Col, Input, Row, Tabs } from "antd"; +import { Button, Card, Col, Input, Row, Select, Tabs } from "antd"; import { FilterOutlined, PlusSquareOutlined } from "@ant-design/icons"; import { BreadcumbComponent } from "../../component/BreadcumbComponent"; import { useStore } from "../../utils/useStore"; @@ -9,6 +9,7 @@ import { LINKS } from "../../routes/app"; const { TabPane } = Tabs; const { Search } = Input; +const { Option } = Select; export const Product = observer(() => { const [isLoading, setIsLoading] = useState(false); @@ -72,14 +73,27 @@ export const Product = observer(() => { - + + + + + + + {/* {store.product.dataCategories.map((item, idx) => ( - - {/* */} - - + */} + {/* */} + + {/* ))} - + */} ); diff --git a/src/store/membership.js b/src/store/membership.js index 2d4abde..e6398fe 100644 --- a/src/store/membership.js +++ b/src/store/membership.js @@ -17,16 +17,23 @@ export class Membership { this.data = response.body.data.map((item, idx) => { item.key = idx; + item.roleName = item.roles.name; + return item + }) ?? [] + + this.total_data = response.body.total_data ?? 0 + } + + async getDataBySuperior() { + const response = await http.get(`/users/find-by-supperior?page=${this.page}&pageSize=${this.pageSize}`); + this.data = response.body.data.map((item, idx) => { + item.key = idx; + item.roleName = item.roles.name; return item }) ?? [] this.total_data = response.body.total_data ?? 0 } - // async getData() { - // const response = await http.get(`/users/find-by-supperior?page=${this.page}&pageSize=${this.pageSize}`); - // this.data = response.body.data ?? [] - // this.total_data = response.body.total_data ?? 0 - // } async create(data) { return await http.post('/users').send(data)