rongweikang 2 years ago
commit aed682c3c0

@ -71,9 +71,11 @@ export default defineAppConfig({
navigationBarBackgroundColor: "#fff",
navigationBarTitleText: "WeChat",
navigationBarTextStyle: "black",
// pageOrientation: "auto",
// enablePullDownRefresh: true
},
requiredPrivateInfos: ["getLocation"],
subPackages: [
{
root: "moduleIOT",

@ -204,7 +204,7 @@ export default class InstrumentManage extends Component<any, any> {
<Block>
<View className="title"></View>
<View className="scroll">
<ScrollView scroll-x="true" className="un_bind_list">
<ScrollView scrollX={true} className="un_bind_list">
{unBindList.map((item, index) => {
if (item.status === 0) {
return (

@ -344,7 +344,7 @@ class IotCarePlanFR200 extends Component<any, any> {
color: "#750010",
},
},
]
],
};
}
isFullScreen: boolean = false;
@ -404,9 +404,9 @@ class IotCarePlanFR200 extends Component<any, any> {
this.getInstrumentClockSummary();
this.getInstrumentClockDetail();
}
componentDidMount() { }
componentDidMount() {}
componentWillUnmount() { }
componentWillUnmount() {}
componentDidShow() {
console.log("页面显示了");
@ -585,7 +585,8 @@ class IotCarePlanFR200 extends Component<any, any> {
currentWorkModeType = 3;
} else if (
data.modeType === "maskPenetration" ||
data.modeType === "essence"
data.modeType === "essence" ||
data.modeType === "led"
) {
currentWorkModeType = 2;
}
@ -822,12 +823,12 @@ class IotCarePlanFR200 extends Component<any, any> {
eDate,
};
setStorageSync("moistureEachtsData", JSON.stringify(echartsData));
let report =true
let report = true;
// go(`/recoding/pages/moisture_test_report/moisture_test_report?data=${allData.nursingData}&date=${allData.createTime}&modeId=${allData.modeId}&id=${allData.instrumentId}&echartsData=${JSON.stringify(echartsData)}`);
go(
`/recoding/pages/moisture_test_report/moisture_test_report?data=${nursingData}&date=${formattedDate}&modeId=${ActiveModeItemId}&id=${currentDeviceId}&echartsData=${JSON.stringify(
echartsData
)}&report=${report }`
)}&report=${report}`
);
}
@ -848,42 +849,47 @@ class IotCarePlanFR200 extends Component<any, any> {
let stop = 0;
let time = setInterval(function () {
stop++;
let series = JSON.parse(JSON.stringify(that.state.series))
let num = Math.floor(Math.random() * 9)
let count = 0
series.map(item => {
if (item.type === 'line') {
item.data.splice(0, 1)
item.data.push(num)
let series = JSON.parse(JSON.stringify(that.state.series));
let num = Math.floor(Math.random() * 9);
let count = 0;
series.map((item) => {
if (item.type === "line") {
item.data.splice(0, 1);
item.data.push(num);
}
if (item.type === 'bar') {
count++
item.data.splice(0, 1)
if (item.type === "bar") {
count++;
item.data.splice(0, 1);
if (count <= num) {
item.data.push(1)
item.data.push(1);
} else {
item.data.push(0)
item.data.push(0);
}
}
})
});
// 更新图表数据
that.setState({ series })
that.setState({ series });
if (stop >= 20) {
clearInterval(time);
}
}, 1000);
}
full() {
this.setState({ isFullScreen: !this.state.isFullScreen });
}
/** 切换光照 */
onSwitchChange = async () => {
// todo
let { isStopNurse } = this.state;
let { isStopNurse, ActiveModeItem } = this.state;
console.log("切换光照,", ActiveModeItem);
if (ActiveModeItem.modeType === "led") {
this.onSwitchChangeLED();
return;
}
if (isStopNurse) {
// 开始光照逻辑
this.onNursingTap();
@ -897,6 +903,37 @@ class IotCarePlanFR200 extends Component<any, any> {
isStopNurse: !isStopNurse,
});
};
/** LED切换模式 */
onSwitchChangeLED = () => {
let { isStopNurse } = this.state;
if (isStopNurse) {
// 开始光照逻辑
this.onNursingTap();
this.switchVideoPlay(); // 开始
} else {
// 暂停光照逻辑
let sendParams: any = {
...deviceCommandSamples.pause,
workMode: "led", // 使用模式
workStatus: "standby",
};
const pauseArrayBuffer = deviceToolKitInstance.toBleCommand(
sendParams as any
);
sendCommand({
value: pauseArrayBuffer,
}).then(() => {
this.workStatus = "pause";
this.resetTimer();
console.info(`发送暂停指令成功 参数为 =>`, sendParams);
});
// this.handleWorkStatus(false, MODE_WORKING_ENUM.PAUSE);
this.switchVideoPause(); // 暂停
}
this.setState({
isStopNurse: !isStopNurse,
});
};
/**
* @name
@ -1692,12 +1729,11 @@ class IotCarePlanFR200 extends Component<any, any> {
executePromises = async () => {
let waterStepList = this.state.waterStepList;
let waterStepIndex = this.state.waterStepIndex;
let that = this
let that = this;
await new Promise<void>((resolve) => {
setTimeout(() => {
waterStepList[waterStepIndex].schedule = 100;
that.setState({
waterStepList,
});
@ -1714,13 +1750,8 @@ class IotCarePlanFR200 extends Component<any, any> {
}, 2000);
});
});
};
// 检测并控制工作状态
handleWorkStatus = async (isBtnClick: boolean, workStatus) => {
const { DeviceConnectStatus, ActiveModeItem } = this.state;
@ -1741,7 +1772,6 @@ class IotCarePlanFR200 extends Component<any, any> {
workMode: ActiveModeItem.modeType, // 使用模式
workStatus: newWorkStatus,
};
console.log(ActiveModeItem, "查看工作状态");
// 水分测试需要特殊处理
// 水分测试准备 水分测试工作 水分测试启动
@ -1750,20 +1780,22 @@ class IotCarePlanFR200 extends Component<any, any> {
sendParams.testStatus = "standby"; // 切换为准备
// 3秒定时器逻辑3秒把进度条弄成100再加2秒获取最后结果
if (isBtnClick) {
that.setState({
isRuningTest: 2,
});
this.executePromises()
this.executePromises();
sendParams.testStatus = "start"; // 点击开始再开始
console.log("点击开始", isBtnClick);
}
}
if (ActiveModeItem.modeType === "maskPenetration") {
// 面膜促渗和精华促渗
if (
ActiveModeItem.modeType === "maskPenetration" ||
ActiveModeItem.modeType === "essence"
) {
sendParams.gear = this.state.currentGear; // 点击开始再开始
}
@ -2096,7 +2128,6 @@ class IotCarePlanFR200 extends Component<any, any> {
params.modeName = this.state.ActiveModeItem.modeName;
console.log(jsonStatus, 555555555555);
}
} else {
params.jsonStatus = jsonStatus;
@ -2217,7 +2248,12 @@ class IotCarePlanFR200 extends Component<any, any> {
return nursingData;
}
return { nursingData: JSON.stringify({ workMode: nowFR200NursingHistory.workMode, }), showFace: true }
return {
nursingData: JSON.stringify({
workMode: nowFR200NursingHistory.workMode,
}),
showFace: true,
};
};
// 计算挡位
@ -2406,11 +2442,11 @@ class IotCarePlanFR200 extends Component<any, any> {
let report = true;
go(
"/recoding/pages/face_report_one/face_report_one?id=" +
ids +
"&report=" +
report +
"&obj=" +
JSON.stringify(obj)
ids +
"&report=" +
report +
"&obj=" +
JSON.stringify(obj)
);
} else if ("moistureTest" === nursingData.workMode) {
console.log("水分测试");
@ -2421,11 +2457,11 @@ class IotCarePlanFR200 extends Component<any, any> {
go(
"/recoding/pages/face_report/face_report?id=" +
deviceid +
"&recordId=" +
currentDevice +
"&report=" +
report
deviceid +
"&recordId=" +
currentDevice +
"&report=" +
report
);
}
};
@ -2593,7 +2629,7 @@ class IotCarePlanFR200 extends Component<any, any> {
isShowReReadRecordConnect,
currentServiceData,
series,
isFullScreen
isFullScreen,
} = this.state;
return (
@ -2604,316 +2640,324 @@ class IotCarePlanFR200 extends Component<any, any> {
isCustomBack
customBack={this.customBack}
/>
{!isFullScreen && (<View>
<View catchMove>
<PopupAlert
isShow={isModeLock}
zIndex={10020}
myClassName="level-up"
title="提示"
content="该模式即将上线,敬请期待"
confirmButtonText="我知道了"
textAlgin="center"
close={this.onModeLockClose}
confirm={this.onModeLockClose}
/>
<PopupInstrumentUploadTips
isShow={isFirstTipShow}
zIndex={10020}
myClassName="level-up"
title="打卡介绍"
data={nurseInfo}
close={this.onTipShowClose}
confirm={this.onTipShowClose}
/>
<PopupCountdown isShow={isShowCountdown} countdown={countdown} />
<PopupConfirm
isLarge
isClose
isShow={isEndCarePlan}
title="提示"
content="是否结束护理"
textAlgin="center"
cancelButtonText="取消"
confirmButtonText="确定"
close={this.cancelEndBtn}
confirm={this.confirmEndBtn}
/>
<PopupConfirm
isLarge
isClose
isShow={isSwitchActiveMode}
title="护理模式切换"
content={
<ModeListView
ModeID={ModeID}
activeModeID={activeModeID}
isPop
isShowNurse={isShowNurse}
ModeList={ModeList}
ModeType={ModeType}
onEmit={this.switchModeCurrentFun}
onEmitShowAll={this.openModeSwitch}
onModeLockOpen={this.onModeLockOpen}
/>
}
textAlgin="center"
cancelButtonText="取消"
confirmButtonText="确定"
close={this.cancelModeSwitchBtn}
confirm={this.confirmModeSwitchBtn}
/>
{ActiveModeItem.openSourceData.length > 0 && (
<PopupStepTips
isShow={isShowStepTips}
{!isFullScreen && (
<View>
<View catchMove>
<PopupAlert
isShow={isModeLock}
zIndex={10020}
myClassName="level-up"
title="提示"
content="该模式即将上线,敬请期待"
confirmButtonText="我知道了"
textAlgin="center"
close={this.onModeLockClose}
confirm={this.onModeLockClose}
/>
<PopupInstrumentUploadTips
isShow={isFirstTipShow}
zIndex={10020}
myClassName="level-up"
title="打卡介绍"
data={nurseInfo}
close={this.onTipShowClose}
confirm={this.onTipShowClose}
/>
<PopupCountdown isShow={isShowCountdown} countdown={countdown} />
<PopupConfirm
isLarge
isFirstEntry={false}
confirmButtonText="知道了"
data={ActiveModeItem.openSourceData}
close={this.closeStepTips}
isClose
isShow={isEndCarePlan}
title="提示"
content="是否结束护理"
textAlgin="center"
cancelButtonText="取消"
confirmButtonText="确定"
close={this.cancelEndBtn}
confirm={this.confirmEndBtn}
/>
)}
<Popup
show={isShowHistoryMsg}
className="custom-popup"
overlay={false}
>
<View className="sync-history-msg">...</View>
</Popup>
</View>
<View>
<View className="iot-main">
<View className="banner-box">
<View>
<Video
className="video-or-image"
src={currentVideoSrc}
loop
id="myVideo"
objectFit="cover"
enablePlayGesture
showFullscreenBtn={false}
onLoadedMetaData={this.GetVideosTime}
/>
<PopupConfirm
isLarge
isClose
isShow={isSwitchActiveMode}
title="护理模式切换"
content={
<ModeListView
ModeID={ModeID}
activeModeID={activeModeID}
isPop
isShowNurse={isShowNurse}
ModeList={ModeList}
ModeType={ModeType}
onEmit={this.switchModeCurrentFun}
onEmitShowAll={this.openModeSwitch}
onModeLockOpen={this.onModeLockOpen}
/>
}
textAlgin="center"
cancelButtonText="取消"
confirmButtonText="确定"
close={this.cancelModeSwitchBtn}
confirm={this.confirmModeSwitchBtn}
/>
<Popup
show={isShowHistoryMsg}
className="custom-popup"
overlay={false}
>
<View className="sync-history-msg">...</View>
</Popup>
</View>
{errorTips && (
<Block>
<View className="msg-tips">
<Image
className="msg-tips-img"
src={require("@/img/tips.png")}
<View>
<View className="iot-main">
<View className="banner-box">
<View>
<Video
className="video-or-image"
src={currentVideoSrc}
loop
id="myVideo"
objectFit="cover"
enablePlayGesture
showFullscreenBtn={false}
onLoadedMetaData={this.GetVideosTime}
/>
{errorTips && (
<Block>
<View className="msg-tips">
<Image
className="msg-tips-img"
src={require("@/img/tips.png")}
/>
<View className="msg-tips-content">{errorTips}</View>
</View>
</Block>
)}
</View>
{ActiveModeItem.modeType !== "moistureTest" && (
<View className="fr200-iot-device">
<View className="item">
<Text className="device-time">
<Text className="time">{currentTime}</Text>
</Text>
</View>
<View className="line" />
<View className="item">
<Text className="gear">
{ActiveModeItem.modeType === "led"
? "-"
: currentGear}
</Text>
</View>
<View className="line" />
<ElectricityView
Electricity={Electricity}
DeviceConnectStatus={DeviceConnectStatus}
/>
<View className="msg-tips-content">{errorTips}</View>
</View>
</Block>
)}
</View>
<View className="fr200-iot-device">
<View className="item">
<Text className="device-time">
<Text className="time">{currentTime}</Text>
</Text>
</View>
<View className="line" />
<View className="item">
<Text className="gear">{currentGear}</Text>
)}
</View>
<View className="line" />
<ElectricityView
Electricity={Electricity}
DeviceConnectStatus={DeviceConnectStatus}
/>
</View>
</View>
{ModeList.length > 0 && (
<ModeListView
isPop={false}
isShowNurse={isShowNurse}
ModeList={ModeList}
ModeType={ModeType}
ModeID={ModeID}
activeModeID={activeModeID}
onEmit={this.modeCurrentFun}
onEmitShowAll={this.openModeSwitch}
onModeLockOpen={this.onModeLockOpen}
/>
)}
{/* <button onClick={this.look.bind(this)}>echarts </button>
{ModeList.length > 0 && (
<ModeListView
isPop={false}
isShowNurse={isShowNurse}
ModeList={ModeList}
ModeType={ModeType}
ModeID={ModeID}
activeModeID={activeModeID}
onEmit={this.modeCurrentFun}
onEmitShowAll={this.openModeSwitch}
onModeLockOpen={this.onModeLockOpen}
/>
)}
{/* <button onClick={this.look.bind(this)}>echarts </button>
<button onClick={this.updata.bind(this)}> </button> */}
<PopupAlert
isShow={isNotEnoughTime}
isClose
title="提示"
content="您的本次护理时间不足,请重新护理"
confirmButtonText="确认"
textAlgin="center"
close={this.closeNotEnoughTime}
confirm={this.closeNotEnoughTime}
/>
<PopupAlert
isShow={isShowErrorTipsText}
isClose
zIndex={10020}
myClassName="level-up"
title="提示"
content={errorTipsText}
confirmButtonText="知道了"
textAlgin="center"
close={this.closeErrorTipsText}
confirm={this.closeErrorTipsText}
/>
<PopupConfirm
isShow={isShowTipsSave}
isClose
zIndex={10020}
myClassName="level-up"
title="提示"
content={
<Block>
<View></View>
<View></View>
</Block>
}
cancelButtonText="取消"
confirmButtonText="确认"
textAlgin="center"
close={this.closeTipsSave}
cancel={this.cancelTipsSave}
confirm={this.confirmTipsSave}
/>
<PopupStatus
isShow={isShowNursingSuccess}
isClose
title="您已结束本次护理"
type="success"
content="正在上传护理记录……"
confirmButtonText="知道了"
textAlgin="center"
close={() => {
/*不需要做处理*/
}}
/>
{isConnectShow && (
<ConnectionBluetoot
deviceInfo={currentDevice}
close={this.connectionClose}
isDisconnect={!isConnectionBlutoot}
offlineChange={() => { }}
pairingChange={this.pairingChange}
upgradeFun={() => { }}
/>
)}
<Popup
show={isShowHistoryMsg}
className="custom-popup"
overlay={false}
>
<View className="sync-history-msg">...</View>
</Popup>
</View>
<PopupAlert
isShow={isNotEnoughTime}
isClose
title="提示"
content="您的本次护理时间不足,请重新护理"
confirmButtonText="确认"
textAlgin="center"
close={this.closeNotEnoughTime}
confirm={this.closeNotEnoughTime}
/>
<View>
<View className="iot-main">
<View className="banner-box">
<View>
<Video
className="video-or-image"
src={currentVideoSrc}
loop
id="myVideo"
objectFit="cover"
enablePlayGesture
showFullscreenBtn={false}
onLoadedMetaData={this.GetVideosTime}
/>
{/* <button onClick={this.executePromises}>点击按钮</button> */}
{errorTips && (
<PopupAlert
isShow={isShowErrorTipsText}
isClose
zIndex={10020}
myClassName="level-up"
title="提示"
content={errorTipsText}
confirmButtonText="知道了"
textAlgin="center"
close={this.closeErrorTipsText}
confirm={this.closeErrorTipsText}
/>
<PopupConfirm
isShow={isShowTipsSave}
isClose
zIndex={10020}
myClassName="level-up"
title="提示"
content={
<Block>
<View className="msg-tips">
<Image
className="msg-tips-img"
src={require("@/img/tips.png")}
/>
<View className="msg-tips-content">{errorTips}</View>
</View>
<View></View>
<View></View>
</Block>
)}
</View>
}
cancelButtonText="取消"
confirmButtonText="确认"
textAlgin="center"
close={this.closeTipsSave}
cancel={this.cancelTipsSave}
confirm={this.confirmTipsSave}
/>
<View className="fr200-iot-device">
<View className="item">
<Text className="device-time">
<Text className="time">{currentTime}</Text>
</Text>
</View>
<View className="line" />
<View className="item">
<Text className="gear">{currentGear}</Text>
</View>
<View className="line" />
<ElectricityView
Electricity={Electricity}
DeviceConnectStatus={DeviceConnectStatus}
<PopupStatus
isShow={isShowNursingSuccess}
isClose
title="您已结束本次护理"
type="success"
content="正在上传护理记录……"
confirmButtonText="知道了"
textAlgin="center"
close={() => {
/*不需要做处理*/
}}
/>
{isConnectShow && (
<ConnectionBluetoot
deviceInfo={currentDevice}
close={this.connectionClose}
isDisconnect={!isConnectionBlutoot}
offlineChange={() => {}}
pairingChange={this.pairingChange}
upgradeFun={() => {}}
/>
</View>
</View>
)}
{ModeList.length > 0 && (
<ModeListView
isPop={false}
isShowNurse={isShowNurse}
ModeList={ModeList}
ModeType={ModeType}
ModeID={ModeID}
activeModeID={activeModeID}
onEmit={this.modeCurrentFun}
onEmitShowAll={this.openModeSwitch}
onModeLockOpen={this.onModeLockOpen}
/>
)}
<button onClick={this.updata.bind(this)}> </button>
{/* <button onClick={this.updata.bind(this)}>添加数据 </button> */}
<Popup
show={isShowHistoryMsg}
className="custom-popup"
overlay={false}
>
<View className="sync-history-msg">...</View>
</Popup>
</View>
<View className={classnames({ show: showEcharts })}>
<Echarts series={series} full={this.full.bind(this)}></Echarts>
<View>
<View className="iot-main">
<View className="banner-box">
<View>
<Video
className="video-or-image"
src={currentVideoSrc}
loop
id="myVideo"
objectFit="cover"
enablePlayGesture
showFullscreenBtn={false}
onLoadedMetaData={this.GetVideosTime}
/>
{/* <button onClick={this.executePromises}>点击按钮</button> */}
{errorTips && (
<Block>
<View className="msg-tips">
<Image
className="msg-tips-img"
src={require("@/img/tips.png")}
/>
<View className="msg-tips-content">
{errorTips}
</View>
</View>
</Block>
)}
</View>
<EchartsFullScean series={series} full={this.full}></EchartsFullScean>
<View className="fr200-iot-device">
<View className="item">
<Text className="device-time">
<Text className="time">{currentTime}</Text>
</Text>
</View>
<View className="line" />
<View className="item">
<Text className="gear">{currentGear}</Text>
</View>
<View className="line" />
<ElectricityView
Electricity={Electricity}
DeviceConnectStatus={DeviceConnectStatus}
/>
</View>
</View>
</View>
{/* {(ActiveModeItem.modeType === "face" ||
{ModeList.length > 0 && (
<ModeListView
isPop={false}
isShowNurse={isShowNurse}
ModeList={ModeList}
ModeType={ModeType}
ModeID={ModeID}
activeModeID={activeModeID}
onEmit={this.modeCurrentFun}
onEmitShowAll={this.openModeSwitch}
onModeLockOpen={this.onModeLockOpen}
/>
)}
<button onClick={this.updata.bind(this)}>
{" "}
</button>
{/* <button onClick={this.updata.bind(this)}>添加数据 </button> */}
<View className={classnames({ show: showEcharts })}>
<Echarts
series={series}
full={this.full.bind(this)}
></Echarts>
<EchartsFullScean
series={series}
full={this.full}
></EchartsFullScean>
</View>
{/* {(ActiveModeItem.modeType === "face" ||
ActiveModeItem.modeType === "eyes") && <Echarts></Echarts>} */}
{(ActiveModeItem.modeType === "maskPenetration" ||
ActiveModeItem.modeType === "essence") && (
<Gears
onEmitMinus={this.handleMinus}
onEmitAdd={this.handleAdd}
GearData={GearData}
></Gears>
)}
{(ActiveModeItem.modeType === "maskPenetration" ||
ActiveModeItem.modeType === "essence") && (
<Gears
onEmitMinus={this.handleMinus}
onEmitAdd={this.handleAdd}
GearData={GearData}
></Gears>
)}
{ActiveModeItem.modeType === "moistureTest" && (
<WaterTest
isRuningTest={isRuningTest}
stepList={waterStepList}
stepIndex={waterStepIndex}
></WaterTest>
)}
</View>
{ActiveModeItem.modeType === "moistureTest" && (
<WaterTest
isRuningTest={isRuningTest}
stepList={waterStepList}
stepIndex={waterStepIndex}
></WaterTest>
)}
</View>
{/* <Footer
{/* <Footer
currentWorkModeType={currentWorkModeType}
isRuningTest={isRuningTest}
isStopNurse={isStopNurse}
@ -2922,20 +2966,22 @@ class IotCarePlanFR200 extends Component<any, any> {
onEmitEndPlan={this.onEndPlan}
onsuccess={this.onsuccess}
/> */}
</View>
</View>
</View>
)}
{isFullScreen && (
<View>
<button onClick={this.updata.bind(this)}> </button>
</View>
</View>)}
{isFullScreen && (<View>
<button onClick={this.updata.bind(this)}> </button>
<EchartsFullScean series={series} full={this.full}></EchartsFullScean>
</View>)
}
<EchartsFullScean
series={series}
full={this.full}
></EchartsFullScean>
</View>
)}
</Block>
)
);
}
}

@ -9,7 +9,7 @@ interface Props {
onEmitStartNurse: Function; // 每次点击item回调事件和数据给父组件
onEmitSwitchChange: Function;
onEmitEndPlan: Function;
onsuccess:Function
onsuccess: Function;
}
function Index({
currentWorkModeType,
@ -18,7 +18,7 @@ function Index({
onEmitStartNurse,
onEmitSwitchChange,
onEmitEndPlan,
onsuccess
onsuccess,
}: Props) {
const onStartNurse = () => {
onEmitStartNurse();
@ -31,24 +31,31 @@ function Index({
const onEndPlan = () => {
onEmitEndPlan();
};
const onSuccessNurse = () => {
onsuccess();
};
return (
<Block>
<View className="iot-footer">
{currentWorkModeType === 3 && (
<Block>
{isRuningTest === 1 ? (
<View className="btn" onClick={onStartNurse}>
</View>
) : isRuningTest === 2 ? (
<View className="btn">...</View>
) : isRuningTest === 3 ? (
<View className="btn" onClick={onStartNurse}></View>
) : (
<View className="btn" onClick={onsuccess}></View>
)}
</Block>
{isRuningTest === 1 ? (
<View className="btn" onClick={onStartNurse}>
</View>
) : isRuningTest === 2 ? (
<View className="btn">...</View>
) : isRuningTest === 3 ? (
<View className="btn" onClick={onStartNurse}>
</View>
) : (
<View className="btn" onClick={onSuccessNurse}>
</View>
)}
</Block>
)}
{currentWorkModeType === 2 && (

@ -31,7 +31,6 @@ function Index({
let PermeationList = ModeList.filter((item) => item.modeClass === 3); // 专研促渗
let SensitiveList = ModeList.filter((item) => item.modeClass === 4); // 敏感期护理
let IntelligenceList = ModeList.filter((item) => item.modeClass === 5); // 智能测肤
console.log(activeModeID, "查看id", BaseList, ModeList);
const onItemClick = (item) => {
if (item.lock) {
onModeLockOpen(); // 点击了锁定模式
@ -85,7 +84,9 @@ function Index({
<View className="mode-info">
<View className="mode-info-title">{item.modeName}</View>
<View className="mode-info-time">
{item.modeTimeStr}
{item.modeTimeStr === "00:00"
? "--:--"
: item.modeTimeStr}
</View>
<View
className={classnames("mode-info-select", {

@ -1,4 +1,5 @@
export default definePageConfig({
navigationBarTitleText: '首页',
enablePullDownRefresh: false,
enablePageMeta: true
})

@ -11,6 +11,7 @@ import {
Swiper,
SwiperItem,
RichText,
PageMeta,
} from "@tarojs/components";
import { Popup } from "@antmjs/vantui";
/*** redux ***/
@ -943,6 +944,10 @@ class Index extends Component<any, any> {
// return;
}
goTest() {
go("/pages/consultant/consultant");
}
//连接完成时数据的回调
offlineChange = async (e) => {
console.log("offlineChange", e);
@ -1122,6 +1127,7 @@ class Index extends Component<any, any> {
return (
<Block>
{/* <PageMeta pageOrientation="landscape"> */}
<View catchMove>
<PopupAlert
isShow={isCommonError}
@ -1446,6 +1452,13 @@ class Index extends Component<any, any> {
<Popup show={show} className="custom-popup" overlay={false}>
<View className="popBox"></View>
</Popup>
{/* </PageMeta> */}
{/* <View
style="position:fixed;width:100vw;height:100vh"
onClick={this.goTest}
>
</View> */}
</Block>
);
}

@ -67,9 +67,9 @@ export default class Index extends Component<any, any> {
async getStatistics(id) {
let data = {};
if (id != null) {
data["instrumentId"] = id;
data["nursingId"] = id;
}
let res = await InstrumentInfo.apiNursingLog.getStatistics(data);
let res = await InstrumentInfo.apiNursingLog.getStatisticsFace(data);
if (res.data.code === 200) {
this.setState({ statistics: res.data.data });
@ -193,7 +193,6 @@ export default class Index extends Component<any, any> {
};
let res = await InstrumentInfo.apiClock.getList(data);
if (res.data.code === 200) {
console.log(this.state.clockStatistics, 88888);
this.state.clockStatistics.map((item) => {
if (item.id === id) {
@ -241,12 +240,20 @@ export default class Index extends Component<any, any> {
punchInInfo.clockImageList.splice(i, 1);
this.setState({ punchInInfo });
}
getRouteId() {
async getRouteId() {
let punchInInfo =this.state.punchInInfo
const searchParams = new URLSearchParams(window.location.search);
const id = searchParams.get("id");
const recordId = searchParams.get("recordId");
this.getStatistics(id);
this.getRecord(id, recordId);
let res1 = await InstrumentInfo.apiClock.getLatestClockRecord();
punchInInfo.clockContent =res1.data.data.clockContent
punchInInfo.clockImageList =res1.data.data.clockImg
this.setState({ punchInInfo });
// 获取图片和文本
console.log(recordId);
}
getTime(time) {

@ -81,16 +81,7 @@ export default class Index extends Component<any, any> {
data["nursingId"] = ids;
}
let res = await InstrumentInfo.apiNursingLog.getStatisticsFace(data);
// // 获取echarts数据 这个是获取接口更新echarts页面
// let res2 = await InstrumentInfo.apiNursingLog.getStatiCDE(ids);
// let nursingData=JSON.parse(res2.data.data.nursingData)
// let obj ={
// modeName:res2.data.data.modeName,
// data:nursingData
// }
// this.init({
// obj:JSON.stringify(obj)
// })
if (res.data.code === 200) {
this.setState({ statistics: res.data.data });
}
@ -168,38 +159,13 @@ export default class Index extends Component<any, any> {
res.data.data.reverse();
if (res.data.data.length > 0) {
res.data.data.map((item, index) => {
item.isMore = false;
item.detail = [];
if (index === 0) {
item.isMore = true;
this.getList(item.id, item.year, item.month);
}
this.state.monthTime.map((monthItem) => {
if (monthItem.month == item.month) {
monthItem.time = item.clockNum;
}
});
});
this.setState({ monthTime: this.state.monthTime });
} else {
let monthTime = [
{ month: 1, time: 0 },
{ month: 2, time: 0 },
{ month: 3, time: 0 },
{ month: 4, time: 0 },
{ month: 5, time: 0 },
{ month: 6, time: 0 },
{ month: 7, time: 0 },
{ month: 8, time: 0 },
{ month: 9, time: 0 },
{ month: 10, time: 0 },
{ month: 11, time: 0 },
{ month: 12, time: 0 },
];
this.setState({ monthTime });
let clockStatistics = this.state.clockStatistics
clockStatistics=res.data.data
this.setState({ clockStatistics });
}
this.setState({ clockStatistics: res.data.data });
}
}
// 获取当月打卡记录
@ -212,7 +178,6 @@ export default class Index extends Component<any, any> {
if (res.data.code === 200) {
this.state.clockStatistics.map((item) => {
console.log(item,'iiiiiiii',id);
if (item.id === id) {
item.detail = res.data.data;
@ -260,20 +225,17 @@ export default class Index extends Component<any, any> {
this.setState({ punchInInfo });
}
async getRouteId() {
let clockStatistics =this.state.clockStatistics
let punchInInfo =this.state.punchInInfo
const searchParams = new URLSearchParams(window.location.search);
const id = searchParams.get("id");
const recordId = searchParams.get("recordId");
this.getStatistics(id);
let res1 = await InstrumentInfo.apiClock.getLatestClockRecord();
punchInInfo.clockContent =res1.data.data.clockContent
punchInInfo.clockImageList =res1.data.data.clockImg
let obj:any ={}
obj.detail = res1.data.data;
obj.updateTime = getdates(res1.data.data.updateTime).replace(/-/g, ".");
let arr:any =[]
arr.push(obj)
this.setState({ clockStatistics:arr });
this.setState({ punchInInfo });
setTimeout(function() {
@ -302,7 +264,7 @@ setTimeout(function() {
}
this.init(options)
this.getRouteId();
// this.getClockStatistics()
this.getClockStatistics()
}
init(options){

@ -1,4 +1,12 @@
import { Block, View, Text, Image, Input, Button, PageMeta } from "@tarojs/components";
import {
Block,
View,
Text,
Image,
Input,
Button,
PageMeta,
} from "@tarojs/components";
import { Component, PropsWithChildren, useEffect, useState } from "react";
import { go } from "@/utils/traoAPI";
import { InstrumentInfo } from "@/utils/Interface";
@ -21,94 +29,110 @@ class MoistureTestReport extends Component<any, any> {
super(props);
this.state = {
name: "重新登录",
imgUrl: '',
imgUrl: "",
reportShow: true,
reportData: {
curDate: '',
curDate: "",
shuifenLevel: {
head: 2,
leftFace: 3,
rightFace: 7
rightFace: 7,
},
shuifenList: [],
shuifenGear: {
head: 0,
leftFace: 0,
rightFace: 0
}
rightFace: 0,
},
},
isClock: false,
xinde: '',
xinde: "",
imglist: [],
id: 0,
show: false,
modeId: 0,
echartsData: {},
showEcharts: false
showEcharts: false,
};
}
componentDidMount() {}
componentDidMount() { }
componentWillUnmount() { }
componentWillUnmount() {}
componentDidShow() { }
componentDidShow() {}
componentDidHide() { }
componentDidHide() {}
onLoad(option) {
console.log(option);
let Bool = JSON.parse(option?.report)
let Bool = JSON.parse(option?.report);
if (!Bool) {
this.setState({
reportShow: Bool
})
reportShow: Bool,
});
}
let data = JSON.parse(option.data)
let { reportData } = this.state
reportData.curDate = option.date
reportData.curDate = option.report
data.GearData.map(item => {
if (item.name == '额头') {
reportData.shuifenLevel.head = item.forehead
let gear = Math.ceil((11 - reportData.shuifenLevel.head) / 2)
reportData.shuifenGear.head = gear
} else if (item.name == '左脸颊') {
reportData.shuifenLevel.leftFace = item.forehead
let gear = Math.ceil((11 - reportData.shuifenLevel.leftFace) / 2)
reportData.shuifenGear.leftFace = gear
} else if (item.name == '右脸颊') {
reportData.shuifenLevel.rightFace = item.forehead
let gear = Math.ceil((11 - reportData.shuifenLevel.rightFace) / 2)
reportData.shuifenGear.rightFace = gear
let data = JSON.parse(option.data);
let { reportData } = this.state;
reportData.curDate = option.date;
reportData.curDate = option.report;
data.GearData.map((item) => {
if (item.name == "额头") {
reportData.shuifenLevel.head = item.forehead;
let gear = Math.ceil((11 - reportData.shuifenLevel.head) / 2);
reportData.shuifenGear.head = gear;
} else if (item.name == "左脸颊") {
reportData.shuifenLevel.leftFace = item.forehead;
let gear = Math.ceil((11 - reportData.shuifenLevel.leftFace) / 2);
reportData.shuifenGear.leftFace = gear;
} else if (item.name == "右脸颊") {
reportData.shuifenLevel.rightFace = item.forehead;
let gear = Math.ceil((11 - reportData.shuifenLevel.rightFace) / 2);
reportData.shuifenGear.rightFace = gear;
}
})
});
this.setState({ reportData, modeId: option.modeId, echartsData: JSON.parse(option.echartsData) });
this.setState({
reportData,
modeId: option.modeId,
echartsData: JSON.parse(option.echartsData),
});
// this.moistureTest(option.id, reportData.curDate)
}
async initData() { }
async initData() {}
toIndex() {
Taro.reLaunch({ url: "/pages/index/index" });
}
toNursing() {
go(`/moduleIOT/pages/iotCarePlan/FR200?modeId=${this.state.modeId}`)
go(`/moduleIOT/pages/iotCarePlan/FR200?modeId=${this.state.modeId}`);
}
render() {
let { name, imgUrl, reportData, reportData1, reportShow, isClock, xinde, imglist, id, show, modeId, echartsData, showEcharts } = this.state
let {
name,
imgUrl,
reportData,
reportData1,
reportShow,
isClock,
xinde,
imglist,
id,
show,
modeId,
echartsData,
showEcharts,
} = this.state;
const getStatusData = (level) => {
var bgCssData = {
serious: 'background: #FFE3E3',
moderate: 'background: #FFEBDC',
slight: 'background: #F6FCFF',
normal: 'background: #F8F8F8',
sufficient: 'background: #F8F8F8'
}
serious: "background: #FFE3E3",
moderate: "background: #FFEBDC",
slight: "background: #F6FCFF",
normal: "background: #F8F8F8",
sufficient: "background: #F8F8F8",
};
// var progressBgData = {
// serious: 'background: #FF9393',
// moderate: 'background: #FFC58C',
@ -117,216 +141,312 @@ class MoistureTestReport extends Component<any, any> {
// sufficient: 'background: #9FDBF3'
// }
var progressBgData = {
serious: '#FF9393',
moderate: '#FFC58C',
slight: '#E5F3F9',
normal: '#C2E5F3',
sufficient: '#9FDBF3'
}
serious: "#FF9393",
moderate: "#FFC58C",
slight: "#E5F3F9",
normal: "#C2E5F3",
sufficient: "#9FDBF3",
};
if (level >= 1 && level <= 2) {
return {
bg: bgCssData.serious,
title: '严重缺水',
title: "严重缺水",
gear: 5,
img: 'serious',
progressBg: progressBgData.serious
}
img: "serious",
progressBg: progressBgData.serious,
};
} else if (level >= 3 && level <= 4) {
return {
bg: bgCssData.moderate,
title: '中度缺水',
title: "中度缺水",
gear: 4,
img: 'moderate',
progressBg: progressBgData.moderate
}
img: "moderate",
progressBg: progressBgData.moderate,
};
} else if (level >= 5 && level <= 6) {
return {
bg: bgCssData.slight,
title: '轻微缺水',
title: "轻微缺水",
gear: 3,
img: 'slight',
progressBg: progressBgData.slight
}
img: "slight",
progressBg: progressBgData.slight,
};
} else if (level >= 7 && level <= 8) {
return {
bg: bgCssData.normal,
title: '水分正常',
title: "水分正常",
gear: 2,
img: 'normal',
progressBg: progressBgData.normal
}
img: "normal",
progressBg: progressBgData.normal,
};
} else if (level >= 9 && level <= 10) {
return {
bg: bgCssData.sufficient,
title: '水分充足',
title: "水分充足",
gear: 1,
img: 'sufficient',
progressBg: progressBgData.sufficient
}
img: "sufficient",
progressBg: progressBgData.sufficient,
};
}
}
};
return (
<Block>
<Navbar isBack titleSlot='水分测试报告'></Navbar>
<View className='moisture_test_report'>
<View className='time'>{reportData.curDate}</View>
<View className='report_data'>
<View className='forehead moisture_block flex' style={getStatusData(reportData.shuifenLevel.head)!.bg}>
<Image className='moisture_img' src={require(`@/img/fr200/${getStatusData(reportData.shuifenLevel.head)!.img}.png`)} mode='aspectFill'></Image>
<View className='pos_info'>
<View className='top'></View>
<View className='bottom'>{getStatusData(reportData.shuifenLevel.head)!.title}</View>
<View className='bottom'></View>
<Navbar isBack titleSlot='水分测试报告'></Navbar>
<View className='moisture_test_report'>
<View className='time'>{reportData.curDate}</View>
<View className='report_data'>
<View
className='forehead moisture_block flex'
style={getStatusData(reportData.shuifenLevel.head)!.bg}
>
<Image
className='moisture_img'
src={require(`@/img/fr200/${
getStatusData(reportData.shuifenLevel.head)!.img
}.png`)}
mode='aspectFill'
></Image>
<View className='pos_info'>
<View className='top'></View>
<View className='bottom'>
{getStatusData(reportData.shuifenLevel.head)!.title}
</View>
<View className='bottom'></View>
</View>
<View className='left_face moisture_block flex' style={getStatusData(reportData.shuifenLevel.leftFace)!.bg}>
<Image className='moisture_img' src={require(`@/img/fr200/${getStatusData(reportData.shuifenLevel.leftFace)!.img}.png`)} mode='aspectFill'></Image>
<View className='pos_info'>
<View className='top'></View>
<View className='bottom'>{getStatusData(reportData.shuifenLevel.leftFace)!.title}</View>
<View className='bottom'></View>
</View>
<View
className='left_face moisture_block flex'
style={getStatusData(reportData.shuifenLevel.leftFace)!.bg}
>
<Image
className='moisture_img'
src={require(`@/img/fr200/${
getStatusData(reportData.shuifenLevel.leftFace)!.img
}.png`)}
mode='aspectFill'
></Image>
<View className='pos_info'>
<View className='top'></View>
<View className='bottom'>
{getStatusData(reportData.shuifenLevel.leftFace)!.title}
</View>
<View className='bottom'></View>
</View>
<View className='right_face moisture_block flex' style={getStatusData(reportData.shuifenLevel.rightFace)!.bg}>
<Image className='moisture_img' src={require(`@/img/fr200/${getStatusData(reportData.shuifenLevel.rightFace)!.img}.png`)} mode='aspectFill'></Image>
<View className='pos_info'>
<View className='top'></View>
<View className='bottom'>{getStatusData(reportData.shuifenLevel.rightFace)!.title}</View>
<View className='bottom'></View>
</View>
<View
className='right_face moisture_block flex'
style={getStatusData(reportData.shuifenLevel.rightFace)!.bg}
>
<Image
className='moisture_img'
src={require(`@/img/fr200/${
getStatusData(reportData.shuifenLevel.rightFace)!.img
}.png`)}
mode='aspectFill'
></Image>
<View className='pos_info'>
<View className='top'></View>
<View className='bottom'>
{getStatusData(reportData.shuifenLevel.rightFace)!.title}
</View>
<View className='bottom'></View>
</View>
<View className='example_box'>
<Image className='banner_img' src='@/img/fr200/shuifen.png' mode='aspectFill'></Image>
<View className='line1'></View>
<View className='line2'></View>
<View className='line3'></View>
</View>
<View className='example_box'>
<Image
className='banner_img'
src='@/img/fr200/shuifen.png'
mode='aspectFill'
></Image>
<View className='line1'></View>
<View className='line2'></View>
<View className='line3'></View>
</View>
<View className='moisture_level_info'>
<View className='level_info'>
<View className='items flex aitems'>
<View className='pos_name'></View>
<View className='progress'>
<View
className='progress_width'
style={{
width: `${reportData.shuifenLevel.head * 10}%`,
backgroundColor: getStatusData(
reportData.shuifenLevel.head
)!.progressBg,
}}
></View>
{/* style='{width: {reportData.shuifenLevel.head * 10}%;{util.getStatusData(reportData.shuifenLevel.head).progressBg}}' */}
</View>
<View className='level'>
{reportData.shuifenLevel.head}
</View>
</View>
<View className='items flex aitems'>
<View className='pos_name'></View>
<View className='progress'>
<View
className='progress_width left_face_progress'
style={{
width: `${reportData.shuifenLevel.leftFace * 10}%`,
backgroundColor: getStatusData(
reportData.shuifenLevel.leftFace
)!.progressBg,
}}
></View>
</View>
<View className='level'>
{reportData.shuifenLevel.leftFace}
</View>
</View>
<View className='items flex aitems'>
<View className='pos_name'></View>
<View className='progress'>
<View
className='progress_width right_face_progress'
style={{
width: `${reportData.shuifenLevel.rightFace * 10}%`,
backgroundColor: getStatusData(
reportData.shuifenLevel.rightFace
)!.progressBg,
}}
></View>
</View>
<View className='level'>
{reportData.shuifenLevel.rightFace}
</View>
</View>
</View>
<View className='moisture_level_info'>
<View className='level_info'>
<View className='moisture_level'>
<View className='level_txt flex aitems jcenter'>
<View className='circle normal'></View>
<View className='txt'></View>
</View>
<View className='level_list flex'>
<View className='items flex aitems'>
<View className='pos_name'></View>
<View className='progress'>
<View className='progress_width' style={{ width: `${reportData.shuifenLevel.head * 10}%`, backgroundColor: getStatusData(reportData.shuifenLevel.head)!.progressBg }}></View>
{/* style='{width: {reportData.shuifenLevel.head * 10}%;{util.getStatusData(reportData.shuifenLevel.head).progressBg}}' */}
</View>
<View className='level'>{reportData.shuifenLevel.head}</View>
<View className='circle serious'></View>
<View className='txt'>1-2</View>
</View>
<View className='items flex aitems'>
<View className='pos_name'></View>
<View className='progress'>
<View className='progress_width left_face_progress' style={{ width: `${reportData.shuifenLevel.leftFace * 10}%`, backgroundColor: getStatusData(reportData.shuifenLevel.leftFace)!.progressBg }}></View>
</View>
<View className='level'>{reportData.shuifenLevel.leftFace}</View>
<View className='circle moderate'></View>
<View className='txt'>3-4</View>
</View>
<View className='items flex aitems'>
<View className='pos_name'></View>
<View className='progress'>
<View className='progress_width right_face_progress' style={{ width: `${reportData.shuifenLevel.rightFace * 10}%`, backgroundColor: getStatusData(reportData.shuifenLevel.rightFace)!.progressBg }}></View>
</View>
<View className='level'>{reportData.shuifenLevel.rightFace}</View>
<View className='circle slight'></View>
<View className='txt'>5-6</View>
</View>
</View>
<View className='moisture_level'>
<View className='level_txt flex aitems jcenter'>
<View className='items flex aitems'>
<View className='circle normal'></View>
<View className='txt'></View>
<View className='txt'>7-8</View>
</View>
<View className='level_list flex'>
<View className='items flex aitems'>
<View className='circle serious'></View>
<View className='txt'>1-2</View>
</View>
<View className='items flex aitems'>
<View className='circle moderate'></View>
<View className='txt'>3-4</View>
</View>
<View className='items flex aitems'>
<View className='circle slight'></View>
<View className='txt'>5-6</View>
</View>
<View className='items flex aitems'>
<View className='circle normal'></View>
<View className='txt'>7-8</View>
</View>
<View className='items flex aitems'>
<View className='circle sufficient'></View>
<View className='txt'>9-10</View>
</View>
<View className='items flex aitems'>
<View className='circle sufficient'></View>
<View className='txt'>9-10</View>
</View>
<View className='pour'></View>
</View>
<View className='pour'>
</View>
</View>
</View>
</View>
</View>
</View>
<View className='report_chart'>
<View className='chart_title common_title'></View>
<View className='container'>
<Echarts echartsData={echartsData}></Echarts>
</View>
</View>
<View className='report_chart'>
<View className='chart_title common_title'></View>
<View className='container'>
<Echarts echartsData={echartsData}></Echarts>
<View className='gear_recommend'>
<View className='gear_header flex aitems sb'>
<View className='gear_title common_title'></View>
{reportShow ? <View className='gear_btn'></View> : null}
</View>
<View className='gear_content flex aitems sb'>
<View className='left_content'>
<Image
className='banner_img'
src='@/img/fr200/mian-mo.png'
mode='aspectFill'
></Image>
<View className='type'></View>
</View>
</View>
<View className='gear_recommend'>
<View className='gear_header flex aitems sb'>
<View className='gear_title common_title'></View>
{reportShow ? (
<View className='gear_btn'></View>
) : null}
<View className='gear_btn'></View>
</View>
<View className='gear_content flex aitems sb'>
<View className='left_content'>
<Image className='banner_img' src='@/img/fr200/mian-mo.png' mode='aspectFill'></Image>
<Image
className='banner_img'
src='@/img/fr200/mian-mo.png'
mode='aspectFill'
></Image>
<View className='type'></View>
</View>
</View>
<View className='gear_recommend'>
<View className='gear_header flex aitems sb'>
<View className='gear_title common_title'></View>
<View className='gear_btn'></View>
</View>
<View className='gear_content flex aitems sb'>
<View className='left_content'>
<Image className='banner_img' src='@/img/fr200/mian-mo.png' mode='aspectFill'></Image>
<View className='type'></View>
</View>
<View className='right_content flex aitems'>
<View className='gear_list flex aitems sa'>
<View className='items flex aitems jcenter'>
<Image className='gear_img' src={require(`@/img/fr200/${getStatusData(reportData.shuifenLevel.head)!.gear}.png`)} mode='aspectFill'></Image>
<View className='name'></View>
<View className='level'>{reportData.shuifenGear.head}</View>
<View className='right_content flex aitems'>
<View className='gear_list flex aitems sa'>
<View className='items flex aitems jcenter'>
<Image
className='gear_img'
src={require(`@/img/fr200/${
getStatusData(reportData.shuifenLevel.head)!.gear
}.png`)}
mode='aspectFill'
></Image>
<View className='name'></View>
<View className='level'>
{reportData.shuifenGear.head}
</View>
<View className='items flex aitems jcenter'>
<Image className='gear_img' src={require(`@/img/fr200/${getStatusData(reportData.shuifenLevel.leftFace)!.gear}.png`)} mode='aspectFill'></Image>
<View className='name'></View>
<View className='level'>{reportData.shuifenGear.leftFace}</View>
</View>
<View className='items flex aitems jcenter'>
<Image
className='gear_img'
src={require(`@/img/fr200/${
getStatusData(reportData.shuifenLevel.leftFace)!.gear
}.png`)}
mode='aspectFill'
></Image>
<View className='name'></View>
<View className='level'>
{reportData.shuifenGear.leftFace}
</View>
<View className='items flex aitems jcenter'>
<Image className='gear_img' src={require(`@/img/fr200/${getStatusData(reportData.shuifenLevel.rightFace)!.gear}.png`)} mode='aspectFill'></Image>
<View className='name'></View>
<View className='level'>{reportData.shuifenGear.rightFace}</View>
</View>
<View className='items flex aitems jcenter'>
<Image
className='gear_img'
src={require(`@/img/fr200/${
getStatusData(reportData.shuifenLevel.rightFace)!.gear
}.png`)}
mode='aspectFill'
></Image>
<View className='name'></View>
<View className='level'>
{reportData.shuifenGear.rightFace}
</View>
</View>
</View>
</View>
</View>
</View>
</View>
{reportShow ? (
<View className='go_clock_in flex sb aitems' >
<View className='go_clock_btn' onClick={this.toNursing.bind(this)}></View>
<View className='go_clock_in flex sb aitems'>
<View className='go_clock_btn' onClick={this.toNursing.bind(this)}>
</View>
<View className='jump_box flex aitems' onClick={this.toIndex}>
<View className='txt'></View>
<Image src='@/img/fr200/right.png' mode='aspectFill'></Image>
</View>
</View>
) : null}
</Block >
</Block>
);
}
}

@ -1,5 +1,6 @@
import Taro, { setStorageSync } from "@tarojs/taro";
import classnames from "classnames";
import dayjs from "dayjs";
import { Component, PropsWithChildren, useEffect, useState } from "react";
import {
@ -40,8 +41,11 @@ export default class Recording extends Component<any, any> {
curIndex: null,
clockStatistics: [],
statistics: [],
yearValue: dayjs().format("YYYY-MM-DD"),
year: new Date().getFullYear(),
today: new Date(),
startYear: "2000-01-01",
endYear: dayjs().format("YYYY-MM-DD"),
monthTime: [
{ month: 1, time: 0 },
{ month: 2, time: 0 },
@ -66,9 +70,9 @@ export default class Recording extends Component<any, any> {
};
}
componentDidMount() {}
componentDidMount() { }
componentWillUnmount() {}
componentWillUnmount() { }
// 格式化时间
getTime(time) {
const hour = time.slice(0, 2);
@ -264,21 +268,31 @@ export default class Recording extends Component<any, any> {
ViewAddInstrument: ViewAddInstrument,
});
this.getRecord(null);
this.getBindingInstrumentList();
this.getLatestClockRecord();
this.getClockStatistics();
this.DayTime();
this.setStatusBar();
this.initData();
}
componentDidShow() {}
componentDidShow() { }
componentDidHide() {}
componentDidHide() { }
async initData() {}
initData = async () => {
this.getRecord(null);
Taro.showLoading({
title: "请求中...",
mask: true,
});
await Promise.all([
this.getBindingInstrumentList(),
this.getLatestClockRecord(),
this.getClockStatistics(),
this.DayTime(),
this.setStatusBar(),
]);
Taro.hideLoading();
};
// 选择年份
onChangeYear(event) {
console.log("event", event);
this.setState({ year: event.detail.value });
this.getClockStatistics(event.detail.value);
}
@ -326,11 +340,11 @@ export default class Recording extends Component<any, any> {
go(
"/recoding/pages/face_report_one/face_report_one?id=" +
item.id +
"&report=" +
report +
"&obj=" +
JSON.stringify(obj)
item.id +
"&report=" +
report +
"&obj=" +
JSON.stringify(obj)
);
};
// 打开第二种类型
@ -339,11 +353,11 @@ export default class Recording extends Component<any, any> {
let report = false;
go(
"/recoding/pages/face_report/face_report?id=" +
item.id +
"&recordId=" +
item.instrumentId +
"&report=" +
report
item.id +
"&recordId=" +
item.instrumentId +
"&report=" +
report
);
};
// 打开第三种类型
@ -389,13 +403,16 @@ export default class Recording extends Component<any, any> {
gears.push(level);
});
echartsData = {
gears, eDate
}
setStorageSync('moistureEachtsData', JSON.stringify(echartsData))
let report =false
go(`/recoding/pages/moisture_test_report/moisture_test_report?data=${allData.nursingData}&date=${allData.createTime}&modeId=${allData.modeId}&id=${allData.instrumentId}&echartsData=${JSON.stringify(echartsData)}&report=${report }`);
gears,
eDate,
};
setStorageSync("moistureEachtsData", JSON.stringify(echartsData));
let report = false;
go(
`/recoding/pages/moisture_test_report/moisture_test_report?data=${allData.nursingData
}&date=${allData.createTime}&modeId=${allData.modeId}&id=${allData.instrumentId
}&echartsData=${JSON.stringify(echartsData)}&report=${report}`
);
}
// 打开其他类型
@ -505,12 +522,13 @@ export default class Recording extends Component<any, any> {
clockStatistics,
statistics,
year,
today,
monthTime,
show,
punchInInfo,
navigationBarHeight,
statusBarHeight,
startYear,
endYear,
} = this.state;
const statusBarHeightRpx = statusBarHeight * 2;
const navigationBarHeightRpx = navigationBarHeight * 2;
@ -544,136 +562,128 @@ export default class Recording extends Component<any, any> {
</View>
</View>
{current === 0 && (
<ScrollView
className="products_list"
scroll-x="true"
style={{
top: height + 110 + "rpx",
position: "sticky",
}}
>
<View
className={classnames("all", {
products_item_active: !curIndex,
})}
onClick={this.onChangeProduct.bind(this, null)}
>
</View>
{bindingInstrumentList.map((item: any, index: any) => (
<View
key={item.id}
className={classnames("products_item", {
products_item_active: curIndex === item.id,
})}
onClick={this.onChangeProduct.bind(this, item.id)}
<View>
{current === 0 && (
<Block>
<ScrollView
className="products_list"
scrollX={true}
enhanced={true}
bounces={false}
// scrollIntoView={"products_item_" + curIndex}
style={{
top: height + 110 + "rpx",
position: "sticky",
}}
>
<Image
className="products_cover"
src={item.logo}
mode="aspectFill"
></Image>
<View className="products_title">{item.name}</View>
</View>
))}
</ScrollView>
)}
{current === 0 && recordList.length === 0 && (
<View>
<View className="nodata">
<Image
className="nodata_img"
src={require("@/img/nodata.png")}
></Image>
<View className="nodata_text"></View>
</View>
</View>
)}
{current === 0 && (
<View style="padding-bottom:200px">
{/* <View className='instrument_item' >
<View className='instrument_top flex sb aitems'>
<View className='time_box flex aitems'>
<View className='time'>2024.1.23</View>
<View className={classnames("tag", {
tag_active: current === 1,
})}
> 线</View>
</View>
<View className='report_btn flex'>
<View></View>
<Image className='arrow_icon' src={require("../../img/index/right.png")} mode='aspectFill'></Image>
</View>
</View>
<View className='instrument_middle flex'>
<Image className='instrument_cover' src={require("../../img/test/1706667011027.jpg")}></Image>
<View className='instrument_content'>
<View className='instrument_title'></View>
<View className='instrument_desc_box flex fc sb'>
<View className='instrument_desc'></View>
<View className='instrument_desc'>1500</View>
<View>
<View
id={"products_item_0"}
className={classnames("all", {
products_item_active: !curIndex,
})}
onClick={this.onChangeProduct.bind(this, null)}
>
</View>
</View>
</View>
</View> */}
<View className="instrument_list ">
{recordList.map((item: any, index: any) => (
<View className="recording-box" key={item.id}>
<View className="box-top">
<View className="top-left">
<View className="date">{item.createTime}</View>
{bindingInstrumentList.map((item: any, index: any) => {
return (
<View
className={classnames("tip", {
tag_active: item.online === 2,
key={item.id}
id={"products_item_" + item.id}
className={classnames("products_item", {
products_item_active: curIndex === item.id,
})}
onClick={this.onChangeProduct.bind(this, item.id)}
>
{item.online === 1 ? "在线" : "离线"}
</View>
</View>
{item.instrumentType === 2 && (
<View
className="top-right"
onClick={this.toReport.bind(
this,
item.instrumentId,
item.id,
item
)}
>
<Image
className="arrow_icon"
src={require("@/img/index/right.png")}
className="products_cover"
src={item.logo}
mode="aspectFill"
></Image>
<View className="products_title">{item.name}</View>
</View>
)}
);
})}
</View>
</ScrollView>
<View>
{recordList.length === 0 && (
<View>
<View className="nodata">
<Image
className="nodata_img"
src={require("@/img/nodata.png")}
></Image>
<View className="nodata_text"></View>
</View>
</View>
<View className="box-bottom">
<Image
className="recording_img"
src={item.modeImage}
></Image>
<View className="bottom-right">
<View className="title">{item.instrumentName}</View>
<View className="subtitle-box">
<View className="subtitle">{item.modeName}</View>
<View className="subtitle">
{item.instrumentType === 2 && (
<Text>{item.nursingTime}</Text>
)}
)}
{recordList.length > 0 && (
<View style="padding-bottom:200px">
<View className="instrument_list ">
{recordList.map((item: any, index: any) => (
<View className="recording-box" key={item.id}>
<View className="box-top">
<View className="top-left">
<View className="date">{item.createTime}</View>
<View
className={classnames("tip", {
tag_active: item.online === 2,
})}
>
{item.online === 1 ? "在线" : "离线"}
</View>
</View>
{item.instrumentType === 2 && (
<View
className="top-right"
onClick={this.toReport.bind(
this,
item.instrumentId,
item.id,
item
)}
>
<Image
className="arrow_icon"
src={require("@/img/index/right.png")}
mode="aspectFill"
></Image>
</View>
)}
</View>
<View className="box-bottom">
<Image
className="recording_img"
src={item.modeImage}
></Image>
<View className="bottom-right">
<View className="title">
{item.instrumentName}
</View>
<View className="subtitle-box">
<View className="subtitle">
{item.modeName}
</View>
<View className="subtitle">
{item.instrumentType === 2 && (
<Text>{item.nursingTime}</Text>
)}
</View>
</View>
</View>
</View>
</View>
</View>
))}
</View>
</View>
</View>
))}
</View>
</View>
)}
)}
</View>
</Block>
)}
</View>
{current === 1 && (
<View style="padding-bottom:200px">
{/* <View className='nodata'>
@ -688,11 +698,13 @@ export default class Recording extends Component<any, any> {
<View className="flex sb ab">
<View className="clock_in_statistics_title"></View>
<Picker
style="color:#000"
mode="date"
fields="year"
onChange={this.onChangeYear.bind(this)}
value="{{year}}"
end="{{today}}"
value={this.state.yearValue}
start={startYear}
end={endYear}
>
<View className="clock_in_statistics_date flex aitems">
<View>{year}</View>

Loading…
Cancel
Save