提交 00daecb9 作者: 翁进城

打包前优化

上级 278b3d83
...@@ -3,8 +3,8 @@ import { FilterOptionResp, RegionResp } from "./api"; ...@@ -3,8 +3,8 @@ import { FilterOptionResp, RegionResp } from "./api";
import ResultItem from "./compoents/resultItem"; import ResultItem from "./compoents/resultItem";
import RegionItem from "./compoents/regionItem"; import RegionItem from "./compoents/regionItem";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
import { useEffect, useState , forwardRef , useImperativeHandle } from "react"; import React, { useEffect, useState, forwardRef, useImperativeHandle, Ref } from "react";
import { useRouter } from 'next/router' import { useRouter } from "next/router";
import BrandItem from "./compoents/brandItem"; import BrandItem from "./compoents/brandItem";
import ModelItem from "./compoents/modelItem"; import ModelItem from "./compoents/modelItem";
import PartItem from "./compoents/partItem"; import PartItem from "./compoents/partItem";
...@@ -60,65 +60,74 @@ type Props = { ...@@ -60,65 +60,74 @@ type Props = {
) => void; //筛选条件更改事件 ) => void; //筛选条件更改事件
}; };
const idArr = ["brandId","categoryId","modelId","partsId","productCategoryId","qualityId","industryId","appTypeId"] const idArr = [
const nameArr:any = { "brandId",
brandId: { "categoryId",
type:"brandId", "modelId",
typeObj:"brand", "partsId",
typeName:"品牌:", "productCategoryId",
"qualityId",
"industryId",
"appTypeId",
];
const nameArr: any = {
brandId: {
type: "brandId",
typeObj: "brand",
typeName: "品牌:",
}, },
// districtId: { // districtId: {
// type:"districtId", // type:"districtId",
// typeObj:"region", // typeObj:"region",
// typeName:"地域:", // typeName:"地域:",
// }, // },
modelId:{ modelId: {
type:"modelId", type: "modelId",
typeObj:"model", typeObj: "model",
typeName:"型号:", typeName: "型号:",
}, },
partsId: { partsId: {
type:"partsId", type: "partsId",
typeObj:"part", typeObj: "part",
typeName:"部件:", typeName: "部件:",
}, },
productCategoryId: { productCategoryId: {
type:"productCategoryId", type: "productCategoryId",
typeObj:"category", typeObj: "category",
typeName:"类目:", typeName: "类目:",
}, },
qualityId: { qualityId: {
type:"qualityId", type: "qualityId",
typeObj:"quality", typeObj: "quality",
typeName:"成色:", typeName: "成色:",
}, },
industryId: { industryId: {
type:"industryId", type: "industryId",
typeObj:"industryId", typeObj: "industryId",
typeName:"行业:", typeName: "行业:",
}, },
appTypeId: { appTypeId: {
type:"appTypeId", type: "appTypeId",
typeObj:"appTypeId", typeObj: "appTypeId",
typeName:"应用:", typeName: "应用:",
}, },
categoryId: { categoryId: {
type:"categoryId", type: "categoryId",
typeObj:"categoryId", typeObj: "categoryId",
typeName:"类目:", typeName: "类目:",
}, },
} };
const Filter = forwardRef((props: Props,ref) => { const Filter = (props: Props, ref: Ref<any>) => {
const router = useRouter(); const router = useRouter();
useImperativeHandle(ref, () => ({ useImperativeHandle(ref, () => ({
idArr:idArr, idArr: idArr,
clearRouter:clearRouter clearRouter: clearRouter,
})) }));
const [result, setResult] = useState<FilterResult>({}); const [result, setResult] = useState<FilterResult>({});
const onChange = (item: FilterOptionResp, type: string) => { const onChange = (item: FilterOptionResp, type: string) => {
clearRouter() clearRouter();
let data: { [key: string]: FilterOptionResp } = {}; let data: { [key: string]: FilterOptionResp } = {};
data[type] = item; data[type] = item;
...@@ -139,25 +148,28 @@ const nameArr:any = { ...@@ -139,25 +148,28 @@ const nameArr:any = {
}); });
}, [result]); }, [result]);
useEffect(()=>{ useEffect(() => {
let queryVal = JSON.parse(JSON.stringify(router.query)); let queryVal = JSON.parse(JSON.stringify(router.query));
if (Object.keys(router.query).length) { if (Object.keys(router.query).length) {
for (const key in queryVal) { for (const key in queryVal) {
if (idArr.includes(key)) { if (idArr.includes(key)) {
onChange({id:queryVal[key],name: nameArr[key].typeName + queryVal.name},nameArr[key].typeObj) onChange(
} { id: queryVal[key], name: nameArr[key].typeName + queryVal.name },
nameArr[key].typeObj
);
}
} }
} }
},[router]) }, [router]);
const clearRouter = () => { const clearRouter = () => {
if (Object.keys(router.query).length) { if (Object.keys(router.query).length) {
router.query = {} router.query = {};
router.replace(router.pathname) router.replace(router.pathname);
} }
} };
const onDel = (key: string) => { const onDel = (key: string) => {
clearRouter() clearRouter();
//@ts-ignore //@ts-ignore
delete result[key]; delete result[key];
setResult({ setResult({
...@@ -236,7 +248,6 @@ const nameArr:any = { ...@@ -236,7 +248,6 @@ const nameArr:any = {
</div> </div>
</> </>
); );
} };
)
export default Filter export default forwardRef(Filter);
\ No newline at end of file
...@@ -67,7 +67,7 @@ export default function LoginModal(props: Props) { ...@@ -67,7 +67,7 @@ export default function LoginModal(props: Props) {
window.localStorage.setItem("token", res.result.token); window.localStorage.setItem("token", res.result.token);
api.userInfo().then((res) => { api.userInfo().then((res) => {
setUserInfo(res.result || ""); setUserInfo(res.result);
window.messageApi.success("登录成功"); window.messageApi.success("登录成功");
props.onCancel(); props.onCancel();
}); });
......
...@@ -10,7 +10,7 @@ import api, { UserInfoResp } from "~/api"; ...@@ -10,7 +10,7 @@ import api, { UserInfoResp } from "~/api";
export const UserContext = createContext<{ export const UserContext = createContext<{
testLogin: () => void; testLogin: () => void;
logout: () => void; logout: () => void;
userInfo: UserInfoResp | null | ""; userInfo: UserInfoResp | null | undefined;
setUserInfo: Dispatch<SetStateAction<UserInfoResp | null | undefined>>; setUserInfo: Dispatch<SetStateAction<UserInfoResp | null | undefined>>;
needLogin: Boolean; needLogin: Boolean;
setNeedLogin: Dispatch<SetStateAction<Boolean>>; setNeedLogin: Dispatch<SetStateAction<Boolean>>;
......
import React, { useEffect , useState } from 'react' import React, { useContext, useEffect , useState } from 'react'
import {useRouter} from 'next/router'; import {useRouter} from 'next/router';
import Layout from "~/components/layout"; import Layout from "~/components/layout";
import {Box} from './styled'; import {Box} from './styled';
...@@ -7,14 +7,14 @@ import { Button , Image as AImage , Divider , Select,Modal ,Tag,Space,Form,messa ...@@ -7,14 +7,14 @@ import { Button , Image as AImage , Divider , Select,Modal ,Tag,Space,Form,messa
import Image from 'next/image'; import Image from 'next/image';
import errImg from "~/assets/errImg"; import errImg from "~/assets/errImg";
import api,{GetWebDeviceDetailResult,GetWebDeviceWareSkuById} from './api'; import api,{GetWebDeviceDetailResult,GetWebDeviceWareSkuById} from './api';
import { useUser } from "~/lib/hooks";
import LoginModal from "~/components/loginModal"; import LoginModal from "~/components/loginModal";
import { UserContext } from '~/lib/userProvider';
const { CheckableTag } = Tag const { CheckableTag } = Tag
export default function EquipmentLeasingDetail() { export default function EquipmentLeasingDetail() {
const router = useRouter(); const router = useRouter();
const userInfo = useUser(); //获取信息 const { userInfo } = useContext(UserContext);
const [openLoginModal, setOpenLoginModal] = useState(false); //登录modal const [openLoginModal, setOpenLoginModal] = useState(false); //登录modal
const [id, setId] = useState<number | null>(null); const [id, setId] = useState<number | null>(null);
......
import React, { useEffect, useState } from "react"; import React, { useContext, useEffect, useState } from "react";
import { Box } from "./styled"; import { Box } from "./styled";
import Image from "next/image"; import Image from "next/image";
import { Button, Select, Space, Pagination, Cascader, Modal , Form ,Input,Checkbox, message} from "antd"; import { Button, Select, Space, Pagination, Cascader, Modal , Form ,Input,Checkbox, message} from "antd";
...@@ -7,8 +7,8 @@ import Layout from "~/components/layout"; ...@@ -7,8 +7,8 @@ import Layout from "~/components/layout";
import ContentBox from "~/components/contentBox"; import ContentBox from "~/components/contentBox";
import api, { Flying, SkillsType, RegionResp } from "./api"; import api, { Flying, SkillsType, RegionResp } from "./api";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useUser } from "~/lib/hooks";
import LoginModal from "~/components/loginModal"; import LoginModal from "~/components/loginModal";
import { UserContext } from "~/lib/userProvider";
interface FilterInfoParams { interface FilterInfoParams {
regionId?: number; regionId?: number;
flightSkillsId?: number; flightSkillsId?: number;
...@@ -18,7 +18,7 @@ interface FilterInfoParams { ...@@ -18,7 +18,7 @@ interface FilterInfoParams {
export default function FlyingHandService() { export default function FlyingHandService() {
const {Option} = Select const {Option} = Select
const router = useRouter(); const router = useRouter();
const userInfo = useUser(); //获取信息 const {userInfo} = useContext(UserContext);
const [openLoginModal, setOpenLoginModal] = useState(false); //登录modal const [openLoginModal, setOpenLoginModal] = useState(false); //登录modal
const [list, setList] = useState([ const [list, setList] = useState([
"https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/540X844-1(1).jpg", "https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/540X844-1(1).jpg",
......
...@@ -237,7 +237,7 @@ export default function Forum() { ...@@ -237,7 +237,7 @@ export default function Forum() {
<Form <Form
form={form} form={form}
onFinish={(values) => { onFinish={(values) => {
onComment(values, item, i); onComment(values, item);
}} }}
> >
<Form.Item <Form.Item
......
import React, { useEffect, useState } from "react"; import React, { useContext, useEffect, useState } from "react";
import { Space, Select, Button, message } from "antd"; import { Space, Select, Button, message } from "antd";
import Image from "next/image"; import Image from "next/image";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
...@@ -23,8 +23,8 @@ import { ...@@ -23,8 +23,8 @@ import {
listNewsApi, listNewsApi,
} from "./api"; } from "./api";
import { BaseOptionType, DefaultOptionType } from "antd/es/select"; import { BaseOptionType, DefaultOptionType } from "antd/es/select";
import { useUser } from "~/lib/hooks";
import LoginModal from "~/components/loginModal"; import LoginModal from "~/components/loginModal";
import { UserContext } from "~/lib/userProvider";
interface ColumnsType { interface ColumnsType {
title: string; title: string;
router: string; router: string;
...@@ -32,7 +32,7 @@ interface ColumnsType { ...@@ -32,7 +32,7 @@ interface ColumnsType {
export default function WaterfallFlowBody() { export default function WaterfallFlowBody() {
const router = useRouter(); const router = useRouter();
const userInfo = useUser(); //获取信息 const {userInfo} = useContext(UserContext); //获取信息
const [openLoginModal, setOpenLoginModal] = useState(false); //登录modal const [openLoginModal, setOpenLoginModal] = useState(false); //登录modal
const [list, setList] = useState([ const [list, setList] = useState([
"中国人寿", "中国人寿",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论