Compare commits

...

3 Commits

Author SHA1 Message Date
ccy
34ad0de9a2 优化自定义组件加载 2025-10-01 18:30:21 +08:00
ccy
f06bc1ac94 自定义组件优化 2025-10-01 17:17:09 +08:00
ccy
9637e5c210 登录功能优化 2025-10-01 17:16:41 +08:00
17 changed files with 3191 additions and 2886 deletions

View File

@ -1,7 +1,7 @@
import React from 'react'
import { connect } from 'dva'
import { initFilter, getCustomParams } from "../../utils/common"
import loadPage from '../../utils/customConfig1'//便捷开发 请勿提交
import loadPage from '../../utils/customConfig'//便捷开发 请勿提交
//import loadPage from '../../utils/customConfig'
class CustomPage extends React.Component {

View File

@ -75,21 +75,8 @@ class SK002CheckList extends React.Component {
dataIndex: "DEPARTMENT_TYPE",
key: "DEPARTMENT_TYPE",
render: (text, record, index) => {
if(record.DEPARTMENT_TYPE.includes('_'))
{
let departTypes='';debugger
let departType=record.DEPARTMENT_TYPE.replace(/_/g,',').split(',').filter(Boolean);
for(var i=0;i<departType.length;i++)
{
departTypes=departTypes+" "+this.props.app.enums.SKDepartmentTypeEnum.enums[departType[i]]
}
return <label>{departTypes}</label>
}
else
{
return <label>{this.props.app.enums.SKDepartmentTypeEnum.enums[record.DEPARTMENT_TYPE]}</label>
}
}
},
],
};

View File

@ -39,7 +39,7 @@ class SK002ShowSummary extends React.Component {
// extendIgnoreDataRule(json)
this.props.dispatch({
type: "app/getDataByPost",
url: "SK/SKBasicLibrary/SKOrderEntities",
url: "SK/BasicLibrary/OrderEntities",
payload: json,
onlyData: false,
onComplete: (ret) => {
@ -81,7 +81,7 @@ class SK002ShowSummary extends React.Component {
<tr>
<td width='60px' textAlign='center' className={stylesStep.fontBold}>序号</td>
<td className={stylesStep.fontBold}>生产单元</td>
{/* <td className={stylesStep.fontBold}>辨识区域</td> */}
<td className={stylesStep.fontBold}>辨识区域</td>
<td className={stylesStep.fontBold}>风险名称</td>
<td className={stylesStep.fontBold}>风险描述</td>
<td className={stylesStep.fontBold}>风险类别</td>
@ -94,10 +94,10 @@ class SK002ShowSummary extends React.Component {
<td className={stylesStep.fontBold}>管控层级</td>
<td className={stylesStep.fontBold}>管控措施</td>
<td className={stylesStep.fontBold}>检查内容</td>
{/* <td className={stylesStep.fontBold}></td>
<td className={stylesStep.fontBold}>判定标准</td> */}
<td className={stylesStep.fontBold}>检查依据</td>
<td className={stylesStep.fontBold}>判定标准</td>
<td className={stylesStep.fontBold}>隐患描述</td>
{/* <td className={stylesStep.fontBold}>隐患等级</td> */}
<td className={stylesStep.fontBold}>隐患等级</td>
<td className={stylesStep.fontBold}>整改措施</td>
</tr>
{
@ -109,9 +109,9 @@ class SK002ShowSummary extends React.Component {
<td>
{enums.SKProductionUnit.enums[item.MineType]}
</td>
{/* <td>
<td>
{item.Nav_Area?.NAME}
</td> */}
</td>
<td>
{item.RISK_NAME}
</td>
@ -157,18 +157,18 @@ class SK002ShowSummary extends React.Component {
<td>
{ item.CHECKCONTENTS}
</td>
{/* <td>
<td>
{item.CHECKBASICS }
</td>
<td>
{ item.CHECKSTANDARDS }
</td> */}
</td>
<td>
{ item.HIDDENSCRIPTION }
</td>
{/* <td>
<td>
{ item.HIDDENLEVEL }
</td> */}
</td>
<td>
{item.RECIFYMEASURE }
</td>

View File

@ -29,7 +29,6 @@ class SK004CheckPost extends React.Component {
phone:'',
post: {},
cards: {},
selectedRowKeys:[],
dataList: [],
MineType:0,
CHECK_CYCLE:0,
@ -103,14 +102,14 @@ class SK004CheckPost extends React.Component {
return <label>{this.props.app.enums.SKEvaluateLevelEnum.enums[record.EVALUATE_LEVEL]}</label>
}
},
// {
// title: '操作',
// dataIndex: '',
// key: '',
// render: (text, record, index) => {
// return <Button type='defualt' size='small' onClick={(e) => { this.showModalCard(record) }} icon='eye' />
// }
// }
{
title: '操作',
dataIndex: '',
key: '',
render: (text, record, index) => {
return <Button type='defualt' size='small' onClick={(e) => { this.showModalCard(record) }} icon='eye' />
}
}
],
columndatas : [
{
@ -204,11 +203,7 @@ class SK004CheckPost extends React.Component {
XLSX.writeFile(wb, "岗位风险清单.xlsx")
}
onSelectChange = (selectedRowKeys,selectedRows) => { // 选择菜单行
this.setState({selectedRowKeys:selectedRowKeys,
taskSelects:selectedRows
});
};
showModal = (item) => {
this.setState({
showDetail: true,
@ -236,55 +231,10 @@ class SK004CheckPost extends React.Component {
handleCancelCard = () => {
this.setState({
showCard: false,
cards:{},
taskSelects:[],
selectedRowKeys:[],
cards:{}
});
};
showModalCard = () => {
let meas=[];let riskNames = [];let levels = [];
let descriptions=[];let riskTypes=[];let emergencys=[];let photos=[];
if (this.state.taskSelects && this.state.taskSelects.length > 0)
{
for(var i = 0; i <this.state.taskSelects.length ; i++)
{
let tmpData = [];
let level=this.props.app.enums.SKEvaluateLevelEnum.enums[this.state.taskSelects[i].EVALUATE_LEVEL]
riskNames.push(this.state.taskSelects[i].RISK_NAME+'')
levels.push(level+'');
descriptions.push(this.state.taskSelects[i].RISK_NAME+""+this.state.taskSelects[i].RISK_DESCRIPTION+'\n')
riskTypes.push(this.state.taskSelects[i].RISK_NAME+""+this.state.taskSelects[i].Nav_Type?.NAME+'\n');
emergencys.push(this.state.taskSelects[i].RISK_NAME+""+this.state.taskSelects[i].EMERGENCY+'\n');
photos.push(this.state.taskSelects[i].Nav_Photo[0]+'\n');
for(var j = 0; j <this.state.taskSelects[i].Nav_Details.length ; j++)
{
tmpData = tmpData+ '\n'+ (j+1)+"、" +this.state.taskSelects[i].Nav_Details[j].MEASURES_NAME
}
meas.push(this.state.taskSelects[i].RISK_NAME +""+tmpData+'\n');
}
let temps={
RISK_NAME:riskNames,
RISK_CODE:this.state.postName,
EVALUATE_LEVEL:levels,
RISK_DESCRIPTION:descriptions,
MEASURES_NAME:meas,
RISK_TYPE:riskTypes,
EMERGENCY:emergencys,
photo:photos
}
this.setState({
cards:temps,
showCard: true,
});
}
else
{
message.error('请先选择风险!');
return;
}
};
showModalCardOld = (record) => {
showModalCard = (record) => {
this.setState({
showCard: true,
},()=>{
@ -314,9 +264,7 @@ class SK004CheckPost extends React.Component {
closeModalCard = () => {
this.setState({
showCard: false,
cards:{},
taskSelects:[],
selectedRowKeys:[],
cards:{}
});
};
handleSearch = ({data, record}) => {
@ -352,14 +300,6 @@ class SK004CheckPost extends React.Component {
labelCol: { span: 8 },
wrapperCol: { span: 16 },
}
const {selectedRowKeys} =this.state;
const rowSelection = {
selectedRowKeys:selectedRowKeys,
fixed: false,
columnWidth: 20,
hideDefaultSelections:false,
onChange: this.onSelectChange
};
const enums=this.props.data.enums ? this.props.data.enums :this.props.app.enums ;
// let aaa = Math.random();
return <div>
@ -376,27 +316,24 @@ class SK004CheckPost extends React.Component {
<br></br>
<h2 style={{textAlign:'center',fontWeight:'bold',margin:"auto",color:"red"}}> {this.state.postName}岗位风险点告知卡</h2>
<br></br>
<div style={{margin:"auto",alignContent:"center",width:"1200px"}} className={stylesStep.PrintForm}><ReactToPrint trigger={() => <Button type={'default'} icon={'printer'} >打印</Button>} content={() => this.componentRef} /></div>
<br></br>
<div ref={el => (this.componentRef = el)} style={{ padding: '20px', paddingTop: '20px' }} id={'tableId' + this.props.id}>
<table style={{margin:"auto",alignContent:"center"}} className={stylesStep.PrintForm} >
<tr>
<td style={{backgroundColor:"yellow",width:"120px",textAlign:'center'}}>岗位名称</td>
<td> {this.state.cards?.RISK_CODE}</td>
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}} rowSpan={3}>
风险描述
</td>
<td rowSpan={3}>
<div style={{whiteSpace:'pre-line'}}>{this.state.cards?.RISK_DESCRIPTION}</div>
</td>
</tr>
<table style={{margin:"auto",alignContent:"center",width:"1000px"}} className={stylesStep.PrintForm} >
<tr>
<td style={{backgroundColor:"yellow",width:"120px",textAlign:'center'}}>
风险名称
风险点名称
</td>
<td>
{this.state.cards?.RISK_NAME}
</td>
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}} rowSpan={3}>
主要危险因素描述
</td>
<td rowSpan={3}>
{this.state.cards?.RISK_DESCRIPTION}
</td>
</tr>
<tr>
<td style={{backgroundColor:"yellow",width:"120px",textAlign:'center'}}>风险点编号</td>
<td> {this.state.cards?.RISK_CODE}</td>
</tr>
<tr>
<td style={{backgroundColor:"yellow",width:"120px",textAlign:'center'}}>风险等级</td>
@ -404,32 +341,28 @@ class SK004CheckPost extends React.Component {
</tr>
<tr>
<td style={{backgroundColor:"yellow",width:"120px",textAlign:'center'}}>安全标志</td>
<td> <img title={"安全标志"} src={require("../../../../src/assets/aqbz.png")} />
</td>
{/* <td> {this.state.cards?.photo?showFiles(this.state.cards?.photo, config.picServerHost, this)
<td> {this.state.cards?.photo?showFiles(this.state.cards?.photo, config.picServerHost, this)
:<img title={"安全标志"} src={require("../../../../src/assets/aqbz.png")} />
}
</td> */}
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}}>管控措施</td>
<td><div style={{whiteSpace:'pre-line'}}>{this.state.cards?.MEASURES_NAME}</div> </td>
</td>
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}}>主要风险控制措施</td>
<td> {this.state.cards?.MEASURES_NAME}</td>
</tr>
<tr>
<td style={{backgroundColor:"rgba(1,203,253)",color:"white",width:"120px",textAlign:'center'}}>责任单位</td>
<td> {this.state?.departName}</td>
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}}>风险类别</td>
<td> <div style={{whiteSpace:'pre-line'}}>{this.state.cards?.RISK_TYPE}</div></td>
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}}>主要事故类型</td>
<td> {this.state.cards?.RISK_TYPE}</td>
</tr>
<tr>
<td style={{backgroundColor:"rgba(1,203,253)",color:"white",width:"120px",textAlign:'center'}}>责任人联系电话</td>
<td> {this.state?.phone}</td>
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}}>应急处置</td>
<td> <div style={{whiteSpace:'pre-line'}}>{this.state.cards?.EMERGENCY}</div></td>
<td style={{backgroundColor:"red",color:"white",width:"150px",textAlign:'center'}}>应急处置措施</td>
<td> {this.state.cards?.EMERGENCY}</td>
</tr>
</table>
<br></br>
</div>
</Modal>
<br></br>
<Modal
@ -441,16 +374,10 @@ class SK004CheckPost extends React.Component {
className="antd-modal-fullscreen"
closeModal={this.closeModal}
>
<br></br>
<div className="antd-modal-fullscreen">
<Button type='primary' onClick={() => this.showModalCard()} icon="export">生成岗位告知卡</Button>
</div>
<br></br>
<Table
dataSource={this.state.Details}
columns={this.state.columns}
pagination={false}
rowSelection={rowSelection}
pagination={true}
bordered
loading={false}
size="small"

View File

@ -13,13 +13,13 @@ const getServiceHost = api => {
}
return `${port}/${api}`
}
let version = 2025081901;
let version = 2025081903;
const config = {
local: {
serviceHost: api => {
const apis = getServiceHost(api)
return `http://121.41.2.71:${apis}`
return `http://localhost:${apis}`
},
cookieDomain: "",
flowServiceHost: "http://120.25.146.31:3188/",

View File

@ -196,7 +196,7 @@ export default {
login.tempDatas.map(item=>{
let tmpData = {
ID:guid(),
NUM:item.NUM,
NUM:item.ROW_NO,
MEASURES_NAME: item.MEASURES_NAME,
}
if(stateData && stateData.Nav_Details)
@ -312,7 +312,7 @@ export default {
stateData.EVALUATE_LEVEL=40;
stateData.DEPARTMENT_TYPE="_2_";
let temp={
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp);
}
@ -324,16 +324,16 @@ export default {
stateData.EVALUATE_LEVEL=10;
stateData.DEPARTMENT_TYPE="_0_1_2_3_";
let temp3={
DEPARTMENT_TYPE:5,
DEPARTMENT_TYPE:3,
}
let temp={
DEPARTMENT_TYPE:10,
DEPARTMENT_TYPE:0,
}
let temp1={
DEPARTMENT_TYPE:15,
DEPARTMENT_TYPE:1,
}
let temp2={
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp3);
departs.push(temp);
@ -349,13 +349,13 @@ export default {
// setFieldValue("EVALUATE_LEVEL", 20);
// setFieldValue("DEPARTMENT_TYPE", "_0_1_2_");
let temp={
DEPARTMENT_TYPE:10,
DEPARTMENT_TYPE:0,
}
let temp1={
DEPARTMENT_TYPE:15,
DEPARTMENT_TYPE:1,
}
let temp2={
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp);
departs.push(temp1);
@ -368,10 +368,10 @@ export default {
// setFieldValue("EVALUATE_LEVEL", 30);
// setFieldValue("DEPARTMENT_TYPE", "_1_2_");
let temp1={
DEPARTMENT_TYPE:15,
DEPARTMENT_TYPE:1,
}
let temp2={
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp1);
departs.push(temp2);
@ -382,7 +382,7 @@ export default {
// setFieldValue("EVALUATE_LEVEL", 40);
// setFieldValue("DEPARTMENT_TYPE", "_2_");
let temp={
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp);
}
@ -536,19 +536,19 @@ export default {
{
let temp3={
ID: guid(),
DEPARTMENT_TYPE:5,
DEPARTMENT_TYPE:3,
}
let temp={
ID: guid(),
DEPARTMENT_TYPE:10,
DEPARTMENT_TYPE:0,
}
let temp1={
ID: guid(),
DEPARTMENT_TYPE:15,
DEPARTMENT_TYPE:1,
}
let temp2={
ID: guid(),
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp3);
departs.push(temp);
@ -559,15 +559,15 @@ export default {
{
let temp={
ID: guid(),
DEPARTMENT_TYPE:10,
DEPARTMENT_TYPE:0,
}
let temp1={
ID: guid(),
DEPARTMENT_TYPE:15,
DEPARTMENT_TYPE:1,
}
let temp2={
ID: guid(),
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp);
departs.push(temp1);
@ -577,11 +577,11 @@ export default {
{
let temp1={
ID: guid(),
DEPARTMENT_TYPE:15,
DEPARTMENT_TYPE:1,
}
let temp2={
ID: guid(),
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp1);
departs.push(temp2);
@ -590,23 +590,22 @@ export default {
{
let temp={
ID: guid(),
DEPARTMENT_TYPE:20,
DEPARTMENT_TYPE:2,
}
departs.push(temp);
}
}
// stateData.Nav_Departs = departs
stateData.Nav_Departs = departs
if(login.tempAddData.Nav_Details)
{
let details=[]
login.tempAddData.Nav_Details.sort((x, y) => (x.NUM > y.NUM ? 1 : -1)).map((item,k)=>{
login.tempAddData.Nav_Details.map((item,k)=>{
let contents=[]
item.Nav_DetailContents && item.Nav_DetailContents.sort((x, y) => (x.NUM > y.NUM ? 1 : -1)).map((x,j)=>{
item.Nav_DetailContents && item.Nav_DetailContents.map((x,j)=>{
let hiddens=[]
x.Nav_DetailHiddens && x.Nav_DetailHiddens.sort((x, y) => (x.NUM > y.NUM ? 1 : -1)).map((y,i)=>{
x.Nav_DetailHiddens && x.Nav_DetailHiddens.map((y,i)=>{
let hidden={
ID: guid(),
NUM:y.NUM,
RECTIFICATION_MEASURES :y.RECTIFICATION_MEASURES,
HIDDEN_LEVEL :y.HIDDEN_LEVEL,
HIDDEN_DESCRIPTION :y.HIDDEN_DESCRIPTION,
@ -626,7 +625,6 @@ export default {
})
let content={
ID: guid(),
NUM:x.NUM,
CHECK_STANDARD :x.CHECK_STANDARD,
CHECK_CONTENTS_ID:x.CHECK_CONTENTS_ID,
Nav_Contents:x.Nav_Contents,
@ -637,7 +635,6 @@ export default {
})
let detail={
ID: guid(),
NUM:item.NUM,
MEASURES_NAME:item.MEASURES_NAME,
Nav_DetailContents:contents
}
@ -651,98 +648,6 @@ export default {
}
}
},
updateCheckLevel: ({ row, pageCode, record,dispatch, colInfo, stateData, login, saveRowRecord, setState, emptyEditSelectedKeys }) => {
if(stateData)
{
let temps=[]
if(!stateData.Nav_Departs)
{
message.error("请先填写管控层级!");
return;
}
else
{
let json = initFilter(login.OrgId);
extendRule(json, 'MineType', 1, stateData.MineType);
dispatch({
type: 'app/getDataByPost',
url: 'SK/CheckType/OrderEntities',
payload: json,
onlyData: false,
onComplete: (re) => {
if (re && re.IsSuccessful && re.Data) {
stateData.Nav_Departs.map(x=>{
let check=re.Data.filter(t=>t.NAME=="巡回检查")
let checkCycle=0;
if(x.DEPARTMENT_TYPE ===3)
{
//默认综合检查-每月
check=re.Data.filter(t=>t.NAME=="综合检查")
checkCycle=30
}
else if(x.DEPARTMENT_TYPE ===0)
{
//默认例行检查-每月
check=re.Data.filter(t=>t.NAME=="例行检查")
checkCycle=30
}
else if(x.DEPARTMENT_TYPE ===1)
{
//默认例行检查-每周
check=re.Data.filter(t=>t.NAME=="例行检查")
checkCycle=20
}
else
{
//默认巡回检查-每天
check=re.Data.filter(t=>t.NAME=="巡回检查")
checkCycle = 0
}
let temp={
ID: guid(),
NUM:x.NUM,
CHECK_TYPE :x.DEPARTMENT_TYPE,
DEPARTMENT_ID:x.DEPARTMENT_ID,
Nav_Department:x.Nav_Department,
CHECK_TYPE_ID:check[0].ID,
Nav_CheckType:check[0],
CHECK_CYCLE:checkCycle
}
temps.push(temp)
})
}
else
{
message.error("请先填写辨识岗位");
return;
}
}
})
}
if (stateData.Nav_Details)
{
stateData.Nav_Details.map(item=>{
if(!item.Nav_DetailContents)
{
message.error("请先填写检查内容!");
return;
}
else
{
item.Nav_DetailContents.map(x=>{
x.Nav_DetailDeparts = temps
})
}
})
}
else
{
message.error("请先填写管控措施!");
return;
}
setState(stateData);
}
},
// btnSubAddContent: ({params, record, parentRecord,pageCode,tableConfig, stateData,setState, close, loadData, login, btn, dispatch,props }) => {
// let temps=[];
// if(login.tempDatas && login.tempDatas.length>0)

View File

@ -21,15 +21,14 @@ export default {
RISK_NAME_ID: item.RISK_NAME_ID,
RISK_NAME: item.RISK_NAME,
RISK_DESCRIPTION: item.RISK_DESCRIPTION,
// CHECKLEVEL: item.CHECKLEVEL,
// CHECKDEPT: item.CHECKDEPT,
// CHECKPOST: item.CHECKPOST,
// MEASURE: item.MEASURE,
MINE_NAME: item.MINE_NAME,
CHECKLEVEL: item.CHECKLEVEL,
CHECKDEPT: item.CHECKDEPT,
CHECKPOST: item.CHECKPOST,
MEASURE: item.MEASURE,
EMERGENCY: item.EMERGENCY,
Nav_Area: item.Nav_Area,
Nav_Type: item.Nav_Type,
// Nav_RiskName: item.Nav_RiskName,
Nav_RiskName: item.Nav_RiskName,
EVALUATE_SCORE: item.EVALUATE_SCORE,
SCOREE_ID: item.SCOREE_ID,
SCOREL_ID: item.SCOREL_ID,
@ -37,9 +36,6 @@ export default {
Nav_SCOREL:item.Nav_SCOREL,
Nav_SCOREE:item.Nav_SCOREE,
Nav_SCOREC:item.Nav_SCOREC,
EVALUATE_LEVEL:item.EVALUATE_LEVEL,
MARK:0,
ENABLE_STATUS:0
}
temps.push(tmpData);
});

View File

@ -5,7 +5,11 @@ import * as BizCharts from 'bizcharts';
import { message } from 'antd'
import './index.css';
import './styles/feui/index.less'
BizCharts.track(false);
import { preloadCommonComponents } from './utils/customConfig';
// 应用启动时预加载常用组件
// 预加载常用组件 - 根据环境自动选择配置策略
// preloadCommonComponents();
// 1. Initialize
const app = dva({

View File

@ -26,10 +26,12 @@ const MainLayout = (props) => {
let matchHome =false;
const [matchPost, setMatchPost] = useState(false)
/** 手机端隐藏 */
if (window.navigator.userAgent.indexOf("Windows") < 1)
// 修复逻辑:如果用户代理中不包含"Windows",则认为是手机端
if (window.navigator.userAgent.indexOf("Windows") === -1)
{
matchHome =true
}
const repost=()=>{
setMatchPost(!matchPost)
}

View File

@ -162,7 +162,8 @@ const Sider = (props) => {
/** 常用菜单 */
const favorMenus = useMemo(() => {
const { flatMenus } = props.login;
return flatMenus.filter((menu) => menu.IS_RESIDENT);
const filtered = flatMenus.filter((menu) => menu.IS_RESIDENT);
return filtered;
}, [props.login.flatMenus]);
/** 一级菜单 */
@ -175,11 +176,12 @@ const Sider = (props) => {
// 叶子菜单需要换行展示个数
const leafMenuSections =
menus.length < 3 ? 1 : menus.length === 3 ? 2 : menus.length - 2;
return {
const result = {
menus,
width: menuWidth < 120 ? 120 : menuWidth,
leafMenuSections,
};
return result;
}, [props.login.loginInfo?.Menus]);
/** 二三级子菜单 */

View File

@ -264,14 +264,14 @@ export default {
if (currentMineType) {
storage("lacal").setItem("currentMineType", currentMineType);
var filterObj = function (item) {
if (item.Node.MineType && item.Node.MineType.indexOf(currentMineType) > -1) {
if (item.Node.MineType && item.Node.MineType.indexOf("_" + currentMineType + "_") > -1) {
if (item.Children.length !== 0) {
item.Children = item.Children.filter(function (child) {
if (child.Children.length !== 0) {
return filterObj(child);
} else {
if (child.Node.MineType) {
return child.Node.MineType.indexOf(currentMineType) > -1
return child.Node.MineType.indexOf("_" + currentMineType + "_") > -1
}
}
});
@ -280,7 +280,7 @@ export default {
}
} else {
if (item.Node.MineType) {
return item.Node.MineType.indexOf(currentMineType) > -1;
return item.Node.MineType.indexOf("_" + currentMineType + "_") > -1;
}
return;
}

View File

@ -73,7 +73,7 @@ class LoginPage extends React.Component {
}
// if (window.navigator.userAgent.indexOf("Windows") < 1) openNotificationMobile('bottomRight');
this.removeRequestKey()
this.getOrgList()
//this.getOrgList()
}
componentWillUnmount() {
@ -227,6 +227,23 @@ class LoginPage extends React.Component {
// }
// })
console.log('🚀 准备dispatch login/toLogin参数:', {
Parameter1: username,
Parameter2: MD5(password),
Parameter4: Parameter4,
Parameter5: storage('lacal').getItem('formConfigVersion').val,
Parameter6: requestCode,
Parameter7: phoneCode
});
console.log('🔑 loginPayload:', {
username: username,
password: MD5(password),
accessToken: tokenData.access_token,
refreshToken: tokenData.refreshToken,
expiresIn: tokenData.expiresIn,
userid: tokenData.userid
});
this.props.dispatch({
type: 'login/toLogin',
payload: {
@ -246,6 +263,7 @@ class LoginPage extends React.Component {
userid: tokenData.userid
}
}).then(validRes => {
console.log('✅ dispatch login/toLogin 返回结果:', validRes);
if (validRes) {
storage('lacal').setItem('verifyPhoneCode', tokenData.userid)
this.props.dispatch({
@ -295,7 +313,17 @@ class LoginPage extends React.Component {
this.setState({ loginError: res.error_description })
return
}
const { isCheckPhoneCode, userid } = res
// 存储Token/Gen返回的关键数据到localStorage
const { Tenant, userid, orgId, userName, isCheckPhoneCode } = res
console.log('🔄 存储Token/Gen返回数据到localStorage:', { Tenant, userid, orgId, userName })
// 存储到localStorage供后续接口使用
storage('lacal').setItem('Tenant', Tenant)
storage('lacal').setItem('Userid', userid)
storage('lacal').setItem('Orgid', orgId)
storage('lacal').setItem('Username', userName)
const { hasCheckPhoneCode } = this.state
if (isCheckPhoneCode && (!hasCheckPhoneCode || hasCheckPhoneCode.indexOf(userid) === -1)) {
// 需要进行验证码验证

View File

@ -1,7 +1,7 @@
import { httpPost } from '../utils/request'
export function getOrg(params) { // 获取组织列表service)
return httpPost('OP/TenantInfo/GetOrgList', params)
//return httpPost('OP/TenantInfo/GetOrgList', params)
}
export function getToken(params) { // 获取Tokenservice) PF

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1283,10 +1283,6 @@ const SK004CheckList = Loadable({
loader: () => import('../components/CustomPages/SK/SK004CheckList'),
loading: () => <div />
})
const SK004CheckListNew = Loadable({
loader: () => import('../components/CustomPages/SK/SK004CheckListNew'),
loading: () => <div />
})
const SK004CheckPost = Loadable({
loader: () => import('../components/CustomPages/SK/SK004CheckPost'),
loading: () => <div />
@ -1790,7 +1786,6 @@ export default function (componentName, formId, formParam, data, formCode, formD
SK002ShowSummary: <SK002ShowSummary formId={formId} formParam={formParam} data={data} formCode={formCode} />,
SK004ShowPrint: <SK004ShowPrint formId={formId} formParam={formParam} data={data} formCode={formCode} />,
SK004CheckList: <SK004CheckList formId={formId} formParam={formParam} data={data} formCode={formCode} />,
SK004CheckListNew: <SK004CheckListNew formId={formId} formParam={formParam} data={data} formCode={formCode} />,
SK004CheckPost: <SK004CheckPost formId={formId} formParam={formParam} data={data} formCode={formCode} />,
SK004ShowSummary: <SK004ShowSummary formId={formId} formParam={formParam} data={data} formCode={formCode} />,
SK004Import: <SK004Import formId={formId} formParam={formParam} data={data} formCode={formCode} />,

View File

@ -7,10 +7,12 @@ import { history } from './history'
import storage from './storage'
export function request(url, options, onlyData, requestKey, onException) {
return fetch(
config.serviceHost('api/' + url),
options || {}
).then(response => {
// 登陆过期
if (response.status === 401) {
window.localStorage.removeItem('accessToken')
@ -20,11 +22,14 @@ export function request(url, options, onlyData, requestKey, onException) {
requestKey && window.localStorage.removeItem(requestKey)
return response.json()
}).then(data => {
data.IsSuccessful !== undefined && !data.IsSuccessful && message.error(data.ErrorMessage)
return onlyData ? data.Data : data
}).catch(err => {
requestKey && window.localStorage.removeItem(requestKey)
onException instanceof Function && onException(err)
throw err; // 重新抛出错误,确保错误被正确传播
})
}
@ -52,7 +57,7 @@ export function getRequestHeaders(url, type = 'post', isIgnoreTenant) {
'Content-Type': type === 'post' ? 'application/json' : 'application/x-www-form-urlencoded',
Authorization: addHeader,
userid: userId,
username: user ? user.username : '',
username: user && user.username ? user.username : '',
departmentId: depId,
MineType: mineType,
RootOrgId,
@ -61,7 +66,33 @@ export function getRequestHeaders(url, type = 'post', isIgnoreTenant) {
}
// 非 OP 路径接口header 需要添加 Tenant
const Tenant = storage('lacal').getItem('Tenant').val
url.indexOf('OP') != 0 && !isIgnoreTenant && (headers.Tenant = Tenant)
if (url.indexOf('PF/Login/Login') !== -1) {
// Login接口使用最新的Tenant、Orgid、userid、Username值
const latestTenant = storage('lacal').getItem('Tenant').val
const latestOrgid = storage('lacal').getItem('Orgid').val
const latestUserid = storage('lacal').getItem('Userid').val
const latestUsername = storage('lacal').getItem('Username').val
if (latestTenant) {
headers.Tenant = latestTenant
}
if (latestOrgid) {
// 覆盖原有的orgId字段使用最新值
headers.orgId = latestOrgid
}
if (latestUserid) {
// 覆盖原有的userid字段使用最新值
headers.userid = latestUserid
}
if (latestUsername) {
// 覆盖原有的username字段使用最新值
headers.username = latestUsername
}
} else if (url.indexOf('OP') != 0 && !isIgnoreTenant) {
headers.Tenant = Tenant
}
return headers
}