projects/mesxc-zhp #323

Merged
juzi merged 3 commits from projects/mesxc-zhp into projects/mesxc-test 2024-04-10 16:26:37 +08:00
9 changed files with 137 additions and 52 deletions

View File

@ -1,8 +1,8 @@
### ###
# @Author: Do not edit # @Author: Do not edit
# @Date: 2023-08-29 09:40:39 # @Date: 2023-08-29 09:40:39
# @LastEditTime: 2024-04-08 16:46:49 # @LastEditTime: 2024-04-10 08:26:13
# @LastEditors: DY # @LastEditors: zhp
# @Description: # @Description:
### ###
# 开发环境配置 # 开发环境配置
@ -24,6 +24,7 @@ VUE_APP_BASE_API = 'http://192.168.0.33:48082'
# VUE_APP_BASE_API = 'http://192.168.1.62: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'
# VUE_APP_BASE_API = 'http://192.168.1.47:48082' # VUE_APP_BASE_API = 'http://192.168.1.47:48082'
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
# socket地址 # socket地址
# VUE_APP_Socket_API = 'ws://10.70.2.2:8080' # VUE_APP_Socket_API = 'ws://10.70.2.2:8080'
# VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081' # VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081'

View File

@ -2,7 +2,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:38:12 * @Date: 2023-11-06 15:38:12
* @LastEditTime: 2023-12-15 15:29:16 * @LastEditTime: 2024-04-09 15:14:40
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */

View File

@ -1,7 +1,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-11-07 15:02:37 * @Date: 2023-11-07 15:02:37
* @LastEditTime: 2023-11-07 18:32:07 * @LastEditTime: 2024-04-09 15:14:42
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */

View File

@ -1,7 +1,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-11-07 14:10:18 * @Date: 2023-11-07 14:10:18
* @LastEditTime: 2023-11-16 17:49:52 * @LastEditTime: 2024-04-09 09:17:02
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -18,14 +18,14 @@ export function getStatisticalDataPage(query) {
export function getWorkOrderList(query) { export function getWorkOrderList(query) {
return request({ return request({
url: '/base/core-work-order/listbyfilter', url: 'base/quality-inspection-record/listbyfilter',
method: 'get', method: 'get',
params: query, params: query,
}) })
} }
export function getProductList(query) { export function getProductList(query) {
return request({ return request({
url: '/base/core-product/listAll', url: 'base/statistical-data/listAll',
method: 'get', method: 'get',
params: query, params: query,
}) })

View File

@ -2,7 +2,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-09-21 09:06:28 * @Date: 2023-09-21 09:06:28
* @LastEditTime: 2024-04-03 16:28:40 * @LastEditTime: 2024-04-09 15:24:39
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -225,6 +225,9 @@ export default {
scale: true, scale: true,
type: 'value', type: 'value',
name: '良品率/%', name: '良品率/%',
max: 100,//
min: 0,//
interval: 20,//
nameTextStyle: {// y nameTextStyle: {// y
color: 'rgba(255,255,255,0.5)', // color: 'rgba(255,255,255,0.5)', //
align: "left", align: "left",

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-09-21 09:06:28 * @Date: 2023-09-21 09:06:28
* @LastEditTime: 2024-04-03 17:09:12 * @LastEditTime: 2024-04-09 15:24:28
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -224,6 +224,9 @@ export default {
scale: true, scale: true,
type: 'value', type: 'value',
name: '良品率/%', name: '良品率/%',
max: 100,//
min: 0,//
interval: 20,//
nameTextStyle: {// y nameTextStyle: {// y
color: 'rgba(255,255,255,0.5)', // color: 'rgba(255,255,255,0.5)', //
align: "left", align: "left",

View File

@ -2,16 +2,16 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-07-19 15:18:30 * @Date: 2021-07-19 15:18:30
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2024-04-03 17:14:03 * @LastEditTime: 2024-04-10 16:10:11
* @Description: * @Description:
--> -->
<template> <template>
<div id="container" ref="container" class="visual-container" :style="styles"> <div id="container" ref="container" class="visual-container" :style="styles">
<el-row class="container-title" :style="{ <el-row class="container-title" :style="{
height: 88 + 'px', height: 88 + 'px',
lineHeight: 88 + 'px', lineHeight: 88 + 'px',
fontSize: 31 + 'px', fontSize: 31 + 'px',
}"> }">
<img src="../../assets/img/logo.png" style="width: 1.1em; position: relative; top: 0.22em" alt="" /> <img src="../../assets/img/logo.png" style="width: 1.1em; position: relative; top: 0.22em" alt="" />
许昌安彩深加工看板 许昌安彩深加工看板
<h3 class="unit">单位河南汇融数字科技有限公司</h3> <h3 class="unit">单位河南汇融数字科技有限公司</h3>
@ -39,10 +39,23 @@
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%"> <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
<base-container :height="318" :size="'small'" :title="'工单监控'" :title-icon="'eqMonitoring'"> <base-container :height="318" :size="'small'" :title="'工单监控'" :title-icon="'eqMonitoring'">
<div class="order" style="width: 100%; overflow: hidden scroll; height: 350px"> <div class="order" style="width: 100%; overflow: hidden scroll; height: 350px">
<el-row v-for="op in orderList" :key="op.id" style="margin-bottom: .5em"> <el-row v-for="op in orderList" :key="op.id" style="margin-bottom: .5em;overflow: hidden;">
<!-- <el-col :span="12"> --> <!-- <el-col :span="12"> -->
<!-- <div style="height: 34px;"> -->
<p class="now-secondary-title" style="font-size: 14px;opacity: calc(.6);">{{ op.name }}</p> <span class="now-secondary-title" style="font-size: 14px;opacity: calc(.6);">{{ op.name }}</span>
<el-divider class="split" v-if="op.specifications" direction="vertical"></el-divider>
<!-- <span v-if="op.size" class="split"></span> -->
<span v-if="op.specifications" class="orderSize" style="font-size: 14px;opacity: calc(.6);">{{
op.specifications }}</span>
<el-divider class="split" v-if="op.planQuantity" direction="vertical"></el-divider>
<span v-if="op.planQuantity" class="orderPlan" style="font-size: 14px;opacity: calc(.6);">{{
op.planQuantity }}</span>
<span v-if="op.actualQuantity" class="orderFinish"
style="font-size: 14px;opacity: calc(.6);margin-left: 130px;">{{
op.actualQuantity
}}</span>
<el-divider class="split" v-if="op.actualQuantity" direction="vertical"></el-divider>
<!-- </div> -->
<el-progress style="width: 620px;" text-color="rgba(255, 255, 255, .6)" :stroke-width="10" <el-progress style="width: 620px;" text-color="rgba(255, 255, 255, .6)" :stroke-width="10"
define-back-color="rgba(32, 57, 96, 1)" :percentage="op.progressRate" class="custom-progress-bar" /> define-back-color="rgba(32, 57, 96, 1)" :percentage="op.progressRate" class="custom-progress-bar" />
</el-row> </el-row>
@ -67,7 +80,7 @@
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12"> <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
<base-container :show-time="true" :no-content-padding="true" :height="318 + 338 + 16" :size="'eqStatus'" <base-container :show-time="true" :no-content-padding="true" :height="318 + 338 + 16" :size="'eqStatus'"
:title="'产线产量及良品率'" :title-icon="'productLine'"> :title="'产线产量及良品率'" :title-icon="'productLine'">
<div class="myLegend"> <div class="myLegend">
<div class=" barCircleLegend"></div> <div class=" barCircleLegend"></div>
<div class=" barCircle"></div> <div class=" barCircle"></div>
<h4 class="barText">产线良品率</h4> <h4 class="barText">产线良品率</h4>
@ -364,42 +377,66 @@ export default {
{ {
id: '1', id: '1',
name: '测试工单', name: '测试工单',
progressRate: 0.933333, progressRate: 0.933333,
specifications: '1100*5554*22',
plan: 11111,
finish:111,
}, },
{ {
id: '2', id: '2',
name: '测试工单2', name: '测试工单2',
progressRate: 0.932323, progressRate: 0.932323,
size: '1100*5554*22',
plan: 11111,
finish: 111,
}, },
{ {
id: '3', id: '3',
name: '测试工单3', name: '测试工单3',
progressRate: 0.23232, progressRate: 0.23232,
size: '1100*5554*22',
plan: 11111,
finish: 111,
}, },
{ {
id: '4', id: '4',
name: '测试工单4', name: '测试工单4',
progressRate: 0.32323, progressRate: 0.32323,
size: '1100*5554*22',
plan: 11111,
finish: 111,
}, },
{ {
id: '4', id: '5',
name: '测试工单4', name: '测试工单4',
progressRate: 0.32323, progressRate: 0.32323,
size: '1100*5554*22',
plan: 11111,
finish: 111,
}, },
{ {
id: '4', id: '6',
name: '测试工单4', name: '测试工单4',
size: '1100*5554*22',
progressRate: 0.32323, progressRate: 0.32323,
plan: 11111,
finish: 111,
}, },
{ {
id: '4', id: '7',
name: '测试工单4', name: '测试工单4',
size: '1100*5554*22',
progressRate: 0.32323, progressRate: 0.32323,
plan: 11111,
finish: 111,
}, },
{ {
id: '4', id: '8',
name: '测试工单4', name: '测试工单4',
progressRate: 0.32323, progressRate: 0.32323,
size: '1100*5554*22',
plan: 11111,
finish: 111,
}, },
// { // {
// id: '5', // id: '5',
@ -416,7 +453,10 @@ export default {
return { return {
id: ele.id, id: ele.id,
name: ele.name, name: ele.name,
progressRate: parseFloat((ele.progressRate * 100).toFixed(0)), progressRate: parseFloat((ele.progressRate * 100).toFixed(0)),
specifications: ele.specifications ? '规格' + ele.specifications :null,
planQuantity: ele.plan ? '计划' + ele.plan + '片' : null,
finish: ele.finish + '片',
}; };
} }
}); });
@ -440,8 +480,8 @@ export default {
<span style="color:rgba(255,255,255,0.5)" >${item.name || ''} <span style="color:rgba(255,255,255,0.5)" >${item.name || ''}
</span>`, </span>`,
`<span style="color:rgba(255,255,255,0.5)">${item.code || ''}</span>`, `<span style="color:rgba(255,255,255,0.5)">${item.code || ''}</span>`,
`<span style="color:rgba(255,255,255,0.5)">${item.status || ''}</span>`, `<span style="color:rgba(255,255,255,0.5)"><div style="${item.status == '运行' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:13px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%; background-color: #FFBD02;float:left;margin:13px 10px 0 0 '}"></div> ${item.status || ''}</span>`,
`<span style="color:rgba(255,255,255,0.5)">${item.error || ''}</span>`, `<span style="color:rgba(255,255,255,0.5)"><div style="${item.error == '是' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:13px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%; background-color: #FFBD02;float:left;margin:13px 10px 0 0 '}"></div> ${item.error || ''}</span>`,
]); ]);
this.eqConfig.data = eqArr; this.eqConfig.data = eqArr;
let data = [ let data = [
@ -690,7 +730,10 @@ export default {
return { return {
id: ele.id, id: ele.id,
name: ele.name, name: ele.name,
progressRate: parseFloat((ele.progressRate * 100).toFixed(0)), progressRate: parseFloat((ele.progressRate * 100).toFixed(0)),
specifications: ele.specifications ? '规格' + ele.specifications :null,
planQuantity: ele.planQuantity ? '计划' + ele.planQuantity + '片' : null,
actualQuantity: ele.actualQuantity ? ele.actualQuantity + '片' : null,
}; };
} }
}); });
@ -704,12 +747,8 @@ export default {
`<span style="color:rgba(255,255,255,0.5)">${ `<span style="color:rgba(255,255,255,0.5)">${
item.code || '' item.code || ''
}</span>`, }</span>`,
`<span style="color:rgba(255,255,255,0.5)"><span style="color:rgba(255,255,255,0.5)"></span> ${ `<span style="color:rgba(255,255,255,0.5)"><div style="${item.status == '运行' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:10px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%; background-color: #FFBD02;float:left;margin:10px 10px 0 0 '}"></div> ${item.status || ''}</span>`,
item.status || '' `<span style="color:rgba(255,255,255,0.5)"><div style="${item.error == '是' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:10px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%; background-color: #FFBD02;float:left;margin:10px 10px 0 0 '}"></div> ${item.error || ''}</span>`,
}</span>`,
`<span style="color:rgba(255,255,255,0.5)">${
item.error || ''
}</span>`,
]); ]);
this.eqConfig.data = eqArr; this.eqConfig.data = eqArr;
// this.$nextTick(() => { // this.$nextTick(() => {
@ -802,6 +841,18 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.split{
width: 1px;
// display: inline-block;
height: 14px;
// margin-top: 2px;
// line-height: 0;
margin-left: 8px;
opacity:calc(.6);
margin-right: 8px;
background-color: #C8CDD7;
// border: 1px solid #C8CDD7;
}
.myLegend { .myLegend {
position: absolute; position: absolute;
top: -28px; top: -28px;
@ -902,12 +953,39 @@ export default {
} }
.now-secondary-title { .now-secondary-title {
display: inline-block;
width: 70px;
margin: 0; margin: 0;
font-size: 1em; font-size: 14px;
line-height: 2em; line-height: 2em;
color: #fff; color: #fff;
} }
.orderSize {
display: inline-block;
width: 120px;
margin: 0;
font-size: 14px;
line-height: 2em;
color: #fff;
}
.orderFinish {
display: inline-block;
width: 60px;
margin: 0;
font-size: 14px;
line-height: 2em;
text-align: right;
color: #fff;
}
.orderPlan {
display: inline-block;
width: 100px;
margin: 0;
font-size: 14px;
line-height: 2em;
color: #fff;
text-align: left;
}
.now-team-content { .now-team-content {
font-size: 3em; font-size: 3em;
line-height: 1em; line-height: 1em;

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:15:30 * @Date: 2023-11-06 15:15:30
* @LastEditTime: 2024-03-22 17:13:16 * @LastEditTime: 2024-04-09 15:14:08
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->

View File

@ -26,7 +26,7 @@ import {
getQualityScrapLogPage, getQualityScrapLogPage,
deleteQualityScrapLog, deleteQualityScrapLog,
getWorkOrderList, getWorkOrderList,
getTeamList // getTeamList
} from '@/api/base/qualityScrapLog'; } from '@/api/base/qualityScrapLog';
const tableProps = [ const tableProps = [
@ -189,18 +189,18 @@ export default {
// console.log(this.formConfig[0].selectOptions); // console.log(this.formConfig[0].selectOptions);
// this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
}) })
getTeamList().then((res) => { // getTeamList().then((res) => {
console.log(res); // console.log(res);
// console.log(response); // // console.log(response);
this.formConfig[1].selectOptions = res.data.map((item) => { // this.formConfig[1].selectOptions = res.data.map((item) => {
return { // return {
name: item.name, // name: item.name,
id: item.id // id: item.id
} // }
}) // })
// console.log(this.formConfig[0].selectOptions); // // console.log(this.formConfig[0].selectOptions);
// this.listQuery.total = response.data.total; // // this.listQuery.total = response.data.total;
}) // })
}, },
getDataList() { getDataList() {
this.dataListLoading = true; this.dataListLoading = true;