|
|
|
|
@ -2,16 +2,21 @@ import Taro from "@tarojs/taro";
|
|
|
|
|
import classnames from "classnames";
|
|
|
|
|
import { Component, PropsWithChildren, useEffect, useState } from "react";
|
|
|
|
|
import { Progress , Tab, Tabs, Dialog, Popup } from "@antmjs/vantui";
|
|
|
|
|
import { showModal } from "../../../utils/traoAPI";
|
|
|
|
|
import { showModal } from "@/utils/traoAPI";
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
Block, View, Text, Image, Input, Button, Textarea,
|
|
|
|
|
Block,
|
|
|
|
|
View,
|
|
|
|
|
Text,
|
|
|
|
|
Image,
|
|
|
|
|
Input,
|
|
|
|
|
Button,
|
|
|
|
|
Textarea,
|
|
|
|
|
} from "@tarojs/components";
|
|
|
|
|
import { date, getdates, previewImage } from "../../../utils/util";
|
|
|
|
|
|
|
|
|
|
/** 自定义组件 **/
|
|
|
|
|
import Navbar from "../../../components/navbar/navbar";
|
|
|
|
|
import PopupAlert from "../../../components/popup/popup-alert";
|
|
|
|
|
import { InstrumentInfo } from "../../../utils/Interface";
|
|
|
|
|
|
|
|
|
|
/** 自定义组件 **/
|
|
|
|
|
@ -21,8 +26,8 @@ export default class Index extends Component<any, any> {
|
|
|
|
|
constructor(props) {
|
|
|
|
|
super(props);
|
|
|
|
|
this.state = {
|
|
|
|
|
reportShow:true,
|
|
|
|
|
name: "template模板页",
|
|
|
|
|
reportShow: true,
|
|
|
|
|
name: "护理报告",
|
|
|
|
|
statistics: {},
|
|
|
|
|
recordList: [],
|
|
|
|
|
recordData: {},
|
|
|
|
|
@ -50,9 +55,9 @@ export default class Index extends Component<any, any> {
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
componentDidMount() { }
|
|
|
|
|
componentDidMount() {}
|
|
|
|
|
|
|
|
|
|
componentWillUnmount() { }
|
|
|
|
|
componentWillUnmount() {}
|
|
|
|
|
|
|
|
|
|
// 打开/关闭弹窗
|
|
|
|
|
setShow(show: boolean) {
|
|
|
|
|
@ -65,42 +70,47 @@ export default class Index extends Component<any, any> {
|
|
|
|
|
data["instrumentId"] = id;
|
|
|
|
|
}
|
|
|
|
|
let res = await InstrumentInfo.apiNursingLog.getStatistics(data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (res.data.code === 200) {
|
|
|
|
|
this.setState({ statistics: res.data.data });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async getRecord(id, recordId) {
|
|
|
|
|
console.log("id, recordId", id, recordId);
|
|
|
|
|
async getRecord(id, instrumentId) {
|
|
|
|
|
console.log("id, nursingLogId", id, instrumentId);
|
|
|
|
|
let data = {};
|
|
|
|
|
if (id != null) {
|
|
|
|
|
data["instrumentId"] = id;
|
|
|
|
|
data["nursingLogId"] = id;
|
|
|
|
|
}
|
|
|
|
|
let res = await InstrumentInfo.apiNursingLog.getRecord(data);
|
|
|
|
|
// 获取当前
|
|
|
|
|
let res1 = await InstrumentInfo.apiNursingLog.getRecordNow(id);
|
|
|
|
|
// 获取历史记录列表
|
|
|
|
|
let res = await InstrumentInfo.apiNursingLog.getRecordNew(data);
|
|
|
|
|
|
|
|
|
|
res1.data.data.nursingTime = this.getTime(res1.data.data.nursingTime);
|
|
|
|
|
res1.data.data.createTime = getdates(res1.data.data.createTime).replace(/-/g, ".");
|
|
|
|
|
|
|
|
|
|
this.setState({ recordData: res1.data.data });
|
|
|
|
|
|
|
|
|
|
if (res.data.code === 200) {
|
|
|
|
|
if (recordId) {
|
|
|
|
|
if (instrumentId) {
|
|
|
|
|
res.data.rows.map((item) => {
|
|
|
|
|
item.nursingTime = this.getTime(item.nursingTime);
|
|
|
|
|
item.createTime = getdates(item.createTime).replace(/-/g, ".");
|
|
|
|
|
|
|
|
|
|
if (item.id == recordId) {
|
|
|
|
|
this.setState({ recordData: item });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
this.setState({ recordData: res.data.rows[0] });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
recordList: res.data.rows.filter((item) => item.id != recordId),
|
|
|
|
|
recordList: res.data.rows.filter((item) => item.id != instrumentId),
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 文本框输入文字
|
|
|
|
|
handleTextareaInput = (e) => {
|
|
|
|
|
// 文本框输入文字
|
|
|
|
|
handleTextareaInput = (e) => {
|
|
|
|
|
const punchInInfo = this.state.punchInInfo;
|
|
|
|
|
this.setState({ punchInInfo: { ...punchInInfo, clockContent: e.detail.value } });
|
|
|
|
|
this.setState({
|
|
|
|
|
punchInInfo: { ...punchInInfo, clockContent: e.detail.value },
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
async submit() {
|
|
|
|
|
let punchInInfo = this.state.punchInInfo || {};
|
|
|
|
|
@ -123,21 +133,22 @@ export default class Index extends Component<any, any> {
|
|
|
|
|
t2: "您已完成今日打卡",
|
|
|
|
|
btn1show: false,
|
|
|
|
|
}).then(() => {
|
|
|
|
|
let data = new Date
|
|
|
|
|
Taro.setStorageSync('DayTime', data.toISOString())
|
|
|
|
|
let data = new Date();
|
|
|
|
|
Taro.setStorageSync("DayTime", data.toISOString());
|
|
|
|
|
this.setState({
|
|
|
|
|
clockShow: true,
|
|
|
|
|
});
|
|
|
|
|
this.getClockStatistics();
|
|
|
|
|
this.setShow(false);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
/**分页获取用户的打卡记录 page size*/
|
|
|
|
|
async getClockStatistics(year = this.state.year) {
|
|
|
|
|
/**分页获取用户的打卡记录 page size*/
|
|
|
|
|
async getClockStatistics(year = this.state.year) {
|
|
|
|
|
let res = await InstrumentInfo.apiClock.getClockStatistics({ year });
|
|
|
|
|
console.log(res,'查看返回',year);
|
|
|
|
|
|
|
|
|
|
if (res.data.code === 200) {
|
|
|
|
|
console.log(res, "查看返回", year);
|
|
|
|
|
|
|
|
|
|
if (res.data.code === 200) {
|
|
|
|
|
res.data.data.reverse();
|
|
|
|
|
if (res.data.data.length > 0) {
|
|
|
|
|
res.data.data.map((item, index) => {
|
|
|
|
|
@ -174,8 +185,8 @@ export default class Index extends Component<any, any> {
|
|
|
|
|
this.setState({ clockStatistics: res.data.data });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 获取当月打卡记录
|
|
|
|
|
async getList(id, year, month) {
|
|
|
|
|
// 获取当月打卡记录
|
|
|
|
|
async getList(id, year, month) {
|
|
|
|
|
let data = {
|
|
|
|
|
year,
|
|
|
|
|
month,
|
|
|
|
|
@ -195,41 +206,41 @@ export default class Index extends Component<any, any> {
|
|
|
|
|
this.setState({ clockStatistics: this.state.clockStatistics });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 上传图片
|
|
|
|
|
handleChooseImage() {
|
|
|
|
|
Taro.chooseMedia({
|
|
|
|
|
count: 1,
|
|
|
|
|
mediaType: ["image"],
|
|
|
|
|
sourceType: ["album", "camera"],
|
|
|
|
|
success: (res) => {
|
|
|
|
|
const tempFilePaths = res.tempFiles.map((item) => item.tempFilePath);
|
|
|
|
|
tempFilePaths?.forEach((item) => {
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
|
|
|
InstrumentInfo.apiClock
|
|
|
|
|
.clockFileUpload({ clockImg: item })
|
|
|
|
|
.then((res) => {
|
|
|
|
|
const currentImage = res.data.url;
|
|
|
|
|
const newImageList =
|
|
|
|
|
this.state.punchInInfo.clockImageList.length >= 3
|
|
|
|
|
? this.state.punchInInfo.clockImageList
|
|
|
|
|
: [...this.state.punchInInfo.clockImageList, currentImage];
|
|
|
|
|
const punchInInfo = this.state.punchInInfo;
|
|
|
|
|
punchInInfo.clockImageList = newImageList;
|
|
|
|
|
this.setState({ punchInInfo });
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
fail: (err) => {
|
|
|
|
|
console.info("err", err);
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
// 删除打卡图片
|
|
|
|
|
delImg(i) {
|
|
|
|
|
const punchInInfo = this.state.punchInInfo;
|
|
|
|
|
punchInInfo.clockImageList.splice(i, 1);
|
|
|
|
|
this.setState({ punchInInfo });
|
|
|
|
|
}
|
|
|
|
|
// 上传图片
|
|
|
|
|
handleChooseImage() {
|
|
|
|
|
Taro.chooseMedia({
|
|
|
|
|
count: 1,
|
|
|
|
|
mediaType: ["image"],
|
|
|
|
|
sourceType: ["album", "camera"],
|
|
|
|
|
success: (res) => {
|
|
|
|
|
const tempFilePaths = res.tempFiles.map((item) => item.tempFilePath);
|
|
|
|
|
tempFilePaths?.forEach((item) => {
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
|
|
|
InstrumentInfo.apiClock
|
|
|
|
|
.clockFileUpload({ clockImg: item })
|
|
|
|
|
.then((res) => {
|
|
|
|
|
const currentImage = res.data.url;
|
|
|
|
|
const newImageList =
|
|
|
|
|
this.state.punchInInfo.clockImageList.length >= 3
|
|
|
|
|
? this.state.punchInInfo.clockImageList
|
|
|
|
|
: [...this.state.punchInInfo.clockImageList, currentImage];
|
|
|
|
|
const punchInInfo = this.state.punchInInfo;
|
|
|
|
|
punchInInfo.clockImageList = newImageList;
|
|
|
|
|
this.setState({ punchInInfo });
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
fail: (err) => {
|
|
|
|
|
console.info("err", err);
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
// 删除打卡图片
|
|
|
|
|
delImg(i) {
|
|
|
|
|
const punchInInfo = this.state.punchInInfo;
|
|
|
|
|
punchInInfo.clockImageList.splice(i, 1);
|
|
|
|
|
this.setState({ punchInInfo });
|
|
|
|
|
}
|
|
|
|
|
getRouteId() {
|
|
|
|
|
const searchParams = new URLSearchParams(window.location.search);
|
|
|
|
|
const id = searchParams.get("id");
|
|
|
|
|
@ -250,31 +261,41 @@ delImg(i) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
async onLoad(options) {
|
|
|
|
|
console.log(options,'查看传过来的参数');
|
|
|
|
|
|
|
|
|
|
let Bool = JSON.parse(options?.report)
|
|
|
|
|
if(!Bool ){
|
|
|
|
|
console.log(options, "查看传过来的参数");
|
|
|
|
|
|
|
|
|
|
let Bool = JSON.parse(options?.report);
|
|
|
|
|
if (!Bool) {
|
|
|
|
|
this.setState({
|
|
|
|
|
reportShow:Bool
|
|
|
|
|
})
|
|
|
|
|
reportShow: Bool,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.getRouteId();
|
|
|
|
|
this.getClockStatistics()
|
|
|
|
|
this.getClockStatistics();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
componentDidShow() { }
|
|
|
|
|
componentDidShow() {}
|
|
|
|
|
|
|
|
|
|
componentDidHide() { }
|
|
|
|
|
componentDidHide() {}
|
|
|
|
|
|
|
|
|
|
async initData() { }
|
|
|
|
|
async initData() {}
|
|
|
|
|
|
|
|
|
|
GoIndex = () => {
|
|
|
|
|
Taro.switchTab({ url: "/pages/index/index" });
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
|
let { name, statistics, recordList, recordData, show,clockStatistics,punchInInfo,monthTime,reportShow } = this.state;
|
|
|
|
|
let {
|
|
|
|
|
name,
|
|
|
|
|
statistics,
|
|
|
|
|
recordList,
|
|
|
|
|
recordData,
|
|
|
|
|
show,
|
|
|
|
|
clockStatistics,
|
|
|
|
|
punchInInfo,
|
|
|
|
|
monthTime,
|
|
|
|
|
reportShow,
|
|
|
|
|
} = this.state;
|
|
|
|
|
return (
|
|
|
|
|
<Block>
|
|
|
|
|
<Navbar isBack titleSlot='护理报告'></Navbar>
|
|
|
|
|
@ -292,10 +313,10 @@ delImg(i) {
|
|
|
|
|
</View>
|
|
|
|
|
{/* </block> */}
|
|
|
|
|
</View>
|
|
|
|
|
<View className='main m-x-30'>
|
|
|
|
|
<View className='products_item' style='border: none'>
|
|
|
|
|
<View className='products_top flex aitems'>
|
|
|
|
|
<View className='add_time'>{recordData.createTime}</View>
|
|
|
|
|
<View className="main m-x-30">
|
|
|
|
|
<View className="products_item" style="border: none">
|
|
|
|
|
<View className="products_top flex aitems">
|
|
|
|
|
<View className="add_time">{recordData?.createTime}</View>
|
|
|
|
|
<View
|
|
|
|
|
className={classnames("tag", {
|
|
|
|
|
tag_active: recordData.online === 2,
|
|
|
|
|
@ -393,18 +414,17 @@ delImg(i) {
|
|
|
|
|
</View>
|
|
|
|
|
))}
|
|
|
|
|
</View>
|
|
|
|
|
{reportShow ? (
|
|
|
|
|
<View className='footer flex aitems'>
|
|
|
|
|
<View className='btn' onClick={this.setShow.bind(this, true)}>前往打卡</View>
|
|
|
|
|
<View className='text flex aitems'>
|
|
|
|
|
<View onClick={this.GoIndex}>跳过</View>
|
|
|
|
|
<Image
|
|
|
|
|
src={require("@/img/right.png")}
|
|
|
|
|
mode='aspectFill'
|
|
|
|
|
></Image>
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
): null}
|
|
|
|
|
{reportShow ? (
|
|
|
|
|
<View className='footer flex aitems'>
|
|
|
|
|
<View className='btn' onClick={this.setShow.bind(this, true)}>
|
|
|
|
|
前往打卡
|
|
|
|
|
</View>
|
|
|
|
|
<View className='text flex aitems'>
|
|
|
|
|
<View onClick={this.GoIndex}>跳过</View>
|
|
|
|
|
<Image src={require("@/img/right.png")} mode='aspectFill'></Image>
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
) : null}
|
|
|
|
|
<Popup show={show} onClose={() => this.setState({ show: false })}>
|
|
|
|
|
<View className='popBox'>
|
|
|
|
|
<Image
|
|
|
|
|
|