Compare commits
No commits in common. "ea27a3213f1b786445317c7bd5a6472518bbc79e" and "4073d23d664c31bb0e5b6428f90e1048d20eff32" have entirely different histories.
ea27a3213f
...
4073d23d66
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ant-design-pro",
|
||||
"version": "4.5.54",
|
||||
"version": "4.5.51",
|
||||
"private": true,
|
||||
"description": "An out-of-box UI solution for enterprise applications",
|
||||
"scripts": {
|
||||
|
||||
@ -16,42 +16,10 @@ const SmartLoading: React.FC<SmartLoadingProps> = ({
|
||||
fallback,
|
||||
enablePreload = true
|
||||
}) => {
|
||||
const location = useLocation();
|
||||
const [loadingType, setLoadingType] = useState<'page' | 'table' | 'form' | 'card'>('page');
|
||||
const [shouldShow, setShouldShow] = useState(false);
|
||||
const [location, setLocation] = useState<any>(null);
|
||||
|
||||
// 安全获取location,避免在路由未准备好时出错
|
||||
try {
|
||||
const currentLocation = useLocation();
|
||||
if (!location) {
|
||||
setLocation(currentLocation);
|
||||
}
|
||||
} catch (error) {
|
||||
// 如果useLocation失败,使用window.location作为fallback
|
||||
if (!location && typeof window !== 'undefined') {
|
||||
setLocation({ pathname: window.location.pathname });
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
// 对于页面切换,立即显示骨架屏,但对于初始加载延迟显示
|
||||
const isInitialLoad = !location?.pathname || location.pathname === '/';
|
||||
|
||||
if (isInitialLoad) {
|
||||
// 初始加载时延迟显示,避免刷新时闪烁
|
||||
const timer = setTimeout(() => {
|
||||
setShouldShow(true);
|
||||
}, 200);
|
||||
return () => clearTimeout(timer);
|
||||
} else {
|
||||
// 页面切换时立即显示,保持骨架屏效果
|
||||
setShouldShow(true);
|
||||
}
|
||||
}, [location?.pathname]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!location?.pathname) return;
|
||||
|
||||
// 根据路径判断页面类型,选择合适的骨架屏
|
||||
const path = location.pathname;
|
||||
|
||||
@ -65,24 +33,17 @@ const SmartLoading: React.FC<SmartLoadingProps> = ({
|
||||
setLoadingType('page');
|
||||
}
|
||||
|
||||
// 预加载相关路由(降低优先级,避免影响主流程)
|
||||
// 预加载相关路由
|
||||
if (enablePreload) {
|
||||
setTimeout(() => {
|
||||
routePreloader.preloadBasedOnUserBehavior(path);
|
||||
}, 500);
|
||||
}
|
||||
}, [location?.pathname, enablePreload]);
|
||||
}, [location.pathname, enablePreload]);
|
||||
|
||||
// 如果提供了自定义fallback,使用它
|
||||
if (fallback) {
|
||||
return <>{fallback}</>;
|
||||
}
|
||||
|
||||
// 延迟显示,避免闪烁
|
||||
if (!shouldShow) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 根据页面类型返回对应的骨架屏
|
||||
return <SkeletonLoading type={loadingType} rows={getRowsByType(loadingType)} />;
|
||||
};
|
||||
|
||||
@ -1041,7 +1041,7 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
|
||||
tab={item.title} key={item?.path}
|
||||
style={{ padding: 24, paddingTop: 0 }}>
|
||||
<SimplePageTransition>
|
||||
<Suspense fallback={null}>
|
||||
<Suspense fallback={<div>Loading...</div>}>
|
||||
<Authorized authority={authorized!.authority} noMatch={noMatch}>
|
||||
{item.children}
|
||||
</Authorized>
|
||||
|
||||
@ -15,101 +15,68 @@ type SecurityLayoutProps = {
|
||||
|
||||
type SecurityLayoutState = {
|
||||
isReady: boolean;
|
||||
shouldShowLoading: boolean;
|
||||
initialLoadComplete: boolean;
|
||||
};
|
||||
|
||||
class SecurityLayout extends React.Component<SecurityLayoutProps, SecurityLayoutState> {
|
||||
state: SecurityLayoutState = {
|
||||
isReady: false,
|
||||
shouldShowLoading: false,
|
||||
initialLoadComplete: false,
|
||||
|
||||
};
|
||||
|
||||
private loadingTimer?: NodeJS.Timeout;
|
||||
|
||||
componentDidMount() {
|
||||
const { location } = history;
|
||||
|
||||
const { location } = history
|
||||
|
||||
const { dispatch } = this.props;
|
||||
|
||||
// 检查是否有缓存的用户信息,避免不必要的加载状态
|
||||
const cachedUser = session.get("currentUser");
|
||||
|
||||
// 设置防闪烁定时器,只有加载时间超过300ms才显示loading
|
||||
this.loadingTimer = setTimeout(() => {
|
||||
if (!this.state.isReady && !this.state.initialLoadComplete) {
|
||||
this.setState({
|
||||
shouldShowLoading: true,
|
||||
});
|
||||
}
|
||||
}, 300);
|
||||
|
||||
if (dispatch) {
|
||||
|
||||
dispatch({
|
||||
type: 'user/fetch',
|
||||
callback: (user) => {
|
||||
// 清除定时器
|
||||
if (this.loadingTimer) {
|
||||
clearTimeout(this.loadingTimer);
|
||||
}
|
||||
type: 'user/fetch', callback: (user) => {
|
||||
|
||||
if (user.code && location.pathname !== '/user/login') {
|
||||
history.push('/user/login');
|
||||
return;
|
||||
return
|
||||
}
|
||||
|
||||
console.log('secur')
|
||||
dispatch({
|
||||
type: 'global/getMenuData',
|
||||
payload: user.ID,
|
||||
callback: (menu) => {
|
||||
type: 'global/getMenuData', payload: user.ID, callback: (menu) => {
|
||||
if (menu) {
|
||||
|
||||
this.setState({
|
||||
isReady: true,
|
||||
shouldShowLoading: false,
|
||||
initialLoadComplete: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
} else {
|
||||
// 清除定时器
|
||||
if (this.loadingTimer) {
|
||||
clearTimeout(this.loadingTimer);
|
||||
}
|
||||
|
||||
this.setState({
|
||||
isReady: true,
|
||||
shouldShowLoading: false,
|
||||
initialLoadComplete: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
if (this.loadingTimer) {
|
||||
clearTimeout(this.loadingTimer);
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { isReady, shouldShowLoading, initialLoadComplete } = this.state;
|
||||
const { children, currentUser } = this.props;
|
||||
const { isReady } = this.state;
|
||||
const { children, loading, currentUser } = this.props;
|
||||
// const { location } = history;
|
||||
|
||||
// 用户认证规则
|
||||
|
||||
// You can replace it to your authentication rule (such as check token exists)
|
||||
// You can replace it with your own login authentication rules (such as judging whether the token exists)
|
||||
const isLogin = currentUser && currentUser.ID;
|
||||
|
||||
// 如果初始化未完成且需要显示加载状态,才显示骨架屏
|
||||
if (!isReady && shouldShowLoading) {
|
||||
|
||||
if ((!isLogin && loading) || !isReady) {
|
||||
return <PageLoading />;
|
||||
}
|
||||
|
||||
// 如果还在初始化过程中,但不需要显示loading,返回null(避免闪烁)
|
||||
if (!isReady && !shouldShowLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// if (!isLogin && location.pathname !== '/user/login') {
|
||||
// history.push('/user/login');
|
||||
// }
|
||||
return children;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1298,7 +1298,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={area} />
|
||||
<span className={'itemLeftLabel'}>占地面积</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.FLOORAREA ? fmoney(serviceDetail?.ServerpartInfo?.FLOORAREA, 2) : '-'}m²</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.FLOORAREA ? fmoney(serviceDetail.ServerpartInfo.FLOORAREA, 2) : '-'}m²</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -1306,7 +1306,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={stopArea} />
|
||||
<span className={'itemLeftLabel'}>停车场面积</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SHAREAREA ? fmoney(serviceDetail?.ServerpartInfo?.SHAREAREA, 2) : '-'}m²</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SHAREAREA ? fmoney(serviceDetail.ServerpartInfo.SHAREAREA, 2) : '-'}m²</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -1314,7 +1314,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={buildArea} />
|
||||
<span className={'itemLeftLabel'}>建筑面积</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_AREA ? fmoney(serviceDetail?.ServerpartInfo?.SERVERPART_AREA, 2) : '-'}m²</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_AREA ? fmoney(serviceDetail.ServerpartInfo.SERVERPART_AREA, 2) : '-'}m²</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -1322,7 +1322,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={water} />
|
||||
<span className={'itemLeftLabel'}>取水方式</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.WATERINTAKE_TYPE === 1 ? '自来水' : serviceDetail?.ServerpartInfo?.WATERINTAKE_TYPE === 2 ? '井水' : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.WATERINTAKE_TYPE === 1 ? '自来水' : serviceDetail.ServerpartInfo.WATERINTAKE_TYPE === 2 ? '井水' : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -1330,7 +1330,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={badWater} />
|
||||
<span className={'itemLeftLabel'}>污水处理</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 1 ? '市政' : serviceDetail?.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 2 ? '污水处理设备' : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 1 ? '市政' : serviceDetail.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 2 ? '污水处理设备' : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -1338,7 +1338,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={fixed} />
|
||||
<span className={'itemLeftLabel'}>市区县镇</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_ADDRESS ? serviceDetail?.ServerpartInfo?.SERVERPART_ADDRESS : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_ADDRESS ? serviceDetail.ServerpartInfo.SERVERPART_ADDRESS : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -1346,7 +1346,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={managerUnit} />
|
||||
<span className={'itemLeftLabel'}>管理单位</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.MANAGERCOMPANY ? serviceDetail?.ServerpartInfo?.MANAGERCOMPANY : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.MANAGERCOMPANY ? serviceDetail.ServerpartInfo.MANAGERCOMPANY : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -1354,7 +1354,7 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
|
||||
<img className={'itemLeftIcon'} src={propryRight} />
|
||||
<span className={'itemLeftLabel'}>产权单位</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.OWNEDCOMPANY ? serviceDetail?.ServerpartInfo?.OWNEDCOMPANY : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.OWNEDCOMPANY ? serviceDetail.ServerpartInfo.OWNEDCOMPANY : ''}</div>
|
||||
</div>
|
||||
</div>
|
||||
: ''
|
||||
|
||||
@ -333,7 +333,6 @@ const BusinessTradeModelTable: React.FC<{ currentUser: CurrentUser }> = (props)
|
||||
<Drawer
|
||||
width={600}
|
||||
visible={showDetail}
|
||||
bodyStyle={{ padding: '24px' }}
|
||||
onClose={() => {
|
||||
setCurrentRow(undefined);
|
||||
setShowDetail(false);
|
||||
|
||||
@ -141,7 +141,6 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
dataIndex: 'BUSINESS_UNIT',
|
||||
align: 'center',
|
||||
hideInSearch: true,
|
||||
ellipsis: true
|
||||
},
|
||||
]
|
||||
|
||||
@ -272,7 +271,6 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
}}
|
||||
headerTitle={<PageTitleBox props={props} />}
|
||||
search={{ span: 6 }}
|
||||
scroll={{ x: "100%", y: 'calc(100vh - 430px)' }}
|
||||
request={async (params) => {
|
||||
if (!selectedId) {
|
||||
return
|
||||
|
||||
@ -354,7 +354,6 @@ const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
||||
setEditModal(false)
|
||||
setCurrentRow(undefined)
|
||||
setPersonDetail(undefined)
|
||||
setShowPROWERSETList([])
|
||||
}}
|
||||
footer={<div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
|
||||
<div>
|
||||
@ -419,7 +418,6 @@ const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
||||
setEditModal(false)
|
||||
setCurrentRow(undefined)
|
||||
setPersonDetail(undefined)
|
||||
setShowPROWERSETList([])
|
||||
}}>取消</Button>
|
||||
</div>
|
||||
</div>}
|
||||
@ -446,25 +444,6 @@ const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
||||
})
|
||||
}
|
||||
console.log('author', author);
|
||||
let list: any = []
|
||||
let nowValueList: any = []
|
||||
if (currentRow?.CASHWORKER_TYPE === 1) {
|
||||
nowValueList = ['1', '2', '4', '5', '6', '8', '9', '10', '13', '15', '35', '47', '52', '53']
|
||||
} else if (currentRow?.CASHWORKER_TYPE === 2) {
|
||||
nowValueList = ['1', '2', '3', '4', '5', '6', '8', '9', '10', '13', '15', '18', '35', '36', '47', '50', '51', '52', '53', '120']
|
||||
} else if (currentRow?.CASHWORKER_TYPE === 20) {
|
||||
nowValueList = ['2', '3', '4', '6', '8', '9', '10', '18', '35', '47', '51']
|
||||
}
|
||||
if (PROWERSET && PROWERSET.length > 0) {
|
||||
PROWERSET.forEach((item: any) => {
|
||||
if (nowValueList.indexOf(item.value.toString()) !== -1) {
|
||||
list.push(item)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
setShowPROWERSETList(list)
|
||||
|
||||
setPersonDetail({
|
||||
...data,
|
||||
WORKER_OTHER: author
|
||||
|
||||
@ -944,7 +944,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
||||
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
||||
<LeftSelectTree setSelectedId={setSelectedId} setCollapsible={setCollapsible} collapsible={collapsible} />
|
||||
<div style={{
|
||||
width: !collapsible ? 'calc(100% - 300px)' : 'calc(100% - 60px)',
|
||||
width: !collapsible ? 'calc(100% - 340px)' : 'calc(100% - 60px)',
|
||||
paddingTop: 0,
|
||||
paddingBottom: 0,
|
||||
paddingRight: 0
|
||||
@ -1279,8 +1279,6 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
||||
formRef?.current?.validateFields().then(() => {
|
||||
handleConfirmLoading(true)
|
||||
formRef?.current?.submit()
|
||||
}).catch((err) => {
|
||||
message.error('请检查表单输入是否完整!')
|
||||
})
|
||||
}}>保存</Button>
|
||||
</div>
|
||||
|
||||
@ -191,14 +191,12 @@ const ShareBenefit: React.FC<{ currentUser?: CurrentUser }> = (props) => {
|
||||
hideInSearch: true,
|
||||
render: (_, record) => {
|
||||
return <a onClick={async () => {
|
||||
console.log('record',record)
|
||||
// 查询经营项目信息详情
|
||||
// const project = await getProjectDetail(record.BUSINESSPROJECT_ID);
|
||||
getProjectDetail(record.BUSINESSPROJECT_ID).then((project) => {
|
||||
setProject({ ...project, BUSINESSPROJECT_ID: project.BUSINESSPROJECT_ID })
|
||||
})
|
||||
|
||||
const project = await getProjectDetail(record.BUSINESSPROJECT_ID);
|
||||
// 点击实际营业额时 打开抽屉 展示每日营收数据
|
||||
setCurrentRow(record)
|
||||
setProject(project)
|
||||
setShowDetail(true)
|
||||
}}>{record.ACTUAL_REVENUE?fmoney(record.ACTUAL_REVENUE,2):''}</a>
|
||||
},
|
||||
@ -610,7 +608,7 @@ const ShareBenefit: React.FC<{ currentUser?: CurrentUser }> = (props) => {
|
||||
ShopRoyaltyId={currentRow?.SHOPROYALTY_ID ? currentRow?.SHOPROYALTY_ID : 0}
|
||||
ShopIds={currentRow?.SERVERPARTSHOP_ID ? currentRow?.SERVERPARTSHOP_ID : ''}
|
||||
StartDate={moment(currentRow?.BUSINESS_STARTDATE).format('YYYY-MM-DD')}
|
||||
EndDate={moment(currentRow?.BUSINESS_ENDDATE).format('YYYY-MM-DD')} BusinessProjectId={currentRow?.BUSINESSPROJECT_ID}></RevenueList>}
|
||||
EndDate={moment(currentRow?.BUSINESS_ENDDATE).format('YYYY-MM-DD')}></RevenueList>}
|
||||
</Drawer>
|
||||
</PageContainer>
|
||||
</div>
|
||||
|
||||
@ -369,7 +369,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={area} />
|
||||
<span className={'itemLeftLabel'}>占地面积</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.FLOORAREA ? fmoney(serviceDetail?.ServerpartInfo?.FLOORAREA, 2) : '-'}m²</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.FLOORAREA ? fmoney(serviceDetail.ServerpartInfo.FLOORAREA, 2) : '-'}m²</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -377,7 +377,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={stopArea} />
|
||||
<span className={'itemLeftLabel'}>停车场面积</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SHAREAREA ? fmoney(serviceDetail?.ServerpartInfo?.SHAREAREA, 2) : '-'}m²</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SHAREAREA ? fmoney(serviceDetail.ServerpartInfo.SHAREAREA, 2) : '-'}m²</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -385,7 +385,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={buildArea} />
|
||||
<span className={'itemLeftLabel'}>建筑面积</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_AREA ? fmoney(serviceDetail?.ServerpartInfo?.SERVERPART_AREA, 2) : '-'}m²</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_AREA ? fmoney(serviceDetail.ServerpartInfo.SERVERPART_AREA, 2) : '-'}m²</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -393,7 +393,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={water} />
|
||||
<span className={'itemLeftLabel'}>取水方式</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.WATERINTAKE_TYPE === 1 ? '自来水' : serviceDetail?.ServerpartInfo?.WATERINTAKE_TYPE === 2 ? '井水' : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.WATERINTAKE_TYPE === 1 ? '自来水' : serviceDetail.ServerpartInfo.WATERINTAKE_TYPE === 2 ? '井水' : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -401,7 +401,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={badWater} />
|
||||
<span className={'itemLeftLabel'}>污水处理</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 1 ? '市政' : serviceDetail?.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 2 ? '污水处理设备' : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 1 ? '市政' : serviceDetail.ServerpartInfo?.SEWAGEDISPOSAL_TYPE === 2 ? '污水处理设备' : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -409,7 +409,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={fixed} />
|
||||
<span className={'itemLeftLabel'}>市区县镇</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_ADDRESS ? serviceDetail?.ServerpartInfo?.SERVERPART_ADDRESS : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.SERVERPART_ADDRESS ? serviceDetail.ServerpartInfo.SERVERPART_ADDRESS : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -417,7 +417,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={managerUnit} />
|
||||
<span className={'itemLeftLabel'}>管理单位</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.MANAGERCOMPANY ? serviceDetail?.ServerpartInfo?.MANAGERCOMPANY : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.MANAGERCOMPANY ? serviceDetail.ServerpartInfo.MANAGERCOMPANY : ''}</div>
|
||||
</div>
|
||||
|
||||
<div className={'detailItem'}>
|
||||
@ -425,7 +425,7 @@ const serviceAreaDetails = ({ onRef, onShow, id, width, onClose }: DetailProps)
|
||||
<img className={'itemLeftIcon'} src={propryRight} />
|
||||
<span className={'itemLeftLabel'}>产权单位</span>
|
||||
</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.OWNEDCOMPANY ? serviceDetail?.ServerpartInfo?.OWNEDCOMPANY : ''}</div>
|
||||
<div className={'detailItemRight'}>{serviceDetail?.ServerpartInfo?.OWNEDCOMPANY ? serviceDetail.ServerpartInfo.OWNEDCOMPANY : ''}</div>
|
||||
</div>
|
||||
</div>
|
||||
: ''
|
||||
|
||||
@ -125,15 +125,13 @@ const checkAcount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
title: <div style={{textAlign:'center'}}>{'序号'}</div>,
|
||||
hideInSearch: true,
|
||||
width: 70,
|
||||
align: 'center',
|
||||
valueType: 'index',
|
||||
dataIndex: 'index'
|
||||
dataIndex: ''
|
||||
},
|
||||
{
|
||||
title: <div style={{textAlign:'center'}}>{'服务区名称'}</div>,
|
||||
hideInSearch: true,
|
||||
width: 120,
|
||||
ellipsis: true,
|
||||
dataIndex: 'SERVERPART_NAME',
|
||||
// render:(_,record)=>{
|
||||
// return <div style={{display:'flex',alignItems:'center'}}>
|
||||
|
||||
@ -110,6 +110,17 @@ const commodityInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
})
|
||||
const [customClassList, setCustomClassList] = useState<any>()
|
||||
const columns: any = [
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'CommodityState',
|
||||
hideInTable: true,
|
||||
valueType: 'select',
|
||||
valueEnum: {
|
||||
0: { text: '无效' },
|
||||
1: { text: '有效' }
|
||||
},
|
||||
initialValue: '1'
|
||||
},
|
||||
{
|
||||
title: '服务区',
|
||||
dataIndex: 'ServerpartID',
|
||||
@ -141,17 +152,6 @@ const commodityInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
filterOption: (input, option) => (option?.label ?? '').toLowerCase().includes(input.toLowerCase()),
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'CommodityState',
|
||||
hideInTable: true,
|
||||
valueType: 'select',
|
||||
valueEnum: {
|
||||
0: { text: '无效' },
|
||||
1: { text: '有效' }
|
||||
},
|
||||
initialValue: '1'
|
||||
},
|
||||
{
|
||||
dataIndex: 'searchText',
|
||||
title: '查询内容',
|
||||
|
||||
@ -104,6 +104,17 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
})
|
||||
|
||||
const columns: any = [
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'COMMODITY_STATE',
|
||||
hideInTable: true,
|
||||
valueType: 'select',
|
||||
valueEnum: {
|
||||
0: { text: '无效' },
|
||||
1: { text: '有效' }
|
||||
},
|
||||
initialValue: '1'
|
||||
},
|
||||
{
|
||||
title: '服务区',
|
||||
dataIndex: 'ServerpartID',
|
||||
@ -120,32 +131,11 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
filterOption: (input, option) => (option?.label ?? '').toLowerCase().includes(input.toLowerCase()),
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'COMMODITY_STATE',
|
||||
hideInTable: true,
|
||||
valueType: 'select',
|
||||
valueEnum: {
|
||||
0: { text: '无效' },
|
||||
1: { text: '有效' }
|
||||
},
|
||||
initialValue: '1'
|
||||
},
|
||||
{
|
||||
dataIndex: 'searchText',
|
||||
title: '查询内容',
|
||||
hideInTable: true,
|
||||
fieldProps: {
|
||||
placeholder: "请输入商品名称/商品条码/商品类型"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
title: <div style={{ textAlign: 'center' }}>序号</div>,
|
||||
width: 70,
|
||||
dataIndex: 'index',
|
||||
hideInSearch: true,
|
||||
align: 'center',
|
||||
valueType: 'index'
|
||||
},
|
||||
{
|
||||
@ -414,14 +404,12 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
}
|
||||
const req: any = {
|
||||
SearchType: 3,
|
||||
ProvinceCode: currentUser?.ProvinceCode,
|
||||
ProvinceCode: currentUser?.USER_PROVINCE,
|
||||
CommodityTypeId: currenMenu === '999999' ? '' : currenMenu,
|
||||
CommodityState: params?.COMMODITY_STATE,
|
||||
ServerpartID: params?.ServerpartID,
|
||||
PageIndex: 1,
|
||||
PageSize: 999999,
|
||||
SearchKey: "COMMODITY_NAME,COMMODITY_BARCODE",
|
||||
SearchValue: params?.searchText || ""
|
||||
PageSize: 999999
|
||||
// PageSize: 20
|
||||
}
|
||||
handleCallLogs()
|
||||
@ -880,7 +868,7 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
|
||||
|
||||
<Drawer
|
||||
width={'60%'}
|
||||
width={1000}
|
||||
open={showDetail}
|
||||
onClose={() => {
|
||||
setCurrentRow(undefined)
|
||||
@ -888,7 +876,6 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
}}
|
||||
closable={false}
|
||||
destroyOnClose
|
||||
bodyStyle={{ padding: "24px" }}
|
||||
>
|
||||
<Detail currentRow={currentRow} currentUser={currentUser} treeView={treeView} />
|
||||
</Drawer>
|
||||
|
||||
@ -33,11 +33,11 @@ const detail = ({ currentUser, treeView, currentRow, showHotKeyEdit, setGetNewHo
|
||||
}
|
||||
|
||||
return (
|
||||
<div style={{ width: '100%', boxSizing: 'border-box', padding: '24rpx' }}>
|
||||
<div>
|
||||
<ProForm
|
||||
formRef={modalFormRef}
|
||||
submitter={false}
|
||||
initialValues={{ ...currentRow, ADDTIME: moment(currentRow?.ADDTIME).format('YYYY-MM-DD HH:mm:ss') }}
|
||||
initialValues={currentRow}
|
||||
layout={'horizontal'}
|
||||
>
|
||||
<div className={'modalTitle'}>商品基本信息</div>
|
||||
|
||||
@ -432,14 +432,13 @@ const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
</div>
|
||||
|
||||
<Drawer
|
||||
width={'60%'}
|
||||
width={1000}
|
||||
open={showDetail}
|
||||
onClose={() => {
|
||||
setCurrentRow(undefined)
|
||||
setShowDetail(false)
|
||||
setShowHotKeyEdit(false)
|
||||
}}
|
||||
bodyStyle={{ padding: '24px' }}
|
||||
closable={false}
|
||||
destroyOnClose
|
||||
footer={
|
||||
|
||||
@ -2054,11 +2054,8 @@ const compareList: React.FC<{
|
||||
MobilePayCorrect: MobilePayCorrect || 0,
|
||||
CashPayCorrect: CashPayCorrect || 0
|
||||
}
|
||||
console.log('reqreqrsdasda', req);
|
||||
|
||||
const data = await handleGetProjectPeriodIncome(req)
|
||||
console.log('data3232', data)
|
||||
console.log('compareCurrent3232', compareCurrent)
|
||||
if (data && data.length > 0) {
|
||||
const secondItem: any = data[0]
|
||||
|
||||
@ -2160,6 +2157,9 @@ const compareList: React.FC<{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// setSecondTable([data[0]])
|
||||
}
|
||||
if (handleGetRefreshTableData) {
|
||||
handleGetRefreshTableData()
|
||||
|
||||
@ -2422,10 +2422,6 @@ const YearExamineDetailTable = ({ parentRow, currentApprovalstate, onRef, setIsS
|
||||
if (isFirst.current) {
|
||||
isFirst.current = false
|
||||
|
||||
console.log('isShowClosebtn.currentisShowClosebtn.current', isShowClosebtn.current);
|
||||
console.log('parentRowparentRowparentRowparentRow', parentRow);
|
||||
|
||||
|
||||
if (isYear && isShowClosebtn.current && parentRow?.PeriodClosed) {
|
||||
handleCloseSettlement(closeReqTableDataRef.current)
|
||||
} else if (isShowClosebtn.current && parentRow?.CLOSED_DATE && !isYear && parentRow?.PeriodClosed) {
|
||||
|
||||
@ -100,14 +100,8 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
||||
// 当前查询的文字
|
||||
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||
// 预览上传后的图片
|
||||
const handlePreview = async (type: number) => {
|
||||
if (type === 1) {
|
||||
setFileList(mainImgList)
|
||||
} else if (type === 2) {
|
||||
setFileList(headerImgList)
|
||||
} else if (type === 3) {
|
||||
setFileList(detailImgList)
|
||||
}
|
||||
const handlePreview = async () => {
|
||||
setFileList(fileList)
|
||||
setImagePreviewVisible(true)
|
||||
};
|
||||
const handleChangePreview = (val: any) => {
|
||||
@ -695,26 +689,6 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
||||
pagination={{ defaultPageSize: 10 }}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{fileList && fileList.length > 0 && <div style={{ display: 'none' }}>
|
||||
<Image.PreviewGroup
|
||||
preview={{
|
||||
visible: imagePreviewVisible,
|
||||
onVisibleChange: vis => {
|
||||
setImagePreviewVisible(vis)
|
||||
}
|
||||
|
||||
}}>
|
||||
{
|
||||
fileList.map((n) =>
|
||||
<Image src={n.url} key={n.url} />
|
||||
)
|
||||
}
|
||||
|
||||
</Image.PreviewGroup>
|
||||
</div>}
|
||||
|
||||
|
||||
{/* 添加商品的悬浮框 */}
|
||||
<Modal
|
||||
// title={currentRow ? '更新商品管理' : '新建商品管理'}
|
||||
@ -1340,9 +1314,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
||||
disabled
|
||||
fieldProps={{
|
||||
beforeUpload,
|
||||
onPreview: () => {
|
||||
handlePreview(1)
|
||||
},
|
||||
onPreview: handlePreview,
|
||||
fileList: mainImgList, // 绑定 fileList
|
||||
customRequest: ({ file, onSuccess }) => {
|
||||
// 自定义上传,不实际发送请求
|
||||
@ -1400,9 +1372,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
||||
accept="image/*"
|
||||
fieldProps={{
|
||||
beforeUpload,
|
||||
onPreview: () => {
|
||||
handlePreview(2)
|
||||
},
|
||||
onPreview: handlePreview,
|
||||
fileList: headerImgList, // 绑定 fileList
|
||||
customRequest: ({ file, onSuccess }) => {
|
||||
// 自定义上传,不实际发送请求
|
||||
@ -1462,9 +1432,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
||||
accept="image/*"
|
||||
fieldProps={{
|
||||
beforeUpload,
|
||||
onPreview: () => {
|
||||
handlePreview(3)
|
||||
},
|
||||
onPreview: handlePreview,
|
||||
fileList: detailImgList, // 绑定 fileList
|
||||
customRequest: ({ file, onSuccess }) => {
|
||||
// 自定义上传,不实际发送请求
|
||||
|
||||
@ -552,7 +552,6 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
||||
// 编辑数据
|
||||
newValue = { ...values, SCENICAREA_ID: currentRow.SCENICAREA_ID };
|
||||
}
|
||||
handleConfirmLoading(true)
|
||||
// 如果有开关,要把开关的代码写进去
|
||||
await handleAddUpdate(newValue);
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// 由 scripts/writeVersion.js 自动生成
|
||||
export const VERSION = "4.5.54";
|
||||
export const GIT_HASH = "26ef480";
|
||||
export const BUILD_TIME = "2025-09-10T08:05:17.397Z";
|
||||
export const VERSION = "4.5.51";
|
||||
export const GIT_HASH = "a4729f7";
|
||||
export const BUILD_TIME = "2025-09-08T03:14:16.308Z";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user