Commit e57b6b6f4609b36743f8c6a68872bf47282ebe3c

Authored by Min
1 parent f7edf172

1.app心跳包 定时去检查当前WebSocket连接状态,如果是打开状态,则先发送消息;如果websoket关闭了,则重新建立连接

src/components/Common/CommonListEvent.js
... ... @@ -1750,6 +1750,9 @@ export default (ChildComponent) => {
1750 1750 const iConfigIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === sNotRepeatColumn);
1751 1751 const sNotRepeatShowName = iConfigIndex > -1 ? slaveConfig.gdsconfigformslave[iConfigIndex].showName : '';
1752 1752 message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseSame') + sNotRepeatShowName); // 请选择相同
  1753 + this.props.onSaveState({
  1754 + loading: false,
  1755 + });
1753 1756 return;
1754 1757 }
1755 1758 }
... ... @@ -1780,33 +1783,33 @@ export default (ChildComponent) => {
1780 1783 this.props.app.webSocket.onmessageTmp = (msg) => {
1781 1784 const rtmsg = JSON.parse(msg.data);
1782 1785 if (rtmsg.action === 'execute') {
1783   - if (rtmsg.msg === 'continue') {
1784   - const { formRoute } = this.state;
1785   - if (commonUtils.isNotEmptyArr(copyToData)) {
1786   - copyTo.name = name;
1787   - copyTo.config = copyToConfig;
1788   - if (name !== 'BtnCopyTo.workOrderToWorkOrder' && !name.includes('BtnCopyTo.tmpInfo') && !name.includes('btncopyto.tmpinfobysql')) {
1789   - copyTo.masterData = copyToData[0];
1790   - copyTo.slaveData = copyToData;
1791   - copyTo.copyOtherData = addcopyOther;
1792   - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */
1793   - }
1794   - copyTo.copyToDataSid = sId?.split(',');
1795   - dispatch({
1796   - type: 'content/onRouter',
1797   - payload: {
1798   - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
1799   - copyTo,
1800   - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition),
1801   - sSrcModelsId: this.props.sModelsId,
1802   - },
1803   - });
1804   - } else {
1805   - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
  1786 + if (rtmsg.msg !== 'continue') {
  1787 + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */
  1788 + }
  1789 + const { formRoute } = this.state;
  1790 + if (commonUtils.isNotEmptyArr(copyToData)) {
  1791 + copyTo.name = name;
  1792 + copyTo.config = copyToConfig;
  1793 + if (name !== 'BtnCopyTo.workOrderToWorkOrder' && !name.includes('BtnCopyTo.tmpInfo') && !name.includes('btncopyto.tmpinfobysql')) {
  1794 + copyTo.masterData = copyToData[0];
  1795 + copyTo.slaveData = copyToData;
  1796 + copyTo.copyOtherData = addcopyOther;
  1797 + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */
1806 1798 }
  1799 + copyTo.copyToDataSid = sId?.split(',');
  1800 + dispatch({
  1801 + type: 'content/onRouter',
  1802 + payload: {
  1803 + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
  1804 + copyTo,
  1805 + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition),
  1806 + sSrcModelsId: this.props.sModelsId,
  1807 + },
  1808 + });
1807 1809 } else {
1808   - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */
  1810 + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
1809 1811 }
  1812 +
1810 1813 }
1811 1814 };
1812 1815 let sId = sIdArray.toString();
... ... @@ -1815,21 +1818,46 @@ export default (ChildComponent) => {
1815 1818 const values = { sSlaveId: sId };
1816 1819 const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
1817 1820 if (dataReturn.code === 1) {
1818   - const sendSocketMessage = this.props.handleSendSocketMessage;
1819   - if (sIdArray?.length > 10) {
1820   - sId = sIdArray?.[0];
1821   - }
1822   - if (dataReturn.dataset.rows.length > 0) {
1823   - confirm({
1824   - title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
1825   - onOk() {
1826   - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
1827   - },
1828   - onCancel() {
1829   - },
1830   - });
  1821 + if (commonUtils.isNotEmptyArr(copyToData) && copyToData.length > 0) { /* 复制到数据大于200 就不走websoket */
  1822 + if (commonUtils.isNotEmptyArr(copyToData)) {
  1823 + copyTo.name = name;
  1824 + copyTo.config = copyToConfig;
  1825 + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */
  1826 + if (name !== 'BtnCopyTo.workOrderToWorkOrder' && !name.includes('BtnCopyTo.tmpInfo') && !name.includes('ByQuo')
  1827 + && !name?.toLowerCase()?.includes('tmpinfobysql')
  1828 + && !name.includes('ByOrder') && !name.includes('ByWork')) {
  1829 + copyTo.masterData = copyToData[0];
  1830 + copyTo.slaveData = copyToData;
  1831 + copyTo.copyOtherData = addcopyOther;
  1832 + }
  1833 + dispatch({
  1834 + type: 'content/onRouter',
  1835 + payload: {
  1836 + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
  1837 + copyTo,
  1838 + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition),
  1839 + },
  1840 + });
  1841 + } else {
  1842 + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
  1843 + }
1831 1844 } else {
1832   - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
  1845 + const sendSocketMessage = this.props.handleSendSocketMessage;
  1846 + if (sIdArray?.length > 10) {
  1847 + sId = sIdArray?.[0];
  1848 + }
  1849 + if (dataReturn.dataset.rows.length > 0) {
  1850 + confirm({
  1851 + title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
  1852 + onOk() {
  1853 + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
  1854 + },
  1855 + onCancel() {
  1856 + },
  1857 + });
  1858 + } else {
  1859 + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
  1860 + }
1833 1861 }
1834 1862 } else {
1835 1863 this.props.getServiceError(dataReturn);
... ...
src/components/Common/commonKeyUp.js
... ... @@ -41,7 +41,6 @@ export function getKeyUpEvent(name, sFieldName, tableConfig, masterData, tableDa
41 41 const sAssignField = tableConfig.gdsconfigformslave[iConfigIndex].sOnChangeAssignField;
42 42 const sButtonParam = tableConfig.gdsconfigformslave[iConfigIndex].sButtonParam; /* 设置多级联动 */
43 43  
44   - console.log('sAssignField:', sAssignField);
45 44  
46 45 // 根据赋值字段类型分发处理逻辑
47 46 /* keyUp联动其他表 */
... ... @@ -500,7 +499,7 @@ function formatTableData(originObj) {
500 499 if (originObj == null || typeof originObj !== 'object') {
501 500 return {};
502 501 }
503   -
  502 +
504 503 const newObj = {};
505 504 // 遍历原始对象的键值对
506 505 Object.entries(originObj).forEach(([key, value]) => {
... ...
src/components/IndexCenter/IndexCenter.js
... ... @@ -784,7 +784,7 @@ class IndexCenter extends Component {
784 784 .replace('{token}', token)
785 785 .replace('{ipAddress}', addressStr)
786 786 .replace('{ipPadAddress}', ipPadAddress) : '';
787   - console.log('iframeUrl', iframeUrl);
  787 +
788 788  
789 789 const ExtraWrap = (
790 790 <div className={styles.extraWrap}>
... ...
src/models/app.js
... ... @@ -567,6 +567,8 @@ export default {
567 567 },
568 568 /** 返回新页签 */
569 569 *createWebSocket({ payload }, { put, select }) {
  570 + // console.log("WebSocket 功能已被禁用");
  571 + // return null;
570 572 const { reStart, dispatch } = payload;
571 573 const userinfo = yield select(state => state.app.userinfo);
572 574 let url = `${config.ws_host}websocket/${userinfo.sId}`;
... ... @@ -714,11 +716,11 @@ export default {
714 716 } else {
715 717 dispatch({ type: "app/throwError", payload: { code: -2, msg: rtmsg.msg } });
716 718 }
717   - } else if (rtmsg.action === "kpimodle") {
  719 + } else if (rtmsg.action === "kpi1modle") {
718 720 // 主页数据
719 721 const msgData = JSON.parse(msg.data);
720 722 dispatch({ type: "app/saveKpiData", payload: { kpiData: msgData.msg } });
721   - } else if (rtmsg.action === "workMsg") {
  723 + } else if (rtmsg.action === "wor2kMsg") {
722 724 // 工单系统消息
723 725 const msgData = JSON.parse(msg.data);
724 726 dispatch({ type: "app/saveWorkMsg", payload: { workMsg: msgData.msg } });
... ...
src/routes/indexPage.js
... ... @@ -26,34 +26,34 @@ function IndexPage({ app }) {
26 26 };
27 27 }, []);
28 28  
29   - const { webSocket, userinfo } = app;
30   - const { sId } = userinfo;
31   - const testMsg = JSON.stringify({ flag: "connectTest", sId: "test", sendFrom: sId });
32   -
33   - const timer = useRef(null);
34   -
35   - const { url } = webSocket || {};
36   - const wsRef = useRef(webSocket);
37   - const xlyWsTimerFun = () => {
38   - clearInterval(timer.current);
39   - // 重新启动定时器
40   - timer.current = setInterval(() => {
41   - if (wsRef.current && wsRef.current.readyState === WebSocket.OPEN) {
42   - wsRef.current.send(testMsg);
43   - }
44   - }, 20000);
45   - }
46   - useEffect(() => {
47   - if (url) {
48   - wsRef.current = webSocket;
49   - xlyWsTimerFun();
50   - window.xlyWsTimerFun = xlyWsTimerFun;
51   - }
52   - return () => {
53   - window.xlyWsTimerFun = null;
54   - clearInterval(timer.current);
55   - };
56   - }, [url]);
  29 + // const { webSocket, userinfo } = app;
  30 + // const { sId } = userinfo;
  31 + // const testMsg = JSON.stringify({ flag: "connectTest", sId: "test", sendFrom: sId });
  32 + //
  33 + // const timer = useRef(null);
  34 + //
  35 + // const { url } = webSocket || {};
  36 + // const wsRef = useRef(webSocket);
  37 + // const xlyWsTimerFun = () => {
  38 + // clearInterval(timer.current);
  39 + // // 重新启动定时器
  40 + // timer.current = setInterval(() => {
  41 + // if (wsRef.current && wsRef.current.readyState === WebSocket.OPEN) {
  42 + // wsRef.current.send(testMsg);
  43 + // }
  44 + // }, 20000);
  45 + // }
  46 + // useEffect(() => {
  47 + // if (url) {
  48 + // wsRef.current = webSocket;
  49 + // xlyWsTimerFun();
  50 + // window.xlyWsTimerFun = xlyWsTimerFun;
  51 + // }
  52 + // return () => {
  53 + // window.xlyWsTimerFun = null;
  54 + // clearInterval(timer.current);
  55 + // };
  56 + // }, [url]);
57 57  
58 58 // 根据用户语言选择对应的语言包
59 59 const getLocale = () => {
... ...