Merge branch 'fix-something'

This commit is contained in:
lix
2025-07-18 16:25:49 +08:00
27 changed files with 60 additions and 39 deletions

View File

@ -1,5 +1,6 @@
export default [
{
name: '首页',
path: '/Dashboard',
component: './MainPage/ProjectManager',
},

View File

@ -14,7 +14,7 @@ export default {
},
UAT: {
'/api/sys-manager-ebtp-project': {
target: 'http://localhost:18030',
target: 'http://192.168.110.231:18030',
changeOrigin: true,
pathRewrite: { '/api/sys-manager-ebtp-project': '' },
},
@ -58,7 +58,11 @@ export default {
changeOrigin: true,
pathRewrite: { '/api/biz-supplier-manage': '' },
},
'/api/biz-service-ebtp-resps': {
target: 'http://192.168.110.51:18013',
changeOrigin: true,
pathRewrite: { '/api/biz-service-ebtp-resps': '' },
},
// '/api/wfap/v1/audit/bill/find/by/procid': {
// target: 'http://10.242.31.158:8891/',//审批单 uat环境自动审批暂时用不到
// changeOrigin: true,

View File

@ -98,6 +98,7 @@
"devDependencies": {
"@alita/plugins": "^3.5.5",
"@types/classnames": "^2.2.7",
"@types/cookie": "0.5.4",
"@types/express": "^4.17.0",
"@types/history": "^4.7.2",
"@types/jest": "^26.0.0",

View File

@ -50,7 +50,8 @@ function TabLayout({
const items = Object.entries(keepElements.current).map(
([pathname]: any) => {
const pathnameLowerCase = pathname.toLowerCase();
const label = pathKeyMap.get(pathnameLowerCase)?.name || 'Unknown';
const pathKeyMapItem = pathKeyMap.get(pathnameLowerCase);
const label = pathKeyMapItem?.name || pathKeyMapItem?.routeName || 'Unknown';
const active = pathnameLowerCase === activeKeyLowerCase;
return ({ label, key: pathnameLowerCase, closeIcon: <CloseIcon style={{ fontSize: 10, color: active ? '#fff' : '#575B66' }} /> })
},
@ -61,7 +62,8 @@ function TabLayout({
<Tabs
hideAdd
onChange={(key: string) => {
navigate(key);
const { pathname, search } = keepElements.current[key].location;
navigate(`${pathname}${search}`);
}}
activeKey={activeKeyLowerCase}
type="editable-card"
@ -79,12 +81,14 @@ function TabLayout({
return
}
dropByCacheKey(targetKey)
if (targetKey === activeKey) {
if (targetKey === activeKey?.toLowerCase()) {
// 删除当前选中的tab时:
// 1.如果当前tab是第一个时自动选中后一个
// 2.不是第一个时自动选中前一个
const i = pathList.indexOf(targetKey)
navigate(pathList[i === 0 ? i + 1 : i - 1])
const to = pathList[i === 0 ? i + 1 : i - 1]
const { pathname, search } = keepElements.current[to].location;
navigate(`${pathname}${search}`)
}
}}
items={items}

View File

@ -315,6 +315,7 @@ input::-webkit-outer-spin-button,
&.ant-menu-item-only-child {
padding-left: 40px !important;
height: 56px;
line-height: 25px;
margin: 0;
padding-top: 16px;
padding-bottom: 16px;

View File

@ -3,7 +3,6 @@ import { Link, history } from '@umijs/max';
import './index.less';
import styles from './index.less';
import { connect } from "dva";
// import { routerRedux } from 'dva/router';
import React, { useState, useEffect, useReducer } from 'react';
import { getSessionUserData, getRoomId, getRoomStatus, getProMethod, getSessionRoleData, getIPassDecode, getDefId, getProId, getOfflineStatusById } from '@/utils/session';
import { getURLInformation } from '@/utils/CommonUtils';

View File

@ -90,10 +90,10 @@
min-width: 60px;
}
.horizontal-stepper .MuiStepIcon-completed {
color: #b30000 !important;
color: @primary-color !important;
}
.horizontal-stepper .MuiStepIcon-active {
color: #b30000 !important;
color: @primary-color !important;
}
.horizontal-stepper .MuiStep-completed {
// min-width: 90px ;

View File

@ -4,7 +4,7 @@ import ProLayout, {
Settings,
} from '@ant-design/pro-layout';
import React, { useEffect, useMemo, useRef, useState } from 'react';
import { Link, connect, Dispatch, history, Outlet, useLocation, useKeepOutlets } from '@umijs/max';
import { Link, connect, Dispatch, history, useLocation, useKeepOutlets, useAppData } from '@umijs/max';
import { Result, Button, message } from 'antd';
import Authorized from '@/utils/Authorized';
import RightContent from '@/components/GlobalHeader/RightContent';
@ -105,6 +105,8 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
const mall3_token: any = sessionStorage.getItem('Authorization');//当前登录token
const userData: any = getSessionUserData();//当前登录人信息
const children = useKeepOutlets();
const routeData = useAppData();
useEffect(() => {
if (getSessionRoleData()?.roleId) {
let params = {
@ -116,7 +118,10 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
if (dispatch) {
dispatch({
type: 'user/saveMenuData',
payload: res.data || [],
payload: {
menuData: res.data || [],
routeData: routeData.routes,
},
});
}
setmenuShow(true)

View File

@ -16,10 +16,16 @@ export interface CurrentUser {
unreadCount?: number;
}
export interface PathKeyMap {
name: string;
icon?: string;
routeName?: string;
}
export interface UserModelState {
currentUser?: CurrentUser;
menuData?: any[];
pathKeyMap?: Map<string, {name: string, icon?: string}>;
pathKeyMap?: Map<string, PathKeyMap>;
}
export interface UserModelType {
@ -42,7 +48,7 @@ const UserModel: UserModelType = {
state: {
currentUser: {},
menuData: [],
pathKeyMap: new Map<string, {name: string, icon?: string}>(),
pathKeyMap: new Map<string, PathKeyMap>(),
},
effects: {
@ -70,8 +76,9 @@ const UserModel: UserModelType = {
};
},
saveMenuData(state, action) {
const menuData = action.payload || [];
const pathKeyMap = new Map<string, {name: string, icon?: string}>();
const menuData = action.payload.menuData || [];
const routeData = action.payload.routeData || [];
const pathKeyMap = new Map<string, PathKeyMap>();
// 将menuData转换为pathKeyMap 递归处理
const convertToPathKeyMap = (menuData: any[]) => {
menuData.forEach((item: any) => {
@ -83,7 +90,24 @@ const UserModel: UserModelType = {
});
};
convertToPathKeyMap(menuData);
pathKeyMap.set('/dashboard', { name: '首页' });
let i = 1;
while (routeData[i]) {
const item = routeData[i];
if (item.name) {
const pathname = item.path.toLowerCase();
if (pathKeyMap.has(pathname)) {
const target = pathKeyMap.get(pathname)!;
const newItem = {
...target,
routeName: item.name,
}
pathKeyMap.set(pathname, newItem);
} else {
pathKeyMap.set(pathname, { name: item.name, icon: item.icon });
}
}
i++;
}
return {
...state,
menuData: action.payload || [],

View File

@ -226,7 +226,6 @@ class Jury extends PureComponent {
// 再跳转
if(txt==1){
// sessionStorage.setItem("roomId",record.id)
// this.props.dispatch(routerRedux.push('/ProjectLayout/EvaRoom'))
// history.push('/EvaRoom')
window.open('/EvaRoom/Eva')
}else{

View File

@ -7,7 +7,6 @@ import { getDictBidMethodDict, getProMethod, getRoomId, getDefId, getQuotationMe
import { saveLeaderId, getJuryData, checkOpenBidSupplier, getPackageList, createReviewRoom, closingReviewRoom } from './components/service';
import './index.less';
import { connect } from "dva";
// import { routerRedux } from 'dva/router';
import { getProId, getProSignDict } from '@/utils/session';
import ReviewDevided from '@/pages/BidEvaluation/components/ReviewDevided';
import CreateReviewRoom from '@/pages/BidEvaluation/components/CreateReviewRoom';
@ -68,7 +67,6 @@ class manager extends PureComponent {
sessionStorage.setItem("roomId", record.id)
this.savePageAndParams();
history.push(`/ProjectLayout/FlowConfig`)
// this.props.dispatch()
}
//查询评审室列表
getManagerList = (params) => {
@ -126,7 +124,6 @@ class manager extends PureComponent {
sessionStorage.setItem("openTime", record.openTime)
this.setState({ loading: true })
await getQuotationMethodById(record.id)
// this.props.dispatch(routerRedux.push('/ProjectLayout/EvaRoom'))
this.setState({ loading: false })
window.open(`/EvaRoom`)
}
@ -134,7 +131,6 @@ class manager extends PureComponent {
onJurySet = (record) => {
this.savePageAndParams();
history.push({ pathname: '/ProjectLayout/JudgingPanel', state: { roomId: record.id, secId: record.sectionId, openTime: record.openTime } });
// this.props.dispatch(routerRedux.push(`/ProjectLayout/JudgingPanel?roomId=${record.id}&secId=${record.sectionId}&openTime=${record.openTime}`));
}
//创建评审室
onCreateClick = async () => {
@ -429,8 +425,7 @@ class manager extends PureComponent {
}
// 跳转组建评委会
onRedirectRate = () => {
// this.props.dispatch(history.push('/JudgingPanel/list'))
history.push(`/JudgingPanel/list`)
history.push('/JudgingPanel/list')
}
render() {

View File

@ -3,7 +3,6 @@ import { Divider, Button, Form, Card, Tabs, Table, Tooltip, Input, Select, Row,
import './index.less';
import { connect } from "dva";
import { getProId, getProMethod, getDefId, getQuotationMethodById, getSessionUserData } from '@/utils/session';
// import { routerRedux } from 'dva/router';
import { getURLInformation } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority';
import { getMaxTurnSortSupplier } from './components/service';
@ -72,7 +71,6 @@ class supplier extends PureComponent {
sessionStorage.setItem("isBxOneSecondCustom", "0")
}
this.setState({ loading: false })
// this.props.dispatch(routerRedux.push('/ProjectLayout/EvaRoom'))
window.open('/EvaRoom')
}
render() {

View File

@ -6,7 +6,7 @@ import ProTable, { ProColumns } from '@ant-design/pro-table';
import ReviewDevided from '@/pages/BidEvaluation/components/ReviewDevided';
import { getRoomDataById } from '@/services/common';
import { ExclamationCircleOutlined } from '@ant-design/icons';
import '@/assets/zjl_style.less'
/**
* 评审室内页-基本信息
* @author wuxianhui

View File

@ -2,7 +2,6 @@ import React, {PureComponent} from 'react';
import {Divider,Button,Form,Card,Tabs,Table,Tooltip,Input,Select,Row,Col,message,Modal,Pagination,Spin} from 'antd';
// import './index.less';
import { connect } from "dva";
// import { routerRedux } from 'dva/router';
import { getRoomId } from '@/utils/session';
import { getURLInformation } from '@/utils/CommonUtils';

View File

@ -2,7 +2,6 @@ import React, {PureComponent} from 'react';
import {Divider,Button,Form,Card,Tabs,Table,Tooltip,Input,Select,Row,Col,message,Modal,Spin,Pagination} from 'antd';
// import './index.less';
import { connect } from "dva";
// import { routerRedux } from 'dva/router';
import { getRoomId } from '@/utils/session';
import { getURLInformation } from '@/utils/CommonUtils';
import { CheckOutlined, CloseOutlined } from '@ant-design/icons';

View File

@ -4,7 +4,6 @@ import { history } from '@umijs/max';
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { jurySaveInfo, getRA } from '@/utils/session';

View File

@ -4,7 +4,6 @@ import { Row, Col, Tooltip, Card, List, DatePicker, Button, Statistic, Spin, Emp
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { auctionFollowUpAProjectManager, getRA } from '@/utils/session';

View File

@ -87,6 +87,9 @@
border-radius: 4px;
}
}
.cardtre {
height: 100%;
}
}
.topt::-webkit-scrollbar {
width: 8px;

View File

@ -5,7 +5,6 @@ import { Row, Col, Tooltip, Card, List, DatePicker, Button, Statistic, Spin, Emp
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { followUpAProjectManager, getSessionUserData } from '@/utils/session';

View File

@ -4,7 +4,6 @@ import { Row, Col, Tooltip, Card, List, DatePicker, Button, Statistic, Spin, Emp
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { getRA } from '@/utils/session';

View File

@ -4,7 +4,6 @@ import { Row, Col, Tooltip, Card, List, DatePicker, Button, Statistic, Spin, Emp
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { getRA } from '@/utils/session';

View File

@ -4,7 +4,6 @@ import { Row, Col, Tooltip, Card, List, DatePicker, Button, Statistic, Spin, Emp
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { getRA } from '@/utils/session';

View File

@ -20,7 +20,6 @@ import {
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { followUpAProjectManager, getRA, getSessionUserData } from '@/utils/session';

View File

@ -5,7 +5,6 @@ import { history } from '@umijs/max';
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
// import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { followUpAProjectSupplier, getSessionUserData, getRA } from '@/utils/session';

View File

@ -2,7 +2,6 @@ import React, {PureComponent} from 'react';
import {Divider,Button,Form,Card,Tabs,Table,Tooltip,Input,Select,Row,Col,message,Modal,Pagination,Spin} from 'antd';
// import './index.less';
import { connect } from "dva";
// import { routerRedux } from 'dva/router';
import { getRoomId } from '@/utils/session';
import { getURLInformation } from '@/utils/CommonUtils';

View File

@ -2,7 +2,6 @@ import React, {PureComponent} from 'react';
import {Divider,Button,Form,Card,Tabs,Table,Tooltip,Input,Select,Row,Col,message,Modal,Pagination,Spin} from 'antd';
// import './index.less';
import { connect } from "dva";
// import { routerRedux } from 'dva/router';
import { getRoomId } from '@/utils/session';
import { getURLInformation } from '@/utils/CommonUtils';

View File

@ -11,7 +11,6 @@
"moduleResolution": "node",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true,
"allowJs": true,
"skipLibCheck": true,