diff --git a/src/assets/mobile/6.png b/src/assets/mobile/6.png
new file mode 100644
index 0000000..e58a53a
--- /dev/null
+++ b/src/assets/mobile/6.png
diff --git a/src/assets/mobile/61.png b/src/assets/mobile/61.png
new file mode 100644
index 0000000..5f12f7a
--- /dev/null
+++ b/src/assets/mobile/61.png
diff --git a/src/components/QuickQuote/index.jsx b/src/components/QuickQuote/index.jsx
index e00aa31..1f8209e 100644
--- a/src/components/QuickQuote/index.jsx
+++ b/src/components/QuickQuote/index.jsx
@@ -1187,9 +1187,11 @@ const ContentComponent = props => {
// 主表组件
const MasterComponent = props => {
const { masterConfig, masterData = {}, selectedNode = {} } = props.state;
+ console.log("🚀 ~ masterConfig:", masterConfig)
if (!masterConfig) return "";
const ableConfigs = masterConfig.gdsconfigformslave.filter(item => item.sName && item.bVisible);
+ console.log("🚀 ~ ableConfigs:", ableConfigs)
// 处理长宽样式
const viewConfigs = selectedNode?.bBox ? ableConfigs : ableConfigs.filter(x => x.sName !== "dHeight");
if (selectedNode?.bBox) {
diff --git a/src/mobile/components/SelectInput.jsx b/src/mobile/components/SelectInput.jsx
new file mode 100644
index 0000000..db72793
--- /dev/null
+++ b/src/mobile/components/SelectInput.jsx
@@ -0,0 +1,112 @@
+import React, { useState, useRef, useEffect, useCallback } from "react";
+import { Input, Popup, Button, Toast, PickerView, SearchBar } from "antd-mobile";
+import { DownOutline } from "antd-mobile-icons";
+import commonConfig from "@/utils/config";
+import * as commonServices from "@/services/services";
+import * as commonFunc from "@/components/Common/commonFunc";
+import styles from "./selectInput.less";
+import debounce from "lodash/debounce";
+
+
+const SelectInput = (props) => {
+ console.log(props, "SelectInput props");
+
+ const [value, setValue] = useState("");
+ const [values, setValues] = useState("");
+ const [searchValue, setSearchValue] = useState("");
+ const [visible, setVisible] = useState(false);
+ useEffect(() => {
+ // 监听滚动事件
+ // const data = getSqlDropDownData()
+ // console.log(data, "data");
+
+ }, [visible]);
+ const [columns, setColumns] = useState([
+ { label: "选项1", value: "option1" },
+ { label: "选项2", value: "option2" },
+ { label: "选项3", value: "option3" },
+ ]);
+ const [coplyColumns, setCopyColumns] = useState(columns);
+ //
+ const [hasMore, setHasMore] = useState(true);
+ const [loading, setLoading] = useState(false);
+
+ const handleConfirm = () => {
+ console.log(values, "values");
+ setValue(values);
+ setVisible(false);
+ };
+
+ const handleCancel = () => {
+ Toast.show("取消按钮被点击");
+ setVisible(false);
+ };
+ const changeInputValue = val => {
+ console.log(val, "val");
+ };
+
+ const searchData = val => {
+ // todo调用接口
+ setSearchValue(val);
+ const list = columns.filter(item => item.label.includes(val));
+ setColumns(list);
+ if (val === "") {
+ console.log(36666);
+ setColumns(coplyColumns);
+ }
+ };
+ // 处理选择器变化
+ const changeOption = val => {
+ setValues(val[0]);
+ };
+
+ const getSqlDropDownData = async ({ sId, sModelsId, sName }) => {
+ const url = `${commonConfig.server_host}business/getSelectLimit/${sId}?sModelsId=${sModelsId}&sName=${sName}`;
+ const body = {
+ sSqlCondition: "",
+ sKeyUpFilterName: "",
+ pageNum: 1,
+ pageSize: 20,
+ };
+ const retrunData = await commonServices.postValueService(props.app.token, body, url);
+ const sColumnNameConfigStr = retrunData.data?.dataset?.rows?.[0]?.sColumnNameConfig;
+ return commonUtils.convertStrToObj(sColumnNameConfigStr, []);
+ };
+ return (
+
+
+
{
+ setValue(val);
+ }}
+ />
+
setVisible(true)}>
+
+
+
+
setVisible(false)} onClose={() => setVisible(false)} bodyStyle={{ height: "50vh" }}>
+
+
+
+
+
+ searchData(val)} />
+
+ changeOption(val)}
+ style={{ "--height": "200px", "--item-height": "2.8rem" }}
+ />
+
+
+ );
+};
+
+export default SelectInput;
diff --git a/src/mobile/components/selectInput.css b/src/mobile/components/selectInput.css
new file mode 100644
index 0000000..fd2a500
--- /dev/null
+++ b/src/mobile/components/selectInput.css
@@ -0,0 +1,24 @@
+.inputBox {
+ position: relative;
+}
+.inputBox .icons {
+ position: absolute;
+ top: 50%;
+ right: 0rem;
+ transform: translateY(-50%);
+ width: 3.125rem;
+ height: 3.125rem;
+ line-height: 3.125rem;
+ text-align: center;
+}
+.inputBox .pickerWrapper {
+ flex: 1;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+}
+.popupHeader {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin: 0.2rem;
+}
diff --git a/src/mobile/components/selectInput.less b/src/mobile/components/selectInput.less
new file mode 100644
index 0000000..ebb5515
--- /dev/null
+++ b/src/mobile/components/selectInput.less
@@ -0,0 +1,24 @@
+.inputBox {
+ position: relative;
+ .icons {
+ position: absolute;
+ top: 50%;
+ right: 0rem;
+ transform: translateY(-50%);
+ width: 3.125rem;
+ height: 3.125rem;
+ line-height: 3.125rem;
+ text-align: center;
+ }
+ .pickerWrapper {
+ flex: 1;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+.popupHeader{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin: 0.2rem;
+}
\ No newline at end of file
diff --git a/src/mobile/components/showType.jsx b/src/mobile/components/showType.jsx
new file mode 100644
index 0000000..4833d7d
--- /dev/null
+++ b/src/mobile/components/showType.jsx
@@ -0,0 +1,23 @@
+import React, { useState } from "react";
+import { history } from "umi";
+import { Tabs } from "antd-mobile";
+import commonConfig from "@/utils/config";
+import * as commonServices from "@/services/services";
+import * as commonFunc from "@/components/Common/commonFunc";
+import { useEffect } from "react";
+import styles from "./showType.less";
+const showType = props => {
+ // const {state} = props.location
+
+ // console.log(JSON.parse(state), "QuotationAllprogressDetail");
+ console.log(props, "QuotationAllprogressDetail props");
+
+ return (
+
+ 66666
+
+ );
+};
+
+
+export default showType;
diff --git a/src/mobile/components/showType.less b/src/mobile/components/showType.less
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/mobile/components/showType.less
diff --git a/src/mobile/quotation/detail.jsx b/src/mobile/quotation/detail.jsx
new file mode 100644
index 0000000..e9c3761
--- /dev/null
+++ b/src/mobile/quotation/detail.jsx
@@ -0,0 +1,86 @@
+import React, { useState } from "react";
+import { history } from "umi";
+import { Tabs } from "antd-mobile";
+import commonConfig from "@/utils/config";
+import * as commonServices from "@/services/services";
+import * as commonFunc from "@/components/Common/commonFunc";
+import { useEffect } from "react";
+import styles from "./quotationDetail.less";
+import SelectInput from "../components/SelectInput";
+const QuotationAllprogressDetail = props => {
+ // const {state} = props.location
+
+ // console.log(JSON.parse(state), "QuotationAllprogressDetail");
+ console.log(props, "QuotationAllprogressDetail props");
+
+ return (
+
+
+
+ );
+};
+
+const QuotationDetail = props => {
+ const { location, app } = props;
+ const { token } = app;
+ const [state, setState] = useState(null);
+
+ // 初始化状态
+ const { formData = [] } = state || {};
+ const { quotationData } = JSON.parse(location.state) || {};
+ const [masterConfig, setMasterConfig] = useState(null);
+ useEffect(() => {
+ // 安全地解析 state
+ let parsedState = {};
+ try {
+ parsedState = JSON.parse(location.state || "{}");
+ } catch (error) {
+ console.error("Error parsing state:", error);
+ }
+ const { sModelsId } = parsedState;
+ // 构造请求 URL
+ const configUrl = `${commonConfig.server_host}business/getModelBysId/${"172129113112117428019179600"}?sModelsId=${"172129113112117428019179600"}`;
+ // 调用服务获取数据
+ commonServices
+ .getService(token, configUrl)
+ .then(({ data: configReturn }) => {
+ if (configReturn.code === 1) {
+ const formData = configReturn.dataset.rows[0]?.formData;
+ setMasterConfig(formData[0]);
+ setState(pre => ({ ...pre, formData }));
+ }
+ })
+ .catch(error => {
+ console.error("Error fetching data:", error);
+ });
+ }, [location, app]);
+
+ // 主表
+ const list = masterConfig?.gdsconfigformslave.filter(item => item.sName && item.bVisible);
+ console.log("🚀 ~ list:", list);
+ // 客户
+ const customer = list?.find(x => x.showName === "客户名称") || {};
+ // console.log("🚀 ~ ableConfigs:", masterConfig);
+ console.log("🚀 ~ customer:", customer);
+ return (
+
+
{quotationData?.showName || "Loading..."}
+ {/* {list&& list.length
+ ? list.map((item, index) => {
+ return (
+
+ );
+ })
+ : ""} */}
+
+
+ );
+};
+
+export default QuotationAllprogressDetail;
diff --git a/src/mobile/quotation/index.css b/src/mobile/quotation/index.css
new file mode 100644
index 0000000..cf197f1
--- /dev/null
+++ b/src/mobile/quotation/index.css
@@ -0,0 +1,40 @@
+.quotationBox {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.quotationBox .quotationNavigation {
+ width: 30%;
+ height: 100%;
+}
+.quotationBox .quotationNavigation :global .adm-side-bar {
+ background-color: #EBF2FD;
+}
+.quotationBox .quotationContent {
+ width: 70%;
+ height: 100%;
+}
+.quotationBox .quotationContent .contentItem {
+ width: 92%;
+ height: 7.5rem;
+ border-radius: 10px;
+ background-color: #fff;
+ margin: 0 auto;
+ margin-bottom: 1rem;
+ display: flex;
+ padding: 0.625rem;
+}
+.quotationBox .quotationContent .contentItem .contentItemImg {
+ width: 6rem;
+ height: 6rem;
+ border-radius: 10px;
+}
+.quotationBox .quotationContent .contentItem .contentItemTitle {
+ font-size: 1.1rem;
+ color: #333;
+ margin-left: 0.625rem;
+ font-weight: 700;
+}
diff --git a/src/mobile/quotation/index.jsx b/src/mobile/quotation/index.jsx
new file mode 100644
index 0000000..fc4ea00
--- /dev/null
+++ b/src/mobile/quotation/index.jsx
@@ -0,0 +1,126 @@
+import React, { useEffect, useState } from "react";
+import { history } from "umi";
+import { SideBar } from "antd-mobile";
+import styles from "./index.less";
+import Icon5 from "@/assets/mobile/20.png";
+import commonConfig from "@/utils/config";
+import * as commonServices from "@/services/services";
+import quotation from "@/routes/mobile/quotation";
+const QuotationAllprogress = baseProps => {
+ const { sModelsId } = baseProps;
+ const { token } = baseProps.app;
+ const [state, setState] = useState(null);
+ const [selectedKey, setSelectedKey] = useState(null);
+ const { treeDataList } = baseProps.state || {};
+ const getQuotationList = async () => {
+ const configDataId = "172129113112117428019180410";
+ const formSrcRoute = "";
+ const condition = {
+ bFilter: [],
+ pageNum: 1,
+ pageSize: 1000,
+ };
+ const dataUrl = `${commonConfig.server_host}filterTree/getFilterTree/${configDataId}?sModelsId=${sModelsId}&sName=${formSrcRoute}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ const treeDataList = dataReturn.dataset.rows[0].children.map(item => {
+ return item;
+ });
+ setState(pre => ({ ...pre, treeDataList }));
+ // setSelectedKey(treeDataList[0].sId); // 默认选中第一条
+ };
+ // 172129113112117428019180410
+ useEffect(() => {
+ getQuotationList();
+ }, [sModelsId]);
+ const treeProps = {
+ ...baseProps,
+ state,
+ selectedKey,
+ setState,
+ };
+ return (
+
+ );
+};
+// 侧边导航
+const TreeComponent = props => {
+ const { treeDataList, selectedKey } = props.state || {};
+ const { setState } = props;
+ useEffect(() => {
+ if (treeDataList && treeDataList.length) {
+ const list = treeDataList.find(item => item.sId === treeDataList[0].sId);
+ if (list && list.children && list.children.length) {
+ // 如果有子节点,则取子节点的名称
+ setState(pre => ({
+ ...pre,
+ selectedKey: treeDataList[0].sId,
+ contentList: list.children.map(child => {
+ return child;
+ }),
+ }));
+ }
+ }
+ }, [treeDataList]);
+ return treeDataList && treeDataList.length ? (
+ {
+ const list = treeDataList.find(item => item.sId === key);
+ if (list && list.children && list.children.length) {
+ // 如果有子节点,则取子节点的名称
+ setState(pre => ({
+ ...pre,
+ selectedKey: key,
+ contentList: list.children.map(child => {
+ return child;
+ }),
+ }));
+ }
+ }}
+ >
+ {treeDataList && treeDataList.length
+ ? treeDataList.map(item => )
+ : ""}
+
+ ) : (
+ ""
+ );
+};
+// 内容
+const ContentComponent = props => {
+ const { contentList = [] } = props.state || {};
+ // 路由
+ const handleGridClick = item => () => {
+ console.log(item, props, "handleGridClick");
+ console.log(props.dispatch, "handleGridClick");
+
+ props.dispatch({
+ type: "content/onRouterMobile",
+ payload: {
+ url: "/indexMobile/quotationDetail" /* 接口地址 */,
+ urlKey: undefined,
+ sModelsId: props.sModelsId,
+ sModelType: props.sModelType,
+ quotationData: item
+ },
+ });
+ };
+ return (
+
+ {contentList.map(item => (
+
+

+
{item.showName}
+
+ ))}
+
+ );
+};
+export default QuotationAllprogress;
diff --git a/src/mobile/quotation/index.less b/src/mobile/quotation/index.less
new file mode 100644
index 0000000..0767f1e
--- /dev/null
+++ b/src/mobile/quotation/index.less
@@ -0,0 +1,41 @@
+
+.quotationBox {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ .quotationNavigation {
+ width: 30%;
+ height: 100%;
+ :global .adm-side-bar {
+ background-color: #EBF2FD;
+ }
+ }
+ .quotationContent {
+ width: 70%;
+ height: 100%;
+ .contentItem {
+ width: 92%;
+ height: 7.5rem;
+ border-radius: 10px;
+ background-color: #fff;
+ margin: 0 auto;
+ margin-bottom: 1rem;
+ display: flex;
+ padding: 0.625rem;
+ .contentItemImg {
+ width: 6rem;
+ height: 6rem;
+ border-radius: 10px;
+ }
+ .contentItemTitle {
+ font-size: 1.1rem;
+ color: #333;
+ margin-left: 0.625rem;
+ font-weight: 700;
+ }
+ }
+ }
+}
diff --git a/src/mobile/quotation/quotationDetail.css b/src/mobile/quotation/quotationDetail.css
new file mode 100644
index 0000000..c2bb3d3
--- /dev/null
+++ b/src/mobile/quotation/quotationDetail.css
@@ -0,0 +1,13 @@
+.quotationDetailBox {
+ padding: 1rem;
+ background-color: #fff;
+}
+.customer {
+ margin-top: 2rem;
+}
+.customer :global .adm-input-element {
+ border: 1px solid #DEDEDF;
+ height: 3.125rem;
+ margin: 0.5rem 0;
+ border-radius: 5px;
+}
diff --git a/src/mobile/quotation/quotationDetail.less b/src/mobile/quotation/quotationDetail.less
new file mode 100644
index 0000000..f7b7873
--- /dev/null
+++ b/src/mobile/quotation/quotationDetail.less
@@ -0,0 +1,15 @@
+.quotationDetailBox{
+ padding: 1rem;
+ // height: 100%;
+ background-color: #fff;
+ // height: 100vh;
+}
+.customer{
+ margin-top: 2rem;
+ :global .adm-input-element{
+ border: 1px solid #DEDEDF;
+ height: 3.125rem;
+ margin: 0.5rem 0;
+ border-radius: 5px;
+ }
+}
\ No newline at end of file
diff --git a/src/models/content.js b/src/models/content.js
index 6194a03..a23c85d 100644
--- a/src/models/content.js
+++ b/src/models/content.js
@@ -94,6 +94,8 @@ export default {
*onRouterMobile({ payload }, { put, call, select }) {
const { urlKey } = payload; /* 参数接收 */
+ console.log(payload,'payload');
+
if (urlKey !== undefined) {
const token = yield select(state => state.app.token); /* 用户令牌 */
const { data } = yield call(services.getService, token, urlKey);
@@ -126,11 +128,13 @@ export default {
yield put({ type: 'app/throwErrorMobile', payload: data });
}
} else {
+
const param = {
sModelsId: payload.sModelsId,
sId: payload.sId,
personPic: payload.personPic,
slaveData: payload.slaveData,
+ quotationData: payload.quotationData,
};
history.push(payload.url, commonUtils.convertObjToStr(param));
// yield put(routerRedux.push({
diff --git a/src/routes/mobile/IndexMobile.js b/src/routes/mobile/IndexMobile.js
index 9894010..72b820c 100644
--- a/src/routes/mobile/IndexMobile.js
+++ b/src/routes/mobile/IndexMobile.js
@@ -28,6 +28,10 @@ import Icon31 from "../../assets/mobile/31.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";
@@ -48,8 +52,6 @@ class IndexMobile extends React.Component {
}
componentWillMount() {
history.push("/indexMobile"); // 刷新时更新路由,避免底部按钮和返回按钮错乱显示
- console.log("🚀 ~ IndexMobile ~ componentWillMount ~ this.props:", this.props)
-
if (this.props.routing && this.props.routing) {
const { state } = this.props.routing;
if (state) {
@@ -72,6 +74,7 @@ class IndexMobile extends React.Component {
scene: "现场",
workbench: "工作台",
device: "设备",
+ quotation: "报价下单",
myself: "我的",
}[this.state.selectedTab];
@@ -113,6 +116,8 @@ class IndexMobile extends React.Component {
}
};
renderContent(pageText) {
+ console.log(this.props, "pageText");
+
if (pageText === "message") {
if (location.pathname === "/indexMobile/examine") {
return (
@@ -208,6 +213,19 @@ class IndexMobile extends React.Component {
);
}
+ } else if (pageText === "quotation") {
+ if (location.pathname === "/indexMobile/quotationDetail") {
+ return (
+
+
+ )
+ } else {
+ return (
+
+
+
+ );
+ }
}
}
@@ -378,6 +396,42 @@ class IndexMobile extends React.Component {
style={{
width: "22px",
height: "22px",
+ background: `url(${Icon61}) center center / 21px 21px no-repeat`,
+ }}
+ />
+ }
+ 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) : ""}
+
+
diff --git a/src/routes/mobile/common/ContactsInfoMobile.js b/src/routes/mobile/common/ContactsInfoMobile.js
index 4cda798..f6d3229 100644
--- a/src/routes/mobile/common/ContactsInfoMobile.js
+++ b/src/routes/mobile/common/ContactsInfoMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import ContactsInfoMobileComponent from '../../../mobile/common/ContactsInfoMobile';
import * as commonUtils from '../../../utils/utils';
diff --git a/src/routes/mobile/common/ContactsMobile.js b/src/routes/mobile/common/ContactsMobile.js
index 4e6d4fb..ae42e54 100644
--- a/src/routes/mobile/common/ContactsMobile.js
+++ b/src/routes/mobile/common/ContactsMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import ContactsMobileComponent from '../../../mobile/common/ContactsMobile';
function ContactsMobile({
diff --git a/src/routes/mobile/common/DeviceMobile.js b/src/routes/mobile/common/DeviceMobile.js
index dd5f97c..43e5a1f 100644
--- a/src/routes/mobile/common/DeviceMobile.js
+++ b/src/routes/mobile/common/DeviceMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import DeviceMobileComponent from '../../../mobile/common/CommobileList';
function DeviceMobile({
diff --git a/src/routes/mobile/common/ExamineMobile.js b/src/routes/mobile/common/ExamineMobile.js
index b7e524a..d7d43b9 100644
--- a/src/routes/mobile/common/ExamineMobile.js
+++ b/src/routes/mobile/common/ExamineMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import ExamineMobileComponent from '../../../mobile/common/ExamineMobile';
import * as commonUtils from '../../../utils/utils';
diff --git a/src/routes/mobile/common/MessageMobile.js b/src/routes/mobile/common/MessageMobile.js
index d9fe872..aa3ae30 100644
--- a/src/routes/mobile/common/MessageMobile.js
+++ b/src/routes/mobile/common/MessageMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import MessageMobileComponent from '../../../mobile/common/MessageMobile';
function MessageMobile({
diff --git a/src/routes/mobile/common/MyselfMobile.js b/src/routes/mobile/common/MyselfMobile.js
index 73fc454..0dbd8e2 100644
--- a/src/routes/mobile/common/MyselfMobile.js
+++ b/src/routes/mobile/common/MyselfMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import MyselfMobileComponent from '../../../mobile/common/MyselfMobile';
function MyselfMobile({
diff --git a/src/routes/mobile/common/NewsMobile.js b/src/routes/mobile/common/NewsMobile.js
index 13ffe38..adb859e 100644
--- a/src/routes/mobile/common/NewsMobile.js
+++ b/src/routes/mobile/common/NewsMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import NewsMobileComponent from '../../../mobile/common/NewsMobile';
function NewsMobile({
diff --git a/src/routes/mobile/common/ProcessReportMobile.js b/src/routes/mobile/common/ProcessReportMobile.js
index 4f14fcb..aa66011 100644
--- a/src/routes/mobile/common/ProcessReportMobile.js
+++ b/src/routes/mobile/common/ProcessReportMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import ProcessReportMobileComponent from '../../../mobile/common/ProcessReportMobile';
import * as commonUtils from '../../../utils/utils';
diff --git a/src/routes/mobile/common/RevisePasswordMobile.js b/src/routes/mobile/common/RevisePasswordMobile.js
index adeb073..c459afa 100644
--- a/src/routes/mobile/common/RevisePasswordMobile.js
+++ b/src/routes/mobile/common/RevisePasswordMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import RevisePasswordMobileComponent from '../../../mobile/common/RevisePasswordMobile';
function RevisePasswordMobile({
diff --git a/src/routes/mobile/common/SceneCssMobile.js b/src/routes/mobile/common/SceneCssMobile.js
index 3d9681e..395c1de 100644
--- a/src/routes/mobile/common/SceneCssMobile.js
+++ b/src/routes/mobile/common/SceneCssMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import SceneCssMobileComponent from '../../../mobile/common/SceneCssMobile';
function SceneMobile({
diff --git a/src/routes/mobile/common/SceneSrmMobile.js b/src/routes/mobile/common/SceneSrmMobile.js
index c2ca05f..85a84c8 100644
--- a/src/routes/mobile/common/SceneSrmMobile.js
+++ b/src/routes/mobile/common/SceneSrmMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import SceneSrmMobileComponent from '../../../mobile/common/SceneSrmMobile';
function SceneMobile({
diff --git a/src/routes/mobile/common/WorkBenchMobile.js b/src/routes/mobile/common/WorkBenchMobile.js
index 41f0d91..3a49ef0 100644
--- a/src/routes/mobile/common/WorkBenchMobile.js
+++ b/src/routes/mobile/common/WorkBenchMobile.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import WorkBenchMobileComponent from '../../../mobile/common/WorkBenchMobile';
diff --git a/src/routes/mobile/common/commobilePrintPdf.js b/src/routes/mobile/common/commobilePrintPdf.js
index 7409fb5..7e01674 100644
--- a/src/routes/mobile/common/commobilePrintPdf.js
+++ b/src/routes/mobile/common/commobilePrintPdf.js
@@ -4,7 +4,7 @@
*/
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import * as commonUtils from '../../../utils/utils';
import CommobilePrintPdf from '../../../mobile/common/CommobilePrintPdf';
diff --git a/src/routes/mobile/logincss/LoginCss.js b/src/routes/mobile/logincss/LoginCss.js
index e4837c6..2b1ba7c 100644
--- a/src/routes/mobile/logincss/LoginCss.js
+++ b/src/routes/mobile/logincss/LoginCss.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import LoginCssComponent from '../../../mobile/logincss/LoginCss';
function LoginCss({
diff --git a/src/routes/mobile/loginsrm/LoginSrm.js b/src/routes/mobile/loginsrm/LoginSrm.js
index 6bcf42e..43215a9 100644
--- a/src/routes/mobile/loginsrm/LoginSrm.js
+++ b/src/routes/mobile/loginsrm/LoginSrm.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import LoginSrmComponent from '../../../mobile/loginsrm/LoginSrm';
function LoginSrm({
diff --git a/src/routes/mobile/quotation/detail.js b/src/routes/mobile/quotation/detail.js
new file mode 100644
index 0000000..354d3c9
--- /dev/null
+++ b/src/routes/mobile/quotation/detail.js
@@ -0,0 +1,20 @@
+import { connect } from "umi";
+import QuotationAllprogressDetail from "@/mobile/quotation/detail.jsx";
+
+function quotationDetail({ dispatch, app, content, location, sModelsId }) {
+ const quotationProps = {
+ app,
+ content,
+ dispatch,
+ location, // 只传递需要的部分
+ sModelsId,
+ };
+ return ;
+}
+
+const mapStateToProps = ({ app, content }) => ({
+ app,
+ content,
+});
+
+export default connect(mapStateToProps)(quotationDetail);
\ No newline at end of file
diff --git a/src/routes/mobile/quotation/index.js b/src/routes/mobile/quotation/index.js
new file mode 100644
index 0000000..5d4d2da
--- /dev/null
+++ b/src/routes/mobile/quotation/index.js
@@ -0,0 +1,20 @@
+import { connect } from "umi";
+import QuotationAllprogress from "@/mobile/quotation/index.jsx";
+
+function quotation({ dispatch, app, content, location, sModelsId }) {
+ const quotationProps = {
+ app,
+ content,
+ dispatch,
+ location, // 只传递需要的部分
+ sModelsId,
+ };
+ return ;
+}
+
+const mapStateToProps = ({ app, content }) => ({
+ app,
+ content,
+});
+
+export default connect(mapStateToProps)(quotation);
\ No newline at end of file