Commit ffc90f9e authored by sliao's avatar sliao

fix

parent 751e5876
...@@ -10,12 +10,12 @@ import { devices } from '@/devices'; ...@@ -10,12 +10,12 @@ import { devices } from '@/devices';
const { initPanelEnvironment } = kit; const { initPanelEnvironment } = kit;
interface Props { interface Props {
children: React.ReactNode children: React.ReactNode;
} }
initPanelEnvironment({ useDefaultOffline: true }); initPanelEnvironment({ useDefaultOffline: true });
class App extends React.Component<Props>{ class App extends React.Component<Props> {
componentDidMount() { componentDidMount() {
console.info('app did mount '); console.info('app did mount ');
} }
...@@ -24,10 +24,9 @@ class App extends React.Component<Props>{ ...@@ -24,10 +24,9 @@ class App extends React.Component<Props>{
console.info(e, '=== App onLaunch'); console.info(e, '=== App onLaunch');
} }
render() { render() {
return <SdmProvider value={devices.fan} >{this.props.children}</SdmProvider>; return <SdmProvider value={devices.fan}>{this.props.children}</SdmProvider>;
} }
} }
export default App export default App;
import React from 'react'; import React from 'react';
import { DpBooleanAction, DpCommonAction } from '@tuya-miniapp/sdm'; import { DpBooleanAction, DpCommonAction } from '@tuya-miniapp/sdm';
import { useSdmProps } from '@ray-js/sdm-react'; import { useSdmProps } from '@ray-js/sdm-react';
import {devices} from '@/devices' import { devices } from '@/devices';
import styles from '../../pages/home/index.module.less'; import styles from '../../pages/home/index.module.less';
import { Image, View, Text } from '@ray-js/components' import { Image, View, Text } from '@ray-js/components';
import horizontalOff from '../../../public/icon-horizontal-off.png' import horizontalOff from '../../../public/icon-horizontal-off.png';
import horizontalOn from '../../../public/icon-horizontal-on.png' import horizontalOn from '../../../public/icon-horizontal-on.png';
import verticalOn from '../../../public/icon-vertical-on.png' import verticalOn from '../../../public/icon-vertical-on.png';
import verticalOff from '../../../public/icon-vertical-off.png' import verticalOff from '../../../public/icon-vertical-off.png';
export const FanVertical = React.memo(() => { export const FanVertical = React.memo(() => {
const fanHorizontalCode = 'fan_horizontal';
const fanVerticalCode = 'fan_vertical';
const fanVerticalSwitchCode = 'switch_vertical';
const fanHorizontalSwitchCode = 'switch_horizontal';
const fanHorizontalCode = 'fan_horizontal' const fanHorizontalVal = useSdmProps(props => props[fanHorizontalCode]);
const fanVerticalCode = 'fan_vertical' const fanVerticalVal = useSdmProps(props => props[fanVerticalCode]);
const fanVerticalSwitchCode = 'switch_vertical' const fanHorizontalSwitch = useSdmProps(props => props[fanHorizontalSwitchCode]);
const fanHorizontalSwitchCode = 'switch_horizontal' const fanVerticalSwitch = useSdmProps(props => props[fanVerticalSwitchCode]);
const fanHorizontalVal = useSdmProps((props) => props[fanHorizontalCode])
const fanVerticalVal = useSdmProps((props) => props[fanVerticalCode])
const fanHorizontalSwitch = useSdmProps((props) => props[fanHorizontalSwitchCode])
const fanVerticalSwitch = useSdmProps((props) => props[fanVerticalSwitchCode])
const device = devices.fan const device = devices.fan;
const actions = device.model.actions const actions = device.model.actions;
const fanHorizontalAction = actions[fanHorizontalCode] as DpCommonAction<string>
const fanVerticalAction = actions[fanVerticalCode] as DpCommonAction<string>
const fanHorizontalSwitchAction = actions[fanHorizontalSwitchCode] as DpBooleanAction
const fanVerticalSwitchAction = actions[fanVerticalSwitchCode] as DpBooleanAction
const fanHorizontalAction = actions[fanHorizontalCode] as DpCommonAction<string>;
const fanVerticalAction = actions[fanVerticalCode] as DpCommonAction<string>;
const fanHorizontalSwitchAction = actions[fanHorizontalSwitchCode] as DpBooleanAction;
const fanVerticalSwitchAction = actions[fanVerticalSwitchCode] as DpBooleanAction;
const verticalMenu = [ const verticalMenu = [
{ {
title:'Vertical', title: 'Vertical',
icon:verticalOn, icon: verticalOn,
offIcon: verticalOff, offIcon: verticalOff,
mode:'vertical', mode: 'vertical',
value: fanVerticalVal value: fanVerticalVal,
}, { },
title:'Horizontal', {
icon:horizontalOn, title: 'Horizontal',
icon: horizontalOn,
offIcon: horizontalOff, offIcon: horizontalOff,
mode:'horizontal', mode: 'horizontal',
value: fanHorizontalVal value: fanHorizontalVal,
} },
] ];
function handleVerticalMenu(index) { function handleVerticalMenu(index) {
if (index == 0) { if (index == 0) {
...@@ -57,71 +54,93 @@ export const FanVertical = React.memo(() => { ...@@ -57,71 +54,93 @@ export const FanVertical = React.memo(() => {
// fanVerticalSwitchAction.off() // fanVerticalSwitchAction.off()
// } // }
fanVerticalSwitchAction.toggle() fanVerticalSwitchAction.toggle();
} else {
}else {
// if (!fanHorizontalSwitch) { // if (!fanHorizontalSwitch) {
// fanHorizontalAction.set(String(90)) // fanHorizontalAction.set(String(90))
// fanHorizontalSwitchAction.on() // fanHorizontalSwitchAction.on()
// }else { // }else {
// fanHorizontalSwitchAction.off() // fanHorizontalSwitchAction.off()
// } // }
fanHorizontalSwitchAction.toggle() fanHorizontalSwitchAction.toggle();
} }
} }
function submenuItem(index, arr = verticalMenu, clickFun = handleVerticalMenu) { function submenuItem(index, arr = verticalMenu, clickFun = handleVerticalMenu) {
const isOn = index == 0 ? fanVerticalSwitch : fanHorizontalSwitch const isOn = index == 0 ? fanVerticalSwitch : fanHorizontalSwitch;
const {title, icon, offIcon} = arr[index] const { title, icon, offIcon } = arr[index];
return ( return (
<View className={styles.button}> <View className={styles.button}>
<Image className={styles.menuImage} src={isOn ? icon:offIcon} onClick={() => {clickFun(index)}}/> <Image
className={styles.menuImage}
src={isOn ? icon : offIcon}
onClick={() => {
clickFun(index);
}}
/>
<Text className={styles.bTitle}>{title}</Text> <Text className={styles.bTitle}>{title}</Text>
</View> </View>
) );
} }
const clickNum = (val, index) => { const clickNum = (val, index) => {
console.log(val, index) console.log(val, index);
if (index == 0 && fanVerticalSwitch) { if (index == 0 && fanVerticalSwitch) {
fanVerticalAction.set(String(val)) fanVerticalAction.set(String(val));
}else if (index == 1 && fanHorizontalSwitch) { } else if (index == 1 && fanHorizontalSwitch) {
fanHorizontalAction.set(String(val)) fanHorizontalAction.set(String(val));
}
} }
};
function verticalItem(index) { function verticalItem(index) {
const item = verticalMenu[index] const item = verticalMenu[index];
const isBlack = (index == 0 && fanVerticalSwitch) || (index == 1 && fanHorizontalSwitch) const isBlack = (index == 0 && fanVerticalSwitch) || (index == 1 && fanHorizontalSwitch);
const textColor = (subIndex) => { const textColor = subIndex => {
return {color: isBlack && (Number(item.value) == (subIndex * 30)) ? '#000000':'rgba(0,0,0,0.4)', return {
width:'33.3%', color: isBlack && Number(item.value) == subIndex * 30 ? '#000000' : 'rgba(0,0,0,0.4)',
textAlign:'center', width: '33.3%',
lineHeight:'64px', textAlign: 'center',
fontWeight:'500' lineHeight: '64px',
}} fontWeight: '500',
};
};
return ( return (
<View className={styles.verticalItem}> <View className={styles.verticalItem}>
{submenuItem(index, verticalMenu, handleVerticalMenu)} {submenuItem(index, verticalMenu, handleVerticalMenu)}
<View className={styles.verticalNumBg}> <View className={styles.verticalNumBg}>
<View style={textColor(1)} onClick={() => {clickNum(30, index)}}>30</View> <View
<View style={textColor(2)} onClick={() => {clickNum(60, index)}}>60</View> style={textColor(1)}
<View style={textColor(3)} onClick={() => {clickNum(90, index)}}>90</View> onClick={() => {
clickNum(30, index);
}}
>
30
</View>
<View
style={textColor(2)}
onClick={() => {
clickNum(60, index);
}}
>
60
</View>
<View
style={textColor(3)}
onClick={() => {
clickNum(90, index);
}}
>
90
</View>
</View> </View>
</View> </View>
) );
} }
return ( return (
<View> <View>
{ {verticalItem(0)}
verticalItem(0) {verticalItem(1)}
}
{
verticalItem(1)
}
</View> </View>
) );
});
})
\ No newline at end of file
This diff is collapsed.
...@@ -105,13 +105,22 @@ ...@@ -105,13 +105,22 @@
position: relative; position: relative;
} }
.modalOverlay {
position: absolute;
left: 0;
top: 0;
width:100vw;
height: 100vh;
background-color: transparent;
z-index: 999;
}
.modalBg { .modalBg {
// position: absolute; position: absolute;
// left: 0; left: 0;
// right: 0; right: 0;
margin-bottom: -164px; margin: 0 auto;
bottom: 140px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
// align-items: flex-end; // align-items: flex-end;
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment