import React from "react";
import "antd-mobile-v2/dist/antd-mobile.css";
import { Icon, NavBar, TabBar, Modal } from "antd-mobile-v2";
// import { routerRedux } from 'dva/router';
import { connect, history, useLocation } from "umi";
import * as commonUtils from "@/utils/utils";
import styles from "./IndexMobile.less";
import SceneMobile from "./common/SceneMobile";
import MessageMobile from "./common/MessageMobile";
import ContactsMobile from "./common/ContactsMobile";
import WorkBenchMobile from "./common/WorkBenchMobile";
import CommobileList from "./commobileList/commobileList";
import ProcessReportMobile from "./common/ProcessReportMobile";
import MyselfMobile from "./common/MyselfMobile";
import ContactsInfoMobile from "./common/ContactsInfoMobile";
import RevisePasswordMobile from "./common/RevisePasswordMobile";
import CommobileBill from "./common/commobileBill";
import CommobilePrintPdf from "./common/commobilePrintPdf";
import ExamineMobile from "./common/ExamineMobile";
import Icon1 from "../../assets/mobile/1.png";
import Icon11 from "../../assets/mobile/11.png";
import Icon2 from "../../assets/mobile/2.png";
import Icon21 from "../../assets/mobile/21.png";
import Icon3 from "../../assets/mobile/3.png";
import Icon31 from "../../assets/mobile/31.png";
// import Icon4 from '../../assets/mobile/4.png';
// import Icon41 from '../../assets/mobile/41.png';
import Icon5 from "../../assets/mobile/5.png";
import Icon51 from "../../assets/mobile/51.png";
import Icon6 from "../../assets/mobile/6.png";
import Icon61 from "../../assets/mobile/61.png";
import Quotation from "./quotation/index";
import QuotationDetail from "./quotation/detail";
// import AppUtil from '../../utils/AppUtil';
import * as commonBusiness from "../../components/Common/commonBusiness";
// eslint-disable-next-line prefer-destructuring
const alert = Modal.alert;
class IndexMobile extends React.Component {
constructor(props) {
super(props);
this.state = {
selectedTab: "scene",
title: "现场",
hidden: false,
fullScreen: true,
touchStartPageX: 0, // 滑动开始的Y坐标
touchStartPageY: 0,
};
}
componentWillMount() {
history.push("/indexMobile"); // 刷新时更新路由,避免底部按钮和返回按钮错乱显示
if (this.props.routing && this.props.routing) {
const { state } = this.props.routing;
if (state) {
const { sId } = state;
if (sId === "myself") {
this.setState({ selectedTab: "myself" });
// this.renderContent('contacts');
}
}
}
// AppUtil.addDrag();
}
componentDidUpdate(prevProps) {
/* eslint-disable */
if (this.props.location && prevProps?.location.state !== this.props.location.state) {
const originTitle = {
message: "消息",
scene: "现场",
workbench: "工作台",
device: "设备",
quotation: "报价下单",
myself: "我的",
}[this.state.selectedTab];
try {
const path = JSON.parse(this.props.location.state || "{}");
this.setState({ title: path.title || originTitle });
} catch (error) {
this.setState({ title: originTitle });
}
}
}
handleTouchStart = e => {
this.setState({
touchStartPageX: e.changedTouches[0].pageX,
touchStartPageY: e.changedTouches[0].pageY,
});
};
handleTouchEnd = e => {
const touchEndtPageX = e.changedTouches[0].pageX;
const touchEndtPageY = e.changedTouches[0].pageY;
const touchDireactionX = touchEndtPageX - this.state.touchStartPageX; // 滑动横向坐标
const touchDireactionY = touchEndtPageY - this.state.touchStartPageY; // 滑动横向坐标
if (touchDireactionX > 100 && touchDireactionY > -80) {
// 滑动一定距离
const { plus } = window;
if (location.pathname === "/indexMobile") {
alert("确定退出吗?", "", [
{ text: "取消", onPress: () => {} },
{ text: "是", onPress: () => plus.runtime.quit() }, // 关闭app
]);
} else {
window.history.back(-1);
setTimeout(() => {
this.props.dispatch({ type: "app/refreshPage" });
}, 100);
}
}
};
renderContent(pageText) {
if (pageText === "message") {
if (location.pathname === "/indexMobile/examine") {
return (
);
} else {
return (
);
}
} else if (pageText === "scene") {
if (location.pathname === "/indexMobile/commobileList") {
return (
);
} else if (location.pathname === "/indexMobile/printPdf") {
return (
);
} else if (location.pathname === "/indexMobile/processReport") {
return (
);
} else if (location.pathname === "/indexMobile/commobileBill") {
return (
);
} else {
return (
{/* 15881422910005021526504105317000 */}
);
}
} else if (pageText === "workbench") {
if (location.pathname === "/indexMobile/commobileList") {
return (
);
} else if (location.pathname === "/indexMobile/commobileBill") {
return (
);
} else {
return (
);
}
} else if (pageText === "device") {
return ;
} else if (pageText === "myself") {
if (location.pathname === "/indexMobile/contacts") {
return (
);
} else if (location.pathname === "/indexMobile/revisePassword") {
return (
);
} else if (location.pathname === "/indexMobile/contactsInfo") {
return (
);
} else {
return (
);
}
} else if (pageText === "quotation") {
if (location.pathname === "/indexMobile/quotationDetail") {
return (
)
} else {
return (
);
}
}
}
render() {
const { hidden } = this.state;
const TabBarHidden = location.pathname === "/indexMobile" ? hidden : true;
const navbarIconShow = !["/indexMobile/commobileBill"].includes(location.pathname);
const msg = this.props.app.unRead;
const msgObj = commonUtils.isJSON(msg) ? JSON.parse(msg) : {};
return (
: null}
onLeftClick={() => {
if (TabBarHidden && navbarIconShow) {
window.history.back(-1);
setTimeout(() => {
this.props.dispatch({ type: "app/refreshPage" });
// history.push(location.pathname);
}, 100);
}
}}
className={styles.iconColor}
>
{this.state.title}
}
selectedIcon={
}
selected={this.state.selectedTab === "message"}
badge={msgObj.iCount || 0}
onPress={() => {
const { app } = this.props;
const { token } = app;
commonBusiness.clearSocketData({ token, value: {}, sModelsId: 100 });
this.setState({
selectedTab: "message",
title: "消息",
});
history.push("/indexMobile");
}}
data-seed="logId"
>
{this.state.selectedTab === "message" ? this.renderContent(this.state.selectedTab) : ""}
}
selectedIcon={
}
title="现场"
key="scene"
// badge="new"
selected={this.state.selectedTab === "scene"}
onPress={() => {
const { app } = this.props;
const { token } = app;
commonBusiness.clearSocketData({ token, value: {}, sModelsId: 100 });
this.setState({
selectedTab: "scene",
title: "现场",
});
history.push("/indexMobile");
}}
data-seed="logId1"
>
{this.state.selectedTab === "scene" ? this.renderContent(this.state.selectedTab) : ""}
}
selectedIcon={
}
title="工作台"
key="workbench"
// badge="2"
selected={this.state.selectedTab === "workbench"}
onPress={() => {
const { app } = this.props;
const { token } = app;
commonBusiness.clearSocketData({ token, value: {}, sModelsId: 100 });
this.setState({
selectedTab: "workbench",
title: "工作台",
});
history.push("/indexMobile");
}}
>
{this.state.selectedTab === "workbench" ? this.renderContent(this.state.selectedTab) : ""}
}
selectedIcon={
}
title="报价"
key="quotation"
// badge="2"
selected={this.state.selectedTab === "quotation"}
onPress={() => {
const { app } = this.props;
const { token } = app;
commonBusiness.clearSocketData({ token, value: {}, sModelsId: 100 });
this.setState({
selectedTab: "quotation",
title: "报价下单",
});
history.push("/indexMobile");
}}
>
{this.state.selectedTab === "quotation" ? this.renderContent(this.state.selectedTab) : ""}
}
selectedIcon={
}
title="我的"
key="contacts"
// badge="4"
selected={this.state.selectedTab === "myself"}
onPress={() => {
const { app } = this.props;
const { token } = app;
commonBusiness.clearSocketData({ token, value: {}, sModelsId: 100 });
this.setState({
selectedTab: "myself",
title: "我的",
});
history.push("/indexMobile");
}}
>
{this.state.selectedTab === "myself" ? this.renderContent(this.state.selectedTab) : ""}
);
}
}
export default connect(({ app, routing }) => ({ app, routing, ...history }))(IndexMobile);