diff --git a/src/stores/Products/Index.js b/src/stores/Products/Index.js index 8735a0f..ca1ea91 100644 --- a/src/stores/Products/Index.js +++ b/src/stores/Products/Index.js @@ -113,6 +113,7 @@ const initialState = { searchValues: {}, // 客服首页: 搜索条件 agencyList: [], // 客服首页: 搜索结果 activeAgency: {}, // 审核/编辑 页: 当前的供应商 + activeAgencyState: null, agencyProducts: {}, // 审核/编辑 页: 供应商产品列表 editingProduct: {}, // 编辑页: 当前编辑的产品 quotationList: [], // 编辑页: 当前产品报价列表 @@ -129,6 +130,7 @@ export const useProductsStore = create( setSearchValues: (searchValues) => set({ searchValues }), setAgencyList: (agencyList) => set({ agencyList }), setActiveAgency: (activeAgency) => set({ activeAgency }), + setActiveAgencyState: (activeAgencyState) => set({ activeAgencyState }), setAgencyProducts: (agencyProducts) => set({ agencyProducts }), // TODO:产品和价格会分开查询编辑, setEditingProduct: (product) => { @@ -205,7 +207,7 @@ export const useProductsStore = create( }, getAgencyProducts: async (param) => { - const { setLoading, setActiveAgency, setAgencyProducts, editingProduct, setEditingProduct } = get(); + const { setLoading, setActiveAgency, setActiveAgencyState, setAgencyProducts, editingProduct, setEditingProduct } = get(); setLoading(true); setAgencyProducts({}); // setEditingProduct({}); @@ -214,6 +216,7 @@ export const useProductsStore = create( const productsData = groupBy(res.products, (row) => row.info.product_type_id); setAgencyProducts(productsData); setActiveAgency(res.agency); + setActiveAgencyState(res.agency.audit_state_id); if (editingProduct?.info?.id) { const item = (productsData[editingProduct.info.product_type_id] || []).find((item) => item.info.id === editingProduct.info.id); setEditingProduct(item); diff --git a/src/views/products/Detail.jsx b/src/views/products/Detail.jsx index ab11608..158fb74 100644 --- a/src/views/products/Detail.jsx +++ b/src/views/products/Detail.jsx @@ -1,21 +1,17 @@ -import { useState, useEffect } from 'react'; +import { useState } from 'react'; import { Divider, Empty, Flex } from 'antd'; -import { useNavigate } from 'react-router-dom'; import { isEmpty } from '@/utils/commons'; import SecondHeaderWrapper from '@/components/SecondHeaderWrapper'; import Header from './Detail/Header'; import { useParams } from 'react-router-dom'; import useProductsStore from '@/stores/Products/Index'; import dayjs from 'dayjs'; -import { PERM_PRODUCTS_MANAGEMENT } from '@/config'; import { usingStorage } from '@/hooks/usingStorage'; import ProductsTree from './Detail/ProductsTree'; import ProductInfo from './Detail/ProductInfo'; -import useAuthStore from '@/stores/Auth'; import NewProductModal from './Detail/NewProductModal'; function Detail() { - const navigate = useNavigate(); const { travel_agency_id, audit_state, use_year } = useParams(); const [addProductVisible, setAddProductVisible] = useState(false); const [agencyProducts, loading, switchParams] = useProductsStore((state) => [state.agencyProducts, state.loading, state.switchParams]); @@ -31,15 +27,6 @@ function Detail() { getAgencyProducts(param); }; - const isPermitted = useAuthStore((state) => state.isPermitted); - const topPerm = isPermitted(PERM_PRODUCTS_MANAGEMENT); // 高级权限 - const [newActionable, setNewActionable] = useState(false); - useEffect(() => { - const notAudit = activeAgency.audit_state_id < 0 || activeAgency.audit_state_id === 3; - setNewActionable(topPerm || notAudit); - return () => {}; - }, [activeAgency]); - return ( setAddProductVisible(true)} - newActionable={newActionable} /> }> {isEmpty(agencyProducts) ? ( diff --git a/src/views/products/Detail/Header.jsx b/src/views/products/Detail/Header.jsx index fd87d6d..7ca9b3b 100644 --- a/src/views/products/Detail/Header.jsx +++ b/src/views/products/Detail/Header.jsx @@ -15,6 +15,7 @@ import AuditStateSelector from '@/components/AuditStateSelector'; const Header = ({ refresh, newActionable, ...props }) => { const location = useLocation(); + const isEditPage = location.pathname.includes('edit'); const showEditA = !location.pathname.includes('edit'); const showAuditA = !location.pathname.includes('audit'); const { travel_agency_id, use_year, audit_state } = useParams(); @@ -22,6 +23,7 @@ const Header = ({ refresh, newActionable, ...props }) => { const isPermitted = useAuthStore((state) => state.isPermitted); const [activeAgency, setActiveAgency] = useProductsStore((state) => [state.activeAgency, state.setActiveAgency]); const [switchParams, setSwitchParams] = useProductsStore((state) => [state.switchParams, state.setSwitchParams]); + const [activeAgencyState] = useProductsStore((state) => [state.activeAgencyState]); const stateMapVal = useProductsAuditStatesMapVal(); const { message, notification } = App.useApp(); const navigate = useNavigate(); @@ -38,7 +40,7 @@ const Header = ({ refresh, newActionable, ...props }) => { const [pickAgency, setPickAgency] = useState({ value: activeAgency.travel_agency_id, label: activeAgency.travel_agency_name }); const [pickAuditState, setPickAuditState] = useState(); useEffect(() => { - const _param = objectMapper(param, { pick_year: 'use_year', pick_agency: 'travel_agency_id', pick_state: 'audit_state' }) + const _param = objectMapper(param, { pick_year: 'use_year', pick_agency: 'travel_agency_id', pick_state: 'audit_state' }); setSwitchParams({ ..._param }); refresh(param); @@ -171,14 +173,16 @@ const Header = ({ refresh, newActionable, ...props }) => { {/* 编辑 */} - {newActionable && ( + {isEditPage && ( + + + + )} + {activeAgencyState === 0 && ( <> - - -