diff --git a/public/bg.jpg b/public/bg.jpg new file mode 100644 index 0000000..fd3ef4c Binary files /dev/null and b/public/bg.jpg differ diff --git a/src/api/board/getData.js b/src/api/board/getData.js index 100af82..4d023dc 100644 --- a/src/api/board/getData.js +++ b/src/api/board/getData.js @@ -13,12 +13,14 @@ export function generalInterfaceList(query) { return request({ url: '/boardReport/generalInterfaceList', method: 'post', + isMsg:true, data: query }) } export function getSimulateData(query) { return request({ + isMsg:true, url: '/base/customData/list', method: 'get', params: {customType: 1, ...query} @@ -28,6 +30,7 @@ export function getSimulateData(query) { export function getFoamingData(query) { return request({ + isMsg:true, url: '/boardReport/boxFoamingProductionInterface', method: 'post', data: query @@ -36,6 +39,7 @@ export function getFoamingData(query) { export function getCurrentTeamTimeList(query) { return request({ + isMsg:true, url: '/boardReport/getCurrentTeamTimeList', method: 'post', data: query diff --git a/src/utils/request.js b/src/utils/request.js index ffb0d21..dbbd3fc 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -56,7 +56,7 @@ service.interceptors.request.use(config => { const s_data = sessionObj.data; // 请求数据 const s_time = sessionObj.time; // 请求时间 const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交 - if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { + if (config?.isMsg !== true && s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { const message = '数据正在处理,请勿重复提交'; console.warn(`[${s_url}]: ` + message) return Promise.reject(new Error(message)) diff --git a/src/views/board/scanDown/index.vue b/src/views/board/scanDown/index.vue index 237570a..e3da89f 100644 --- a/src/views/board/scanDown/index.vue +++ b/src/views/board/scanDown/index.vue @@ -14,7 +14,7 @@ }}  差异:{{ finishedProductOutput.mb - finishedProductOutput.sj }}; 达成率:{{ ((finishedProductOutput.sj / finishedProductOutput.mb) * 100).toFixed(2) }}% - 目标:{{ finalInspection.mb }}%    实际:{{ + 目标:{{ finalInspection.mb }}    实际:{{ finalInspection.sj }}%    累计不良数:{{ finalInspection.bls }} 合计:{{ zhddhj }} @@ -179,9 +179,20 @@ export default { e: 'cp-1-01', i: "scada_cp_cp_cl_01('CX_01')", f: (e) => { + let nowHour = new Date().getHours() + let jdmb = 0 + if (nowHour >= 8 && nowHour < 20) { + jdmb = e.map(v => v.Y_VALUE_TWO).splice(0, (nowHour - 8 + 1)).reduce((v1, v2) => v1 + v2, 0) + } + if (nowHour >= 20) { + jdmb = e.map(v => v.Y_VALUE_TWO).splice(0, (nowHour - 20 + 1)).reduce((v1, v2) => v1 + v2, 0) + } + if (nowHour < 8) { + jdmb = e.map(v => v.Y_VALUE_TWO).splice(0, (nowHour + 4 + 1)).reduce((v1, v2) => v1 + v2, 0) + } this.finishedProductOutput = { mb: e.reduce((v1, v2) => v1 + v2.Y_VALUE_TWO, 0), - jdmb: 1, + jdmb: jdmb, sj: e.reduce((v1, v2) => v1 + v2.Y_VALUE_ONE, 0), } this.$refs.chart1.setData({ @@ -342,6 +353,17 @@ export default { }) } }, + { + e: 'cp-1-02', + i: "scada_cp_zj_02('CX_01')", + f: (e) => { + this.finalInspection = { + mb: e?.[0]?.COLUMN_A || '', + sj: e?.[0]?.COLUMN_C || '', + bls: e?.[0]?.COLUMN_B || '', + } + } + }, { e: 'cp-1-03', i: "scada_cp_zj_01('CX_01')", @@ -578,7 +600,7 @@ export default { i: "scada_cp_rk_order_01('CX_01')", f: (e) => { this.scrollTableData = e - this.zhddhj = e.reduce((v1, v2) => v1 + v2.COLUMN_D, 0) + this.zhddhj = e.reduce((v1, v2) => v1 + parseFloat(v2.COLUMN_D), 0) } }, ], @@ -587,9 +609,20 @@ export default { e: 'cp-2-01', i: "scada_cp_cp_cl_01('CX_02')", f: (e) => { + let nowHour = new Date().getHours() + let jdmb = 0 + if (nowHour >= 8 && nowHour < 20) { + jdmb = e.map(v => v.Y_VALUE_TWO).splice(0, (nowHour - 8 + 1)).reduce((v1, v2) => v1 + v2, 0) + } + if (nowHour >= 20) { + jdmb = e.map(v => v.Y_VALUE_TWO).splice(0, (nowHour - 20 + 1)).reduce((v1, v2) => v1 + v2, 0) + } + if (nowHour < 8) { + jdmb = e.map(v => v.Y_VALUE_TWO).splice(0, (nowHour + 4 + 1)).reduce((v1, v2) => v1 + v2, 0) + } this.finishedProductOutput = { mb: e.reduce((v1, v2) => v1 + v2.Y_VALUE_TWO, 0), - jdmb: 1, + jdmb: jdmb, sj: e.reduce((v1, v2) => v1 + v2.Y_VALUE_ONE, 0), } this.$refs.chart1.setData({ @@ -750,6 +783,17 @@ export default { }) } }, + { + e: 'cp-2-02', + i: "scada_cp_zj_02('CX_02')", + f: (e) => { + this.finalInspection = { + mb: e?.[0]?.COLUMN_A || '', + sj: e?.[0]?.COLUMN_C || '', + bls: e?.[0]?.COLUMN_B || '', + } + } + }, { e: 'cp-2-03', i: "scada_cp_zj_01('CX_02')", @@ -986,7 +1030,7 @@ export default { i: "scada_cp_rk_order_01('CX_02')", f: (e) => { this.scrollTableData = e - this.zhddhj = e.reduce((v1, v2) => v1 + v2.COLUMN_D, 0) + this.zhddhj = e.reduce((v1, v2) => v1 + parseFloat(v2.COLUMN_D), 0) } }, ] diff --git a/src/views/index_v1.vue b/src/views/index_v1.vue index 63d7e90..99a3244 100644 --- a/src/views/index_v1.vue +++ b/src/views/index_v1.vue @@ -126,6 +126,9 @@ export default { mounted() { getData({}).then(e => { let data = e.data + let xData1 = [...new Set(data.columnarList.map(val => val.BEGIN_DATE))] + let xData2 = [...new Set(data.lineList.map(val => val.BEGIN_DATE))] + console.log(data) this.topData = { value1: data.planOrderSum, value2: data.prodOrderSum, @@ -146,8 +149,7 @@ export default { left: '0%', }, xAxis: { - data: data.columnarList.map(val => val.BEGIN_DATE), - // boundaryGap: false, + data: xData1, axisTick: { show: false } @@ -183,7 +185,7 @@ export default { ], series: [ { - name: '订单履约率', + name: '一线订单履约率', type: 'line', yAxisIndex: 1, itemStyle: { @@ -210,12 +212,48 @@ export default { }, }, }, - data: data.columnarList.map(val => val.RATE), + data: xData1.map(v => { + return (data.columnarList.find(val => val.BEGIN_DATE === v && val.PRODUCT_LINE_CODE === "CX_01"))?.RATE || 0 + }), + animationDuration: 1000, + animationEasing: 'quadraticOut' + }, + { + name: '二线订单履约率', + type: 'line', + yAxisIndex: 1, + itemStyle: { + normal: { + color: '#3888fa', + lineStyle: { + color: '#3888fa', + width: 2 + }, + // areaStyle: { + // color: '#f3f8ff' + // } + } + }, + label: { + normal: { + show: true, + position: "top", + textStyle: { + color: "#a8aab0", + fontStyle: "normal", + fontFamily: "微软雅黑", + fontSize: 0.75 * vw, + }, + }, + }, + data: xData1.map(v => { + return (data.columnarList.find(val => val.BEGIN_DATE === v && val.PRODUCT_LINE_CODE === "CX_02"))?.RATE || 0 + }), animationDuration: 1000, animationEasing: 'quadraticOut' }, { - name: '产量', + name: '一线产量', smooth: false, type: 'bar', barMaxWidth: 60, @@ -243,7 +281,44 @@ export default { } } }, - data: data.columnarList.map(val => val.COMPLETE_AMOUNT), + data: xData1.map(v => { + return (data.columnarList.find(val => val.BEGIN_DATE === v && val.PRODUCT_LINE_CODE === "CX_01"))?.COMPLETE_AMOUNT || 0 + }), + animationDuration: 1000, + animationEasing: 'quadraticOut' + }, + { + name: '二线产量', + smooth: false, + type: 'bar', + barMaxWidth: 60, + label: { + normal: { + show: true, + position: "top", + textStyle: { + color: "#a8aab0", + fontStyle: "normal", + fontFamily: "微软雅黑", + fontSize: 0.75 * vw, + }, + }, + }, + itemStyle: { + normal: { + color: '#9fe080', + lineStyle: { + color: '#9fe080', + width: 2 + }, + areaStyle: { + color: '#f3f8ff' + } + } + }, + data: xData1.map(v => { + return (data.columnarList.find(val => val.BEGIN_DATE === v && val.PRODUCT_LINE_CODE === "CX_02"))?.COMPLETE_AMOUNT || 0 + }), animationDuration: 1000, animationEasing: 'quadraticOut' } @@ -261,7 +336,7 @@ export default { left: '0%', }, xAxis: { - data: data.lineList.map(val => val.BEGIN_DATE), + data: xData2, boundaryGap: false, axisTick: { show: false @@ -291,9 +366,8 @@ export default { }, legend: {}, series: [ - { - name: '清单率', + name: '一线清单率', smooth: false, type: 'line', itemStyle: { @@ -308,10 +382,35 @@ export default { } } }, - data: data.lineList.map(val => val.COMPLETE_AMOUNT), + data: xData1.map(v => { + return (data.lineList.find(val => val.BEGIN_DATE === v && val.PRODUCT_LINE_CODE === "CX_01"))?.COMPLETE_AMOUNT || 0 + }), animationDuration: 2800, animationEasing: 'quadraticOut' - }] + }, + { + name: '二线清单率', + smooth: false, + type: 'line', + itemStyle: { + normal: { + color: '#3888fa', + lineStyle: { + color: '#3888fa', + width: 2 + }, + areaStyle: { + color: '#f3f8ff' + } + } + }, + data: xData1.map(v => { + return (data.lineList.find(val => val.BEGIN_DATE === v && val.PRODUCT_LINE_CODE === "CX_02"))?.COMPLETE_AMOUNT || 0 + }), + animationDuration: 2800, + animationEasing: 'quadraticOut' + } + ] } this.pieChartData = { title: { @@ -326,7 +425,7 @@ export default { }, tooltip: { trigger: 'item', - formatter: '{a}
{b} : {c} ({d}%)' + formatter: '缺陷种类:{b} : {c} ({d}%)' }, legend: { left: 'center', @@ -406,6 +505,6 @@ export default { } /deep/ .blackHover:hover { - color: #000!important; + color: #000 !important; } diff --git a/src/views/model/model.vue b/src/views/model/model.vue index 6a37df3..c06f62b 100644 --- a/src/views/model/model.vue +++ b/src/views/model/model.vue @@ -609,7 +609,7 @@ export default { // appsecret: 'rXmhoLAiOPNKzbl7g2qxCV8tFwRdYuZM' // } const viewer = new AMRT.Viewer('container', {offline: true}) - viewer.sceneManager.setBackground('http://10.100.72.10:8900/docs/img/bg.jpg') + viewer.sceneManager.setBackground('http://10.100.72.10:8900/bg.jpg') viewer.controls.setTarget(285.6140415831262, -66.96447327588656, -15.909577343207037) viewer.controls.setPosition(289.21362270826876, 1559.17755547545135, 1298.62483706445185) let modelArr = [ diff --git a/vue.config.js b/vue.config.js index 3f4509c..56f82f6 100644 --- a/vue.config.js +++ b/vue.config.js @@ -37,7 +37,7 @@ module.exports = { [process.env.VUE_APP_BASE_API]: { // target: `http://10.11.43.2:8080`, target: `http://10.100.72.10:8080`, - // target: `http://localhost:8080`, + // target: `http://192.168.1.118:6061`, // target: `http://localhost:6061`, changeOrigin: true, pathRewrite: {