From 22f3e06585e0cf17d68c0a026a3136db07f4028e Mon Sep 17 00:00:00 2001 From: gtz <535262213@qq.com> Date: Wed, 3 Jan 2024 13:11:50 +0800 Subject: [PATCH 01/12] 'update_coldboard' --- .env.stage | 2 +- src/assets/img/logo-back.png | Bin 0 -> 2375 bytes src/assets/img/logo.png | Bin 2375 -> 7513 bytes src/views/OperationalOverview/AGVBoard.vue | 2 +- src/views/OperationalOverview/coldBoard.vue | 123 +- .../OperationalOverview/processingBoard.vue | 2 +- yarn.lock | 1896 +++++++++-------- 7 files changed, 1074 insertions(+), 951 deletions(-) create mode 100644 src/assets/img/logo-back.png diff --git a/.env.stage b/.env.stage index b44437a1..ccbf9ae6 100644 --- a/.env.stage +++ b/.env.stage @@ -12,7 +12,7 @@ VUE_APP_JIMU_API = 'http://192.168.0.33:48082' # 根据服务器或域名修改 -PUBLIC_PATH = 'http://192.168.0.33:8889/' +PUBLIC_PATH = '' # 二级部署路径 # VUE_APP_APP_NAME ='yudao-admin' diff --git a/src/assets/img/logo-back.png b/src/assets/img/logo-back.png new file mode 100644 index 0000000000000000000000000000000000000000..9fdd83383bd50baa1586dd708775e70f65323d15 GIT binary patch literal 2375 zcmV-N3Apx&P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91BA^2R1ONa40RR91E&u=k0LO|Kt#=@aZ z!ghWlQ_P{L_~@C4j21A#sh_puuP+?_UUTEr)M$YlPh%o?fLQATwS&YBIZ+bV=0GB& z2mFu@lzeyEmELVPrXGD)kVp)))hN_1p}_Bq)|v2=7}iKjg^$;Q^Rs*ad5Oe8tPu#i zXwbM-65ga5-B8q6pm1FcI4^qdz5W_m?-8IIV6`B3jF*IuRQW2_ctHrtP#|}9YVb&| z{3weMiB*W=SrRJh4pubi$|%@N9rzKxX;DwB9<$xBj3mpzb<12|OiY8-AaN(5Fa zh{1d$Tp>`ur5y6Mq&Wzfufd>{`y&8XdE9IL0A)!bmXj4G(IttH1f}j*fM4)rM)piv zDwUE#wP2T@;>WV{`qo>GLb4jQR?An&K4~M zG}e2@U@S{P>-7wpqmY*fB{p)J>`Ma_tRHf4ias)y6tcgNd-4+D#O7D{SSi3R+FtCX zTWXBKScJJI_XzNS^Ah2`ZIe|D#5FO1ZI=PUp29?X)@2OFa>fYPyhM01O6M*aO8x7p zNc_@733&3X%NV>c#w^qd5@CgFS&t8m@vmO&^}9ME~QHnrld(4=ybgyG~$lN+}b8f9PkoA#0TOTgG#+IzJNH+7?dHAl9FvJ zcy0jX=DD1JskOOVR6OlNSZ7liOS1fl#f{ycHw4%fl;rl>AU82K@D{T`?9maHvk!9l zyFx5DqH%^KklnQe!mp|F=f%+O`2UsK{o=VP*W&ykszkH<2jl*f4REJ5zvp9ZFZ;PMjT!7F5$ln{HUwEo(ySmwGV5MBvT zT|z0^jR}u{*XP|kX{`c4sF@84BmR{so;SFi!mJL!1bk8tay@k%lvot?fW7oo0|5io=cTzn3Gi3 zrTZXK5fi%c9vFtQ7kqjvUc9(eJ9}oMnpAdJX+9r)qPnLr4ke;;XsAMeX6v%-!9yFg zbLUoKLnB~ECpgECfw*m|dtA$TANw2(4T1mtb3e#*o|}uGX#AscvKICaWYu8*Jg_oT z#KJ{81tbz*$J?iuLc@Zi5Gu9lz8xAC{!?Dkob| zHRUYMoK+n}H3x#BIF>~&3tG7a6;;Q@s?{%nKVZS6@{_pY!Cxs&A5c=br@BM>DjLnA zX;wgz{>zk?Qz@$6BVuu@vvZ1?T+wWp^uy>hRV6jmfEtxrkqF49MR7Y=@^aaN1?SG1C}cgxwcUy<$YmQtEhkw}|=)8j9BnN?Z3uE<~RAUHG>}s1$%HA69{m(_cljL0{y-(--C{6)7Yb1pXlm*dmwVsU+Rs41FhJaUFU1G_ zO)al@UuxnVNDO>jRaN~V-PrgdXj)7qQ>P)GoTl!Z|D=p{bRa4NbR7lxYY(K8C$*mL zh_Wo9l7nIF?#x0}^)De(dIAC=UDBUyrJHG-T-^b;*B*!J>bJ>y{p3oFzyABEG>y7s z_4H>`Cr=!4E?kH?X315Qj$d3Iti{W{i-WJedcr9w`LhZHOnuJWH|5HepCk*G3*lP_ zfk4~EIdd#u=y!*{LvEl2#v|IQ)q6!09Dl_lS^U-KD{XgI9VdF4wo`wJb002ovPDHLkV1nzkXNdp+ literal 0 HcmV?d00001 diff --git a/src/assets/img/logo.png b/src/assets/img/logo.png index 9fdd83383bd50baa1586dd708775e70f65323d15..43aa8c93cac40f64816f2270ae8a6c09849b281a 100644 GIT binary patch literal 7513 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 diff --git a/src/views/OperationalOverview/AGVBoard.vue b/src/views/OperationalOverview/AGVBoard.vue index 5ac357bc..2138de7e 100644 --- a/src/views/OperationalOverview/AGVBoard.vue +++ b/src/views/OperationalOverview/AGVBoard.vue @@ -12,7 +12,7 @@ lineHeight: 88 + 'px', fontSize: 31 + 'px' }"> - + 许昌安彩AGV原片周转看板

单位:河南汇融科技服务有限公司

{{ times }}

diff --git a/src/views/OperationalOverview/coldBoard.vue b/src/views/OperationalOverview/coldBoard.vue index a92aad06..3a337e53 100644 --- a/src/views/OperationalOverview/coldBoard.vue +++ b/src/views/OperationalOverview/coldBoard.vue @@ -12,7 +12,7 @@ lineHeight: 88 + 'px', fontSize: 31 + 'px' }"> - + 许昌安彩冷端看板

单位:河南汇融科技服务有限公司

{{ times }}

@@ -30,7 +30,7 @@ - @@ -48,7 +48,7 @@ - @@ -84,15 +84,15 @@ --> - - - - @@ -68,9 +61,7 @@ export default { watch: { israChartMsg: { handler(newVal, oldVal) { - console.log(newVal) this.chartData = newVal - console.log('newVal============') this.updateChart() } } @@ -99,48 +90,18 @@ export default { color: '#fff', }, subtextStyle: { - fontSize: 16, + fontSize: 20, color: '#fff00', }, }, series:[{ - name: 'Access From', + name: 'ISRA缺陷检测', type: 'pie', - radius: ['45%', '65%'], + center: ['50%', '40%'], + radius: ['45%', '70%'], avoidLabelOverlap: true, label: { - show: true, - position: 'outside', - formatter: ({ dataIndex, percent }) => { - const styleName = ['a', 'b', 'c', 'd'][dataIndex % 4]; - return `{${styleName}|${percent}%}`; - }, - rich: { - a: { - color: '#2760ff', - fontSize: 24, - borderWidth: 0, - textBorderWidth: 0, - }, - b: { - color: '#518eec', - fontSize: 24, - borderWidth: 0, - textBorderWidth: 0, - }, - c: { - color: '#0ee8e4', - fontSize: 24, - borderWidth: 0, - textBorderWidth: 0, - }, - d: { - color: '#ddb523', - fontSize: 24, - borderWidth: 0, - textBorderWidth: 0, - }, - }, + show: false }, labelLine: { show: true, diff --git a/src/views/databoard/components/SelectorBtnGroup.vue b/src/views/databoard/components/SelectorBtnGroup.vue index 5df5b3a9..0fc4e90e 100644 --- a/src/views/databoard/components/SelectorBtnGroup.vue +++ b/src/views/databoard/components/SelectorBtnGroup.vue @@ -11,7 +11,7 @@ class="btn" v-for="opt in options" :key="opt" - @click="active = opt" + @click="clickBtn(opt)" :class="active == opt ? 'btn-active' : ''"> {{ opt }} @@ -22,15 +22,18 @@ export default { name: 'SelectorBtnGroup', components: {}, - props: ['options'], + props: ['options', 'active'], data() { return { - active: this.options[0] || 'default' + // active: this.options[0] || 'default' }; }, computed: {}, methods: { - + clickBtn(opt) { + // this.active = opt + this.$emit('emitFun', opt) + } }, }; diff --git a/src/views/databoard/deepProcessing/index.vue b/src/views/databoard/deepProcessing/index.vue index be0a7d28..2515dd91 100644 --- a/src/views/databoard/deepProcessing/index.vue +++ b/src/views/databoard/deepProcessing/index.vue @@ -6,10 +6,10 @@ class="deepProcessingBoard" style=" position: absolute; - transform-origin: 16px 8px; + transform-origin: left top; font-size: 16px; - top: -8px; - left: -16px; + top: 0px; + left: 0px; width: 1920px; height: 1080px; display: flex; @@ -18,6 +18,17 @@ " :style="{transform:'scale('+scaleNum+')'}"> + +
@@ -103,14 +114,14 @@ export default { }) return false } - screenfull.toggle(this.$refs.wholePlantContainerB) + screenfull.toggle(this.$refs.deepProcessingContainerB) }, resetSize() { - let wholePlantContainerBox = document.querySelector('#wholePlantContainer') + let deepProcessingContainer = document.querySelector('#deepProcessingContainer') let rw = parseFloat(window.innerWidth) let rh = parseFloat(window.innerHeight) - let bw = parseFloat(wholePlantContainerBox.style.width) - let bh = parseFloat(wholePlantContainerBox.style.height) + let bw = parseFloat(deepProcessingContainer.style.width) + let bh = parseFloat(deepProcessingContainer.style.height) let wx = 0 let hx = 0 if (screenfull.isFullscreen) { diff --git a/src/views/databoard/kiln/EnergeCost.vue b/src/views/databoard/kiln/EnergeCost.vue index 53fedfc0..c3003b2a 100644 --- a/src/views/databoard/kiln/EnergeCost.vue +++ b/src/views/databoard/kiln/EnergeCost.vue @@ -31,24 +31,24 @@ justify-content: space-between; "> - + :options="['电耗能', '天然气I', '天然气II']" @emitFun='toggleType' :active='chartType'/> +
- +
diff --git a/src/views/databoard/kiln/FanSequence.vue b/src/views/databoard/kiln/FanSequence.vue index ca8b8648..c23c6316 100644 --- a/src/views/databoard/kiln/FanSequence.vue +++ b/src/views/databoard/kiln/FanSequence.vue @@ -7,13 +7,13 @@ + \ No newline at end of file diff --git a/src/views/databoard/wholePlant/LeftTwo.vue b/src/views/databoard/wholePlant/LeftTwo.vue index 0a21c83e..f3f1a075 100644 --- a/src/views/databoard/wholePlant/LeftTwo.vue +++ b/src/views/databoard/wholePlant/LeftTwo.vue @@ -4,7 +4,7 @@ style=" display: grid; gap: 16px; - grid-template-rows: 462px 462px; + grid-template-rows: 308px 616px; "> diff --git a/src/views/databoard/wholePlant/MiddleTwo.vue b/src/views/databoard/wholePlant/MiddleTwo.vue index 9a65aeba..3c974b92 100644 --- a/src/views/databoard/wholePlant/MiddleTwo.vue +++ b/src/views/databoard/wholePlant/MiddleTwo.vue @@ -4,19 +4,19 @@ style=" display: grid; gap: 16px; - grid-template-rows: 462px 462px; + grid-template-rows: 605px 320px; "> - - + + \ No newline at end of file + + \ No newline at end of file diff --git a/src/views/databoard/wholePlant/RightTwo.vue b/src/views/databoard/wholePlant/RightTwo.vue index 0cc9ec58..0d444ac2 100644 --- a/src/views/databoard/wholePlant/RightTwo.vue +++ b/src/views/databoard/wholePlant/RightTwo.vue @@ -6,17 +6,17 @@ gap: 16px; grid-template-rows: 462px 462px; "> - + \ No newline at end of file + + \ No newline at end of file diff --git a/src/views/databoard/wholePlant/index.vue b/src/views/databoard/wholePlant/index.vue index d1941e73..dd9cdf37 100644 --- a/src/views/databoard/wholePlant/index.vue +++ b/src/views/databoard/wholePlant/index.vue @@ -8,8 +8,8 @@ position: absolute; transform-origin: 16px 8px; font-size: 16px; - top: -8px; - left: -16px; + top: 0px; + left: 0px; width: 1920px; height: 1080px; display: flex; @@ -42,7 +42,6 @@ import MiddleTwo from './MiddleTwo'; import RightTwo from './RightTwo'; import screenfull from 'screenfull' import { debounce } from '@/utils/debounce' -import { getDcsMsg, getMesMsg } from './../utils/wsInterface' export default { name: 'wholePlantBoard', @@ -77,9 +76,6 @@ export default { window.addEventListener('resize', () => { this.boxReset() }) - // closeWebsocket() - // getDcsMsg() - // getMesMsg() console.log('mounted...........') }, destroyed() { diff --git a/src/websocket/websocket.js b/src/websocket/websocket.js new file mode 100644 index 00000000..49467b81 --- /dev/null +++ b/src/websocket/websocket.js @@ -0,0 +1,176 @@ +/** + * 发起websocket请求函数 + * @param {string} url ws连接地址 + * @param {Object} agentData 传给后台的参数 + * @param {function} successCallback 接收到ws数据,对数据进行处理的回调函数 + * @param {function} errCallback ws连接错误的回调函数 + */ +export function WsConnect(url, agentData, successCallback, errCallback) { + this.wsUrl = url; + this.wsObj = null; + // 是否执行重连 true/不执行 ; false/执行 + this.lockReconnect = false; + // 重连定时器 + this.wsCreateHandler = null; + // 连接成功,执行回调函数 + this.messageCallback = successCallback; + // 连接失败,执行回调函数 + this.errorCallback = errCallback; + // 发送给后台的数据 + this.sendDatas = agentData; + // 创建ws函数 + this.createWebSoket = () => { + if (typeof WebSocket === "undefined") { + writeToScreen("您的浏览器不支持WebSocket,无法获取数据"); + return false; + } + try { + this.wsObj = new WebSocket(url); + initWsEventHandle(); + } catch (e) { + writeToScreen("连接异常,开始重连"); + reconnect(); + } + }; + // 手动关闭websocket (这里手动关闭会执行onclose事件) + this.closeWebsocket = () => { + if (this.wsObj) { + writeToScreen("手动关闭websocket"); + this.wsObj.close(); // 关闭websocket + // this.wsObj.onclose() // 关闭websocket(如果上面的关闭不生效就加上这一条) + // 关闭重连 + this.lockReconnect = true; + this.wsCreateHandler && clearTimeout(this.wsCreateHandler); + // 关闭心跳检查 + heartCheck.stop(); + } + }; + const initWsEventHandle = () => { + try { + // 连接成功 + this.wsObj.onopen = (event) => { + onWsOpen(event); + heartCheck.start(); + }; + + // 监听服务器端返回的信息 + this.wsObj.onmessage = (event) => { + onWsMessage(event); + heartCheck.start(); + }; + + this.wsObj.onclose = (event) => { + writeToScreen("onclose执行关闭事件"); + onWsClose(event); + }; + + this.wsObj.onerror = (event) => { + writeToScreen("onerror执行error事件,开始重连"); + onWsError(event); + reconnect(); + }; + } catch (err) { + writeToScreen("绑定事件没有成功,开始重连"); + reconnect(); + } + }; + + const onWsOpen = (event) => { + writeToScreen("CONNECT"); + // // 客户端与服务器端通信 + // wsObj.send('我发送消息给服务端'); + // 添加状态判断,当为OPEN时,发送消息 + if (this.wsObj.readyState === this.wsObj.OPEN) { + // wsObj.OPEN = 1 + // 发给后端的数据需要字符串化 + this.wsObj.send(JSON.stringify(this.sendDatas)); + } + if (this.wsObj.readyState === this.wsObj.CLOSED) { + // wsObj.CLOSED = 3 + writeToScreen("wsObj.readyState=3, ws连接异常,开始重连"); + reconnect(); + this.errorCallback(event); + } + }; + const onWsMessage = (event) => { + const jsonStr = event.data; + writeToScreen("onWsMessage接收到服务器的数据: ", jsonStr); + this.messageCallback(jsonStr); + }; + const onWsClose = (event) => { + writeToScreen("DISCONNECT"); + // e.code === 1000 表示正常关闭。 无论为何目的而创建, 该链接都已成功完成任务。 + // e.code !== 1000 表示非正常关闭。 + console.log("onclose event: ", event); + if (event && event.code !== 1000) { + writeToScreen("非正常关闭"); + this.errorCallback(event); + // 如果不是手动关闭,这里的重连会执行;如果调用了手动关闭函数,这里重连不会执行 + reconnect(); + } + }; + const onWsError = (event) => { + writeToScreen("onWsError: ", event.data); + this.errorCallback(event); + }; + + const writeToScreen = (massage) => { + console.log(massage); + }; + + // 重连函数 + const reconnect = () => { + if (this.lockReconnect) { + return; + } + writeToScreen("3秒后重连"); + this.lockReconnect = true; + // 没连接上会一直重连,设置延迟避免请求过多 + this.wsCreateHandler && clearTimeout(this.wsCreateHandler); + this.wsCreateHandler = setTimeout(() => { + writeToScreen("重连..." + this.wsUrl); + this.createWebSoket(); + this.lockReconnect = false; + writeToScreen("重连完成"); + }, 3000); + }; + + // 心跳检查(看看websocket是否还在正常连接中) + let heartCheck = { + timeout: 15000, + timeoutObj: null, + serverTimeoutObj: null, + // 重启 + reset() { + clearTimeout(this.timeoutObj); + clearTimeout(this.serverTimeoutObj); + this.start(); + }, + // 停止 + stop() { + clearTimeout(this.timeoutObj); + clearTimeout(this.serverTimeoutObj); + }, + // 开启定时器 + start() { + this.timeoutObj && clearTimeout(this.timeoutObj); + this.serverTimeoutObj && clearTimeout(this.serverTimeoutObj); + // 15s之内如果没有收到后台的消息,则认为是连接断开了,需要重连 + this.timeoutObj = setTimeout(() => { + writeToScreen("心跳检查,发送ping到后台"); + try { + const datas = { ping: true }; + this.wsObj.send(JSON.stringify(datas)); + } catch (err) { + writeToScreen("发送ping异常"); + } + console.log("内嵌定时器this.serverTimeoutObj: ", this.serverTimeoutObj); + // 内嵌定时器 + this.serverTimeoutObj = setTimeout(() => { + writeToScreen("没有收到后台的数据,重新连接"); + reconnect(); + }, this.timeout); + }, this.timeout); + }, + }; +} diff --git a/src/websocket/wsInterface.js b/src/websocket/wsInterface.js new file mode 100644 index 00000000..3572dc58 --- /dev/null +++ b/src/websocket/wsInterface.js @@ -0,0 +1,160 @@ +import { WsConnect } from './websocket' +import store from "@/store"; + +// 创建websocket链接 + +const timestr = new Date().getTime() +const dcsConn = new WsConnect( + // websocket地址 + 'ws://10.70.180.10:8081/xc-screen/websocket/dcsmsg'+timestr, + // 传递给后台的数据 + '', + (data) => { + // console.log('dcs成功的回调函数, 接收到的data数据: ', data) + let msgData = JSON.parse(data) + if (msgData == null) return; + switch (msgData?.type) { + case "FanFrequencyInfo": { + store.dispatch({type: "websocket/setFanFrequencyInfo", payload:msgData.data.FanFrequencyInfo}) + break; + } + case "KilnInfo": { + store.dispatch({type: "websocket/setKilnInfo", payload: msgData.data}) + break; + } + case "GasInfo": { + store.dispatch({type: "websocket/setGasInfo", payload: msgData.data}) + break; + } + case "SumGasInfo": { + store.dispatch({type: "websocket/setSumGasInfo", payload: msgData.data}) + break; + } + default: + } + }, + (err) => { + console.log('失败的回调函数', err) + } +) +const mesIsra = new WsConnect( + 'ws://10.70.2.2:8080/websocket/message?userId=KILN'+timestr, + '', + (data) => { + // console.log('mes ISRA成功的回调函数, 接收到的data数据: ', data) + let msgData = JSON.parse(data) + // console.log(msgData) + if (msgData == null) return; + switch (msgData?.type) { + case "israKiln": { + store.dispatch({type: "websocket/setIsraKiln", payload:msgData.detData.dayStatistic}) + break; + } + // case "KilnInfo": { + // // store.dispatch({type: "websocket/setKilnInfo", payload: msgData.data.kilnInfo}) + // break; + // } + default: + } + }, + (err) => { + console.log('失败的回调函数', err) + } +) + +// 原料 MA +const mesMA = new WsConnect( + 'ws://10.70.2.2:8080/websocket/message?userId=MA'+timestr, + '', + (data) => { + // console.log('mes 原料成功的回调函数, 接收到的data数据: ', data) + let msgData = JSON.parse(data) + if (msgData == null) return; + switch (msgData?.type) { + case "material": { + store.dispatch({type: "websocket/setMaterial", payload:msgData.data}) + break; + } + // case "KilnInfo": { + // // store.dispatch({type: "websocket/setKilnInfo", payload: msgData.data.kilnInfo}) + // break; + // } + default: + } + }, + (err) => { + console.log('失败的回调函数', err) + } +) +// 能耗 EN +const mesEN = new WsConnect( + // websocket地址 + 'ws://10.70.2.2:8080/websocket/message?userId=ENERGY'+timestr, + // 传递给后台的数据 + '', + // 成功拿到后台返回的数据的回调函数 + (data) => { + // console.log('mes 能耗成功的回调函数, 接收到的data数据: ', data) + let msgData = JSON.parse(data) + if (msgData == null) return; + switch (msgData?.type) { + case "EnergyInfo": { + store.dispatch({type: "websocket/setEnergyInfo", payload:msgData.data}) + break; + } + case "EnergyTrend": { + store.dispatch({type: "websocket/setEnergyTrend", payload:msgData.data}) + break; + } + default: + } + }, + // websocket连接失败的回调函数 + (err) => { + console.log('失败的回调函数', err) + } +) +// 烟气 GAS +const mesGAS = new WsConnect( + // websocket地址 + 'ws://10.70.2.2:8080/websocket/message?userId=GAS'+timestr, + // 传递给后台的数据 + '', + // 成功拿到后台返回的数据的回调函数 + (data) => { + // console.log('mes 烟气成功的回调函数, 接收到的data数据: ', data) + let msgData = JSON.parse(data) + if (msgData == null) return; + switch (msgData?.type) { + case "exhaustGas": { + store.dispatch({type: "websocket/setExhaustGasInfo", payload:msgData.realtime}) + store.dispatch({type: "websocket/setExhaustGasChart", payload:{ + dayTrend: msgData.dayTrend, + weekTrend: msgData.weekTrend, + monthTrend: msgData.monthTrend, + yearTrend: msgData.yearTrend, + }}) + break; + } + default: + } + }, + // websocket连接失败的回调函数 + (err) => { + console.log('失败的回调函数', err) + } +) +export const getDcsMsg = () => { + dcsConn.createWebSoket() + mesIsra.createWebSoket() + mesMA.createWebSoket() + mesEN.createWebSoket() + mesGAS.createWebSoket() +} +export const closeDcsMsg = () => { + dcsConn.closeWebsocket() + mesIsra.closeWebsocket() + mesMA.closeWebsocket() + mesEN.closeWebsocket() + mesGAS.closeWebsocket() +} \ No newline at end of file From 522910e4329cbffebb214a75b0e6fdb338140121 Mon Sep 17 00:00:00 2001 From: gtz <535262213@qq.com> Date: Thu, 4 Jan 2024 08:27:12 +0800 Subject: [PATCH 03/12] 'update_coldboard' --- .env.dev | 4 +- src/views/OperationalOverview/coldBoard.vue | 54 ++++++++++----------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.env.dev b/.env.dev index 44f8ea48..5d905f0a 100644 --- a/.env.dev +++ b/.env.dev @@ -16,7 +16,7 @@ VUE_APP_TITLE = MES系统 # VUE_APP_BASE_API = 'http://192.168.0.33:48082' -# VUE_APP_BASE_API = 'http://10.70.2.2:8080' +VUE_APP_BASE_API = 'http://10.70.2.2:8080' # VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' @@ -28,7 +28,7 @@ VUE_APP_TITLE = MES系统 # VUE_APP_BASE_API = 'http://192.168.1.78:48082' -VUE_APP_BASE_API = 'http://100.64.0.23:48082' +# VUE_APP_BASE_API = 'http://100.64.0.23:48082' # 积木报表指向地址 VUE_APP_JIMU_API = 'http://10.70.2.22:8080' diff --git a/src/views/OperationalOverview/coldBoard.vue b/src/views/OperationalOverview/coldBoard.vue index 3a337e53..9449653c 100644 --- a/src/views/OperationalOverview/coldBoard.vue +++ b/src/views/OperationalOverview/coldBoard.vue @@ -518,32 +518,8 @@ export default { }) } this.annealFunList = arr - this.total3 = Math.ceil(arr.length / 9) - if ( this.page3 > this.total3) { - this.page3 = 1 - } - if (!this.firstContent3) { - setInterval(pageFun3 = () => { - if (this.page3 >= this.total3) { - this.page3 = 1 - } else { - this.page3 += 1 - } - }, 30000) - this.firstContent3 = true - } - } - if (this.funWsData.type === 'FanInfo') { - let arr = [] - for (let i in this.funWsData.data.fanInfo) { - arr.push({ - equipmentName: i, - status: this.funWsData.data.fanInfo[i] - }) - } - this.funList = arr this.total4 = Math.ceil(arr.length / 9) - if ( this.page4 > this.total4) { + if ( this.page4 >= this.total4) { this.page4 = 1 } if (!this.firstContent4) { @@ -557,6 +533,30 @@ export default { this.firstContent4 = true } } + if (this.funWsData.type === 'FanInfo') { + let arr = [] + for (let i in this.funWsData.data.fanInfo) { + arr.push({ + equipmentName: i, + status: this.funWsData.data.fanInfo[i] + }) + } + this.funList = arr + this.total3 = Math.ceil(arr.length / 9) + if ( this.page3 >= this.total3) { + this.page3 = 1 + } + if (!this.firstContent3) { + setInterval(pageFun3 = () => { + if (this.page3 >= this.total3) { + this.page3 = 1 + } else { + this.page3 += 1 + } + }, 30000) + this.firstContent3 = true + } + } }, cutWebsocketOnOpen() { console.log('socket连接成功') @@ -585,7 +585,7 @@ export default { // } }); this.total1 = Math.ceil(this.cutWsData?.productHourData?.length / 9) - if ( this.page1 > this.total1) { + if ( this.page1 >= this.total1) { this.page1 = 1 } if (!this.firstContent1) { @@ -648,7 +648,7 @@ export default { }); this.total2 = Math.ceil(this.SJGWsData?.detData?.length / 9) - if ( this.page2 > this.total2) { + if ( this.page2 >= this.total2) { this.page2 = 1 } if (!this.firstContent2) { From 8b1dbbeeead54f5fa0f819f9cbe0eaff21fa79e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98937886381=E2=80=99?= <‘937886381@qq.com’> Date: Thu, 4 Jan 2024 08:33:05 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 8 +++-- src/views/OperationalOverview/coldBoard.vue | 4 +-- .../components/baseTable.vue | 6 ++-- .../OperationalOverview/processingBoard.vue | 32 +++++++++---------- 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/.env.dev b/.env.dev index 14470802..c8907060 100644 --- a/.env.dev +++ b/.env.dev @@ -1,7 +1,7 @@ ### # @Author: Do not edit # @Date: 2023-08-29 09:40:39 - # @LastEditTime: 2023-12-29 08:57:36 + # @LastEditTime: 2024-01-02 14:42:10 # @LastEditors: zhp # @Description: ### @@ -13,7 +13,8 @@ VUE_APP_TITLE = MES系统 # 芋道管理系统/开发环境 # VUE_APP_BASE_API = 'http://100.64.0.26:48082' -VUE_APP_BASE_API = 'http://10.70.2.2:8080' +# VUE_APP_BASE_API = 'http://10.70.2.2:8080' +VUE_APP_BASE_API = 'http://192.168.0.33:48082' # VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.1.49:48082' @@ -22,7 +23,8 @@ VUE_APP_BASE_API = 'http://10.70.2.2:8080' # VUE_APP_BASE_API = 'http://192.168.1.104:48082' # VUE_APP_BASE_API = 'http://192.168.1.62:48082' # VUE_APP_BASE_API = 'http://192.168.1.78:48082' - +# socket地址 +VUE_APP_Socket_API = 'ws://192.168.0.33:48082' # 积木报表指向地址 VUE_APP_JIMU_API = 'http://10.70.2.22:8080' diff --git a/src/views/OperationalOverview/coldBoard.vue b/src/views/OperationalOverview/coldBoard.vue index a92aad06..602d7319 100644 --- a/src/views/OperationalOverview/coldBoard.vue +++ b/src/views/OperationalOverview/coldBoard.vue @@ -2,7 +2,7 @@ * @Author: zwq * @Date: 2021-07-19 15:18:30 * @LastEditors: zhp - * @LastEditTime: 2023-12-29 16:41:18 + * @LastEditTime: 2024-01-02 10:07:03 * @Description: --> + \ No newline at end of file diff --git a/src/views/databoard/deepProcessing/DefectSum.vue b/src/views/databoard/deepProcessing/DefectSum.vue index fca3dbaa..1fc95112 100644 --- a/src/views/databoard/deepProcessing/DefectSum.vue +++ b/src/views/databoard/deepProcessing/DefectSum.vue @@ -1,14 +1,43 @@ \ No newline at end of file diff --git a/src/views/databoard/deepProcessing/EqAlarm.vue b/src/views/databoard/deepProcessing/EqAlarm.vue index ef7be248..6b6fc21f 100644 --- a/src/views/databoard/deepProcessing/EqAlarm.vue +++ b/src/views/databoard/deepProcessing/EqAlarm.vue @@ -1,14 +1,43 @@ \ No newline at end of file diff --git a/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue b/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue index b3fab7f4..47271bc5 100644 --- a/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue +++ b/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue @@ -1,14 +1,43 @@ \ No newline at end of file diff --git a/src/views/databoard/deepProcessing/index.vue b/src/views/databoard/deepProcessing/index.vue index f2cdefcf..48d32fd4 100644 --- a/src/views/databoard/deepProcessing/index.vue +++ b/src/views/databoard/deepProcessing/index.vue @@ -17,7 +17,7 @@ gap: 24px; " :style="{transform:'scale('+scaleNum+')'}"> - +
- -
- - - - - - + +
+
- \ No newline at end of file + \ No newline at end of file diff --git a/src/views/databoard/wholePlant/YieldRate.vue b/src/views/databoard/wholePlant/YieldRate.vue index 91421ee1..6c82ae63 100644 --- a/src/views/databoard/wholePlant/YieldRate.vue +++ b/src/views/databoard/wholePlant/YieldRate.vue @@ -1,127 +1,45 @@ \ No newline at end of file diff --git a/src/websocket/wsInterface.js b/src/websocket/wsInterface.js index a28bf552..6e2d708b 100644 --- a/src/websocket/wsInterface.js +++ b/src/websocket/wsInterface.js @@ -180,11 +180,12 @@ const mesIS = new WsConnect( } ) -// 产线产量及良品率 SJG +// 深加工生产运行驾驶舱(除能源) SJG const mesSJG = new WsConnect( // websocket地址 // 'ws://10.70.2.2:8080/websocket/message?userId=SJG'+timestr, - 'ws://192.168.1.104:48082/websocket/message?userId=SJG'+timestr, + // 'ws://192.168.0.33:48082/websocket/message?userId=SJG'+timestr, + 'ws://192.168.1.62:48082/websocket/message?userId=SJG'+timestr, // 传递给后台的数据 '', // 成功拿到后台返回的数据的回调函数 @@ -197,6 +198,10 @@ const mesSJG = new WsConnect( store.dispatch({type: "websocket/setProductline", payload:msgData.detData}) break; } + case "equipment": { + store.dispatch({type: "websocket/setSJGEq", payload:msgData.detData}) + break; + } default: } }, @@ -214,7 +219,7 @@ export const getDcsMsg = () => { mesEN.createWebSoket() mesGAS.createWebSoket() mesIS.createWebSoket() - // mesSJG.createWebSoket() + mesSJG.createWebSoket() } export const closeDcsMsg = () => { dcsConn.closeWebsocket() @@ -223,5 +228,5 @@ export const closeDcsMsg = () => { mesEN.closeWebsocket() mesGAS.closeWebsocket() mesIS.closeWebsocket() - // mesSJG.closeWebsocket() + mesSJG.closeWebsocket() } \ No newline at end of file From d619db3d897b4d6991ff14940c47b8cb08c91edb Mon Sep 17 00:00:00 2001 From: juzi <819872918@qq.com> Date: Fri, 5 Jan 2024 11:19:39 +0800 Subject: [PATCH 07/12] 1 --- .env.dev | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.env.dev b/.env.dev index a7cac807..4fa61a97 100644 --- a/.env.dev +++ b/.env.dev @@ -13,16 +13,11 @@ VUE_APP_TITLE = MES系统 # 芋道管理系统/开发环境 # VUE_APP_BASE_API = 'http://100.64.0.26:48082' -<<<<<<< HEAD VUE_APP_BASE_API = 'http://192.168.0.33:48082' # VUE_APP_BASE_API = 'http://10.70.2.2:8080' -======= -# VUE_APP_BASE_API = 'http://10.70.2.2:8080' -# VUE_APP_BASE_API = 'http://192.168.0.33:48082' ->>>>>>> projects/mesxc-test # VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.1.49:48082' From 16551a5f9d87748f38069f1c28986c98b7311455 Mon Sep 17 00:00:00 2001 From: helloDy <1615073571@qq.com> Date: Mon, 8 Jan 2024 16:22:53 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E5=8F=82=E6=95=B0=20=E4=BA=A7=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 5 ++-- src/views/base/coreProduct/add-or-updata.vue | 3 ++- .../monitoring/equipmentFullParams/index.vue | 25 ++++++++++--------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.env.dev b/.env.dev index 40a1806e..6a6611c2 100644 --- a/.env.dev +++ b/.env.dev @@ -1,8 +1,8 @@ ### # @Author: Do not edit # @Date: 2023-08-29 09:40:39 - # @LastEditTime: 2023-12-18 13:35:00 - # @LastEditors: zhp + # @LastEditTime: 2024-01-08 16:05:09 + # @LastEditors: DY # @Description: ### # 开发环境配置 @@ -14,6 +14,7 @@ VUE_APP_TITLE = MES系统 # 芋道管理系统/开发环境 # VUE_APP_BASE_API = 'http://100.64.0.26:48082' VUE_APP_BASE_API = 'http://192.168.0.33:48082' +# VUE_APP_BASE_API = 'http://192.168.1.101:8080' # VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.1.49:48082' diff --git a/src/views/base/coreProduct/add-or-updata.vue b/src/views/base/coreProduct/add-or-updata.vue index 8c855299..0b2923e3 100644 --- a/src/views/base/coreProduct/add-or-updata.vue +++ b/src/views/base/coreProduct/add-or-updata.vue @@ -2,7 +2,7 @@ * @Author: zwq * @Date: 2021-11-18 14:16:25 * @LastEditors: DY - * @LastEditTime: 2023-12-06 10:36:56 + * @LastEditTime: 2024-01-08 16:11:03 * @Description: --> \ No newline at end of file diff --git a/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue b/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue index 47271bc5..fe2c1d11 100644 --- a/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue +++ b/src/views/databoard/deepProcessing/WorkOrderMonitoring.vue @@ -2,17 +2,21 @@
- +
\ No newline at end of file diff --git a/src/views/databoard/kiln/EnergeCost.vue b/src/views/databoard/kiln/EnergeCost.vue index b152d828..719c962c 100644 --- a/src/views/databoard/kiln/EnergeCost.vue +++ b/src/views/databoard/kiln/EnergeCost.vue @@ -45,7 +45,7 @@ import Container from '../components/Container'; import ShadowRect from '../components/ShadowRect.vue'; import SplitLine from '../components/line'; -import Switcher from '../components/Switcher'; +// import Switcher from '../components/Switcher'; import EnergeTop from './EnergeTop'; import GasChart from '../components/GasChart.vue'; import SelectorBtnGroup from '../components/SelectorBtnGroup'; @@ -55,7 +55,6 @@ export default { Container, ShadowRect, SplitLine, - Switcher, EnergeTop, GasChart, SelectorBtnGroup, diff --git a/src/views/databoard/kiln/FanSequence.vue b/src/views/databoard/kiln/FanSequence.vue index c23c6316..2af2b190 100644 --- a/src/views/databoard/kiln/FanSequence.vue +++ b/src/views/databoard/kiln/FanSequence.vue @@ -42,10 +42,10 @@ \ No newline at end of file diff --git a/src/views/databoard/wholePlant/YieldRate.vue b/src/views/databoard/wholePlant/YieldRate.vue index 6c82ae63..a4a4d2bb 100644 --- a/src/views/databoard/wholePlant/YieldRate.vue +++ b/src/views/databoard/wholePlant/YieldRate.vue @@ -1,20 +1,53 @@ - \ No newline at end of file diff --git a/src/websocket/wsInterface.js b/src/websocket/wsInterface.js index 6e2d708b..355c39ae 100644 --- a/src/websocket/wsInterface.js +++ b/src/websocket/wsInterface.js @@ -6,7 +6,7 @@ import store from "@/store"; const timestr = new Date().getTime() const dcsConn = new WsConnect( // websocket地址 - 'ws://10.70.180.10:8081/xc-screen/websocket/dcsmsg'+timestr, + process.env.VUE_APP_Socket_Dcs_API + '/xc-screen/websocket/dcsmsg'+timestr, // 传递给后台的数据 '', (data) => { @@ -39,7 +39,7 @@ const dcsConn = new WsConnect( ) // ISRA const mesIsra = new WsConnect( - 'ws://10.70.2.2:8080/websocket/message?userId=KILN'+timestr, + process.env.VUE_APP_Socket_API + '/websocket/message?userId=KILN'+timestr, '', (data) => { // console.log('mes ISRA成功的回调函数, 接收到的data数据: ', data) @@ -51,10 +51,6 @@ const mesIsra = new WsConnect( store.dispatch({type: "websocket/setIsraKiln", payload:msgData.detData.dayStatistic}) break; } - // case "KilnInfo": { - // // store.dispatch({type: "websocket/setKilnInfo", payload: msgData.data.kilnInfo}) - // break; - // } default: } }, @@ -65,7 +61,7 @@ const mesIsra = new WsConnect( // 原料 MA const mesMA = new WsConnect( - 'ws://10.70.2.2:8080/websocket/message?userId=MA'+timestr, + process.env.VUE_APP_Socket_API + '/websocket/message?userId=MA'+timestr, '', (data) => { // console.log('mes 原料成功的回调函数, 接收到的data数据: ', data) @@ -76,10 +72,6 @@ const mesMA = new WsConnect( store.dispatch({type: "websocket/setMaterial", payload:msgData.data}) break; } - // case "KilnInfo": { - // // store.dispatch({type: "websocket/setKilnInfo", payload: msgData.data.kilnInfo}) - // break; - // } default: } }, @@ -90,7 +82,7 @@ const mesMA = new WsConnect( // 能耗 EN const mesEN = new WsConnect( // websocket地址 - 'ws://10.70.2.2:8080/websocket/message?userId=ENERGY'+timestr, + process.env.VUE_APP_Socket_API + '/websocket/message?userId=ENERGY'+timestr, // 传递给后台的数据 '', // 成功拿到后台返回的数据的回调函数 @@ -122,7 +114,7 @@ const mesEN = new WsConnect( // 烟气 GAS const mesGAS = new WsConnect( // websocket地址 - 'ws://10.70.2.2:8080/websocket/message?userId=GAS'+timestr, + process.env.VUE_APP_Socket_API + '/websocket/message?userId=GAS'+timestr, // 传递给后台的数据 '', // 成功拿到后台返回的数据的回调函数 @@ -153,7 +145,7 @@ const mesGAS = new WsConnect( // 缺陷分类/统计 IS const mesIS = new WsConnect( // websocket地址 - 'ws://10.70.2.2:8080/websocket/message?userId=IS'+timestr, + process.env.VUE_APP_Socket_API + '/websocket/message?userId=IS'+timestr, // 传递给后台的数据 '', // 成功拿到后台返回的数据的回调函数 @@ -164,6 +156,7 @@ const mesIS = new WsConnect( switch (msgData?.type) { case "isra": { store.dispatch({type: "websocket/setDefectChart", payload:{ + checkType: msgData.detData.checkType, dayStatistic: msgData.detData.dayStatistic, weekStatistic: msgData.detData.weekStatistic, monthStatistic: msgData.detData.monthStatistic, @@ -183,9 +176,7 @@ const mesIS = new WsConnect( // 深加工生产运行驾驶舱(除能源) SJG const mesSJG = new WsConnect( // websocket地址 - // 'ws://10.70.2.2:8080/websocket/message?userId=SJG'+timestr, - // 'ws://192.168.0.33:48082/websocket/message?userId=SJG'+timestr, - 'ws://192.168.1.62:48082/websocket/message?userId=SJG'+timestr, + process.env.VUE_APP_Socket_API + '/websocket/message?userId=SJG'+timestr, // 传递给后台的数据 '', // 成功拿到后台返回的数据的回调函数 @@ -202,6 +193,14 @@ const mesSJG = new WsConnect( store.dispatch({type: "websocket/setSJGEq", payload:msgData.detData}) break; } + case "order": { + store.dispatch({type: "websocket/setWorkOrder", payload:msgData.detData}) + break; + } + case "defectSum": { + store.dispatch({type: "websocket/setDefectSum", payload:msgData.detData}) + break; + } default: } }, @@ -211,6 +210,76 @@ const mesSJG = new WsConnect( } ) +// 订单完成情况 OV +const mesOV = new WsConnect( + // websocket地址 + process.env.VUE_APP_Socket_API + '/websocket/message?userId=OV'+timestr, + // 'ws://192.168.0.33:48082/websocket/message?userId=OV'+timestr, + // 传递给后台的数据 + '', + // 成功拿到后台返回的数据的回调函数 + (data) => { + // console.log('mes 产线产量及良品率成功的回调函数, 接收到的data数据: ', data) + let msgData = JSON.parse(data) + if (msgData == null) return; + switch (msgData?.type) { + case "order": { + store.dispatch({type: "websocket/setOrder", payload:msgData.detData}) + break; + } + default: + } + }, + // websocket连接失败的回调函数 + (err) => { + console.log('失败的回调函数', err) + } +) + +// 本日生产良品率 CUTTING +const mesCUTTING = new WsConnect( + // websocket地址 + process.env.VUE_APP_Socket_API + '/websocket/message?userId=CUTTING'+timestr, + // 传递给后台的数据 + '', + // 成功拿到后台返回的数据的回调函数 + (data) => { + // console.log('mes 产线产量及良品率成功的回调函数, 接收到的data数据: ', data) + let msgData = JSON.parse(data) + if (msgData == null) return; + console.log(msgData) + switch (msgData?.type) { + case "cutting": { + if (msgData?.name === 'table') { + store.dispatch({type: "websocket/setYieldRateTable", payload:msgData.data}) + return + } + if (msgData?.dateType === 'day') { + store.dispatch({type: "websocket/setCutChartDay", payload:msgData.detData}) + return + } + if (msgData?.dateType === 'weekly') { + store.dispatch({type: "websocket/setCutChartWeek", payload:msgData.detData}) + return + } + if (msgData?.dateType === 'month') { + store.dispatch({type: "websocket/setCutChartMonth", payload:msgData.detData}) + return + } + if (msgData?.dateType === 'year') { + store.dispatch({type: "websocket/setCutChartYear", payload:msgData.detData}) + return + } + break; + } + default: + } + }, + // websocket连接失败的回调函数 + (err) => { + console.log('失败的回调函数', err) + } +) export const getDcsMsg = () => { dcsConn.createWebSoket() @@ -220,6 +289,8 @@ export const getDcsMsg = () => { mesGAS.createWebSoket() mesIS.createWebSoket() mesSJG.createWebSoket() + mesOV.createWebSoket() + mesCUTTING.createWebSoket() } export const closeDcsMsg = () => { dcsConn.closeWebsocket() @@ -229,4 +300,6 @@ export const closeDcsMsg = () => { mesGAS.closeWebsocket() mesIS.closeWebsocket() mesSJG.closeWebsocket() + mesOV.closeWebsocket() + mesCUTTING.closeWebsocket() } \ No newline at end of file From f066180c264ccb92a11d0ce7ea6835c43f9ad0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98937886381=E2=80=99?= <‘937886381@qq.com’> Date: Tue, 9 Jan 2024 16:25:12 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 8 ++-- src/assets/img/high.png | Bin 0 -> 55080 bytes src/assets/img/middle.png | Bin 0 -> 49764 bytes src/assets/img/short.png | Bin 0 -> 41848 bytes src/views/OperationalOverview/AGVBoard.vue | 26 ++++++----- src/views/OperationalOverview/coldBoard.vue | 39 +++++++++------- .../components/baseContainer/index.vue | 33 ++++++++++--- .../components/baseTable.vue | 12 ++--- .../components/colorDiv.vue | 44 ++++++++++++++++++ .../components/doubleYChart .vue | 42 +++++++++++------ .../components/linearBarChart.vue | 1 + .../OperationalOverview/processingBoard.vue | 16 +++---- .../base/qualityHotMaterial/add-or-updata.vue | 17 +++++-- 13 files changed, 165 insertions(+), 73 deletions(-) create mode 100644 src/assets/img/high.png create mode 100644 src/assets/img/middle.png create mode 100644 src/assets/img/short.png create mode 100644 src/views/OperationalOverview/components/colorDiv.vue diff --git a/.env.dev b/.env.dev index 3f0716ec..f6e7946f 100644 --- a/.env.dev +++ b/.env.dev @@ -1,7 +1,7 @@ ### # @Author: Do not edit # @Date: 2023-08-29 09:40:39 - # @LastEditTime: 2024-01-04 15:50:26 + # @LastEditTime: 2024-01-05 14:10:41 # @LastEditors: zhp # @Description: ### @@ -14,7 +14,7 @@ VUE_APP_TITLE = MES系统 # 芋道管理系统/开发环境 # VUE_APP_BASE_API = 'http://100.64.0.26:48082' # VUE_APP_BASE_API = 'http://10.70.2.2:8080' -# VUE_APP_BASE_API = 'http://192.168.0.33:48082' +VUE_APP_BASE_API = 'http://192.168.0.33:48082' # VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.1.49:48082' @@ -22,9 +22,9 @@ VUE_APP_TITLE = MES系统 # VUE_APP_BASE_API = 'http://192.168.4.159:48080' # VUE_APP_BASE_API = 'http://192.168.1.104:48082' # VUE_APP_BASE_API = 'http://192.168.1.62:48082' -VUE_APP_BASE_API = 'http://192.168.1.78:48082' +# VUE_APP_BASE_API = 'http://192.168.1.78:48082' # socket地址 -VUE_APP_Socket_API = 'ws://192.168.0.33:48082' +VUE_APP_Socket_API = 'ws://192.168.0.30:8888' # VUE_APP_BASE_API = 'http://100.64.0.23:48082' diff --git a/src/assets/img/high.png b/src/assets/img/high.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a50f3ca2730a6474e6377a2d9944fa5b9a6d5f GIT binary patch literal 55080 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%0A*=hr21m`I0 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 gk!rKd-$i?q7T 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¨dClkr7{Sj9|HUgakA^KZ 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 z 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 literal 0 HcmV?d00001 diff --git a/src/views/OperationalOverview/AGVBoard.vue b/src/views/OperationalOverview/AGVBoard.vue index 2138de7e..2711839c 100644 --- a/src/views/OperationalOverview/AGVBoard.vue +++ b/src/views/OperationalOverview/AGVBoard.vue @@ -2,7 +2,7 @@ * @Author: zwq * @Date: 2021-07-19 15:18:30 * @LastEditors: zhp - * @LastEditTime: 2023-11-23 11:14:30 + * @LastEditTime: 2024-01-08 16:07:58 * @Description: -->