|
|
|
|
@ -1,103 +1,188 @@
|
|
|
|
|
import Taro from "@tarojs/taro";
|
|
|
|
|
import classnames from "classnames";
|
|
|
|
|
import { Block, View, ScrollView, Image } from "@tarojs/components";
|
|
|
|
|
import { useState, useEffect } from "react";
|
|
|
|
|
import "./index.less";
|
|
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
|
// link: string;
|
|
|
|
|
// children?: any;
|
|
|
|
|
ModeList: any;
|
|
|
|
|
ModeType: string; // all visor cabin yimeish
|
|
|
|
|
onEmit: Function; // 每次点击item,回调事件和数据给父组件
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let scrollIntoView = "0";
|
|
|
|
|
|
|
|
|
|
function Index({ ModeList }: any) {
|
|
|
|
|
function Index({ ModeList, ModeType, onEmit }: Props) {
|
|
|
|
|
let VisorList = ModeList.filter((item) => item.modeClass === 1); // 面罩模式
|
|
|
|
|
let CabinList = ModeList.filter((item) => item.modeClass === 2); // 舱体模式
|
|
|
|
|
let YimeishList = ModeList.filter((item) => item.modeClass === 3); // 医美术后
|
|
|
|
|
|
|
|
|
|
const [ModeID, setModeID] = useState<any>("");
|
|
|
|
|
const [activeID, setActiveID] = useState<any>("");
|
|
|
|
|
|
|
|
|
|
const yimeishClick = (item) => {
|
|
|
|
|
onEmit(item);
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setActiveID(item.id);
|
|
|
|
|
setModeID("mode_" + item.id);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const cabinClick = (item) => {
|
|
|
|
|
onEmit(item);
|
|
|
|
|
setActiveID(item.id);
|
|
|
|
|
setModeID("mode_" + item.id);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const visorClick = (item) => {
|
|
|
|
|
onEmit(item);
|
|
|
|
|
setActiveID(item.id);
|
|
|
|
|
setModeID("mode_" + item.id);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<Block>
|
|
|
|
|
{VisorList.length > 0 && (
|
|
|
|
|
<ScrollView
|
|
|
|
|
className="mode-list-box"
|
|
|
|
|
scroll-x="true"
|
|
|
|
|
scrollIntoView={scrollIntoView}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-list">
|
|
|
|
|
<View className="mode-item-title">面罩模式</View>
|
|
|
|
|
{VisorList.map((item: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<View key={index} className="mode-item mode-item-active">
|
|
|
|
|
<View className="mode-info">
|
|
|
|
|
<View className="mode-info-title">{item.modeName}</View>
|
|
|
|
|
<View className="mode-info-time">{item.modeDesc}</View>
|
|
|
|
|
<View className="mode-info-select is-select">
|
|
|
|
|
<View className="mode-info-select-point"></View>
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
<View className="mode-pic">
|
|
|
|
|
<Image src={item.banner} mode="aspectFill" />
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
<View className="mode-list-main">
|
|
|
|
|
{ModeList.length > 0 && ModeType !== "all" && (
|
|
|
|
|
<View className="change-all-mode-btn">
|
|
|
|
|
<View className="title">全部模式</View>
|
|
|
|
|
<Image
|
|
|
|
|
className="icon"
|
|
|
|
|
src={require("../../../../img/iot/mode-switch.png")}
|
|
|
|
|
/>
|
|
|
|
|
</View>
|
|
|
|
|
</ScrollView>
|
|
|
|
|
)}
|
|
|
|
|
{CabinList.length > 0 && (
|
|
|
|
|
<ScrollView
|
|
|
|
|
className="mode-list-box"
|
|
|
|
|
scrollX={true}
|
|
|
|
|
scrollIntoView={scrollIntoView}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-list">
|
|
|
|
|
<View className="mode-item-title">舱体模式</View>
|
|
|
|
|
{CabinList.map((item: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<View key={index} className="mode-item mode-item-active">
|
|
|
|
|
<View className="mode-info">
|
|
|
|
|
<View className="mode-info-title">{item.title}</View>
|
|
|
|
|
<View className="mode-info-time">{item.time}</View>
|
|
|
|
|
<View className="mode-info-select is-select">
|
|
|
|
|
<View className="mode-info-select-point"></View>
|
|
|
|
|
)}
|
|
|
|
|
{VisorList.length > 0 &&
|
|
|
|
|
(ModeType === "all" || ModeType === "visor") && (
|
|
|
|
|
<ScrollView
|
|
|
|
|
className="mode-list-box"
|
|
|
|
|
scroll-x="true"
|
|
|
|
|
scrollIntoView={ModeID} // itemID自动滚动到该元素位置
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-list">
|
|
|
|
|
<View className="mode-item-title">面罩模式</View>
|
|
|
|
|
{VisorList.map((item: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<View
|
|
|
|
|
key={"visor_" + index}
|
|
|
|
|
id={"visor_" + item.id}
|
|
|
|
|
className={classnames("mode-item", {
|
|
|
|
|
"mode-item-active": activeID === item.id,
|
|
|
|
|
})}
|
|
|
|
|
onClick={visorClick.bind(this, item)}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-info">
|
|
|
|
|
<View className="mode-info-title">{item.modeName}</View>
|
|
|
|
|
<View className="mode-info-time">{item.modeTime}</View>
|
|
|
|
|
<View
|
|
|
|
|
className={classnames("mode-info-select", {
|
|
|
|
|
"is-select": activeID === item.id,
|
|
|
|
|
})}
|
|
|
|
|
>
|
|
|
|
|
{activeID === item.id && (
|
|
|
|
|
<View className="mode-info-select-point"></View>
|
|
|
|
|
)}
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
|
|
|
|
|
{activeID === item.id && (
|
|
|
|
|
<View className="mode-pic">
|
|
|
|
|
<Image src={item.modeBanner} mode="aspectFill" />
|
|
|
|
|
</View>
|
|
|
|
|
)}
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
<View className="mode-pic">
|
|
|
|
|
<Image src={item.banner} mode="aspectFill" />
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
</View>
|
|
|
|
|
</ScrollView>
|
|
|
|
|
)}
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
</View>
|
|
|
|
|
</ScrollView>
|
|
|
|
|
)}
|
|
|
|
|
{CabinList.length > 0 &&
|
|
|
|
|
(ModeType === "all" || ModeType === "cabin") && (
|
|
|
|
|
<ScrollView
|
|
|
|
|
className="mode-list-box"
|
|
|
|
|
scrollX={true}
|
|
|
|
|
scrollIntoView={ModeID}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-list">
|
|
|
|
|
<View className="mode-item-title">舱体模式</View>
|
|
|
|
|
{CabinList.map((item: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<View
|
|
|
|
|
key={"cabin_" + index}
|
|
|
|
|
id={"cabin_" + item.id}
|
|
|
|
|
onClick={cabinClick.bind(this, item)}
|
|
|
|
|
className={classnames("mode-item", {
|
|
|
|
|
"mode-item-active": activeID === item.id,
|
|
|
|
|
})}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-info">
|
|
|
|
|
<View className="mode-info-title">{item.modeName}</View>
|
|
|
|
|
<View className="mode-info-time">{item.modeTime}</View>
|
|
|
|
|
<View
|
|
|
|
|
className={classnames("mode-info-select", {
|
|
|
|
|
"is-select": activeID === item.id,
|
|
|
|
|
})}
|
|
|
|
|
>
|
|
|
|
|
{activeID === item.id && (
|
|
|
|
|
<View className="mode-info-select-point"></View>
|
|
|
|
|
)}
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
|
|
|
|
|
{YimeishList.length > 0 && (
|
|
|
|
|
<ScrollView
|
|
|
|
|
className="mode-list-box"
|
|
|
|
|
scrollX={true}
|
|
|
|
|
scrollIntoView={scrollIntoView}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-list">
|
|
|
|
|
<View className="mode-item-title">医美术后</View>
|
|
|
|
|
{YimeishList.map((item: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<View key={index} className="mode-item mode-item-active">
|
|
|
|
|
<View className="mode-info">
|
|
|
|
|
<View className="mode-info-title">{item.title}</View>
|
|
|
|
|
<View className="mode-info-time">{item.time}</View>
|
|
|
|
|
<View className="mode-info-select is-select">
|
|
|
|
|
<View className="mode-info-select-point"></View>
|
|
|
|
|
{activeID === item.id && (
|
|
|
|
|
<View className="mode-pic">
|
|
|
|
|
<Image src={item.modeBanner} mode="aspectFill" />
|
|
|
|
|
</View>
|
|
|
|
|
)}
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
<View className="mode-pic">
|
|
|
|
|
<Image src={item.banner} mode="aspectFill" />
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
</View>
|
|
|
|
|
</ScrollView>
|
|
|
|
|
)}
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
</View>
|
|
|
|
|
</ScrollView>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
{YimeishList.length > 0 &&
|
|
|
|
|
(ModeType === "all" || ModeType === "yimeish") && (
|
|
|
|
|
<ScrollView
|
|
|
|
|
className="mode-list-box"
|
|
|
|
|
scrollX={true}
|
|
|
|
|
scrollIntoView={ModeID}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-list">
|
|
|
|
|
<View className="mode-item-title">医美术后</View>
|
|
|
|
|
{YimeishList.map((item: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<View
|
|
|
|
|
key={"yimeish_" + index}
|
|
|
|
|
id={"yimeish_" + item.id}
|
|
|
|
|
onClick={yimeishClick.bind(this, item)}
|
|
|
|
|
className={classnames("mode-item", {
|
|
|
|
|
"mode-item-active": activeID === item.id,
|
|
|
|
|
})}
|
|
|
|
|
>
|
|
|
|
|
<View className="mode-info">
|
|
|
|
|
<View className="mode-info-title">{item.modeName}</View>
|
|
|
|
|
<View className="mode-info-time">{item.modeTime}</View>
|
|
|
|
|
<View
|
|
|
|
|
className={classnames("mode-info-select", {
|
|
|
|
|
"is-select": activeID === item.id,
|
|
|
|
|
})}
|
|
|
|
|
>
|
|
|
|
|
{activeID === item.id && (
|
|
|
|
|
<View className="mode-info-select-point"></View>
|
|
|
|
|
)}
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
|
|
|
|
|
{activeID === item.id && (
|
|
|
|
|
<View className="mode-pic">
|
|
|
|
|
<Image src={item.modeBanner} mode="aspectFill" />
|
|
|
|
|
</View>
|
|
|
|
|
)}
|
|
|
|
|
</View>
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
</View>
|
|
|
|
|
</ScrollView>
|
|
|
|
|
)}
|
|
|
|
|
</View>
|
|
|
|
|
</Block>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|