You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
4.0 KiB
TypeScript
154 lines
4.0 KiB
TypeScript
import classnames from "classnames";
|
|
import { Component } from "react";
|
|
import Taro from "@tarojs/taro";
|
|
|
|
// 不能用原生组件,遮罩层会遮不住
|
|
import { CoverView, CoverImage, Block, View, Image } from "@tarojs/components";
|
|
|
|
/** 自定义组件 **/
|
|
// import PopupAlert from "../components/popup/popup-alert";
|
|
/** 自定义组件 **/
|
|
|
|
import "./index.less";
|
|
export default class Index extends Component {
|
|
state = {
|
|
isShowPrivacyPopup: true,
|
|
isMask: false,
|
|
isNotRegister: false,
|
|
selected: 2,
|
|
color: "#999",
|
|
selectedColor: "#000",
|
|
backgroundColor: "#ffffff",
|
|
borderStyle: "black",
|
|
list: [
|
|
{
|
|
pagePath: "pages/index/index",
|
|
text: "主页",
|
|
iconPath: "/img/tabar/1.png",
|
|
selectedIconPath: "/img/tabar/11.png",
|
|
},
|
|
{
|
|
pagePath: "pages/activity/activity",
|
|
text: "活动",
|
|
iconPath: "/img/tabar/2.png",
|
|
selectedIconPath: "/img/tabar/22.png",
|
|
},
|
|
{
|
|
pagePath: "pages/detect/detect",
|
|
text: "发现",
|
|
iconPath: "/img/tabar/3.png",
|
|
selectedIconPath: "/img/tabar/33.png",
|
|
},
|
|
{
|
|
pagePath: "pages/shop/shop",
|
|
text: "商城",
|
|
iconPath: "/img/tabar/4.png",
|
|
selectedIconPath: "/img/tabar/44.png",
|
|
},
|
|
{
|
|
pagePath: "pages/user/user",
|
|
text: "我的",
|
|
iconPath: "/img/tabar/5.png",
|
|
selectedIconPath: "/img/tabar/55.png",
|
|
},
|
|
],
|
|
};
|
|
|
|
switchTab(index, url) {
|
|
// let urlArray = ["pages/index/index", "pages/user/user"];
|
|
// if (!urlArray.includes(url)) {
|
|
// let mobile = Taro.getStorageSync("mobile");
|
|
// if (mobile) {
|
|
// this.setSelected(index);
|
|
// Taro.switchTab({ url: "/" + url });
|
|
// } else {
|
|
// this.setState({ isNotRegister: true });
|
|
// }
|
|
// } else {
|
|
// this.setSelected(index);
|
|
// Taro.switchTab({ url: "/" + url });
|
|
// }
|
|
this.setSelected(index);
|
|
Taro.switchTab({ url: "/" + url });
|
|
}
|
|
|
|
setSelected(idx: number) {
|
|
this.setState({
|
|
selected: idx,
|
|
});
|
|
}
|
|
|
|
openMask = () => {
|
|
this.setState({
|
|
isMask: true,
|
|
});
|
|
};
|
|
|
|
closeMask = () => {
|
|
this.setState({
|
|
isMask: false,
|
|
});
|
|
};
|
|
|
|
// closeAlert = () => {
|
|
// this.setState({
|
|
// isNotRegister: false,
|
|
// });
|
|
// };
|
|
|
|
render() {
|
|
const { list, selected, color, selectedColor, isMask, isNotRegister } =
|
|
this.state;
|
|
|
|
return (
|
|
<Block>
|
|
{/* <PopupAlert
|
|
isShow={isNotRegister}
|
|
title="提示"
|
|
content="暂未授权注册,请点击注册"
|
|
confirmButtonText="确定"
|
|
textAlgin="center"
|
|
type="1"
|
|
close={this.closeAlert}
|
|
confirm={this.closeAlert}
|
|
/> */}
|
|
<View className={classnames({ "tab-bar-layer": isMask })}>
|
|
<View className={classnames("tab-bar")}>
|
|
{/* <View className="tab-bar-border"></View> */}
|
|
{list.map((item, index) => {
|
|
return (
|
|
<View
|
|
key={item.pagePath}
|
|
className="tab-bar-item"
|
|
onClick={this.switchTab.bind(this, index, item.pagePath)}
|
|
>
|
|
<Image
|
|
style={{
|
|
width: "40rpx",
|
|
height: "40rpx",
|
|
}}
|
|
src={
|
|
selected === index ? item.selectedIconPath : item.iconPath
|
|
}
|
|
/>
|
|
<View
|
|
style={{
|
|
color: selected === index ? selectedColor : color,
|
|
fontWeight: selected === index ? "500" : "bold",
|
|
fontSize: "22rpx",
|
|
marginTop: "10rpx",
|
|
fontFamily: "PingFang SC",
|
|
}}
|
|
>
|
|
{item.text}
|
|
</View>
|
|
</View>
|
|
);
|
|
})}
|
|
</View>
|
|
</View>
|
|
</Block>
|
|
);
|
|
}
|
|
}
|