projects/mescc/develop #24

Merged
juzi merged 94 commits from projects/mescc/develop into projects/mescc/main 2024-05-31 14:21:24 +08:00
11 changed files with 752 additions and 184 deletions
Showing only changes of commit 1b8f2522c1 - Show all commits

View File

@ -5,7 +5,7 @@ ENV = 'development'
VUE_APP_TITLE = 芋道管理系统 VUE_APP_TITLE = 芋道管理系统
# 芋道管理系统/开发环境 # 芋道管理系统/开发环境
VUE_APP_BASE_API = 'http://192.168.0.30:48080' VUE_APP_BASE_API = 'http://glass.kszny.picaiba.com'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

32
src/api/cost/index.js Normal file
View File

@ -0,0 +1,32 @@
/*
* @Author: zhp
* @Date: 2024-04-26 14:53:45
* @LastEditTime: 2024-04-26 15:01:12
* @LastEditors: zhp
* @Description:
*/
import request from '@/utils/request'
// 查询部门列表
export function getOrderList(data) {
return request({
url: 'ip/prod-order/prodOrderList',
method: 'post',
data: data
})
}
export function getCostPage(data) {
return request({
url: 'ip/cost/costPage',
method: 'post',
data: data
})
}
export function getCostList(data) {
return request({
url: 'ip/cost/costList',
method: 'post',
data: data
})
}

15
src/api/energy/index.js Normal file
View File

@ -0,0 +1,15 @@
/*
* @Author: zhp
* @Date: 2024-04-28 09:28:12
* @LastEditTime: 2024-04-28 09:43:40
* @LastEditors: zhp
* @Description:
*/
import request from '@/utils/request'
export function getEnergyPage(data) {
return request({
url: 'ip/energy/page',
method: 'post',
data: data
})
}

32
src/api/greenest/index.js Normal file
View File

@ -0,0 +1,32 @@
/*
* @Author: zhp
* @Date: 2024-04-26 14:53:45
* @LastEditTime: 2024-04-26 15:09:10
* @LastEditors: zhp
* @Description:
*/
import request from '@/utils/request'
// 查询部门列表
export function getOrderList(data) {
return request({
url: 'ip/prod-order/prodOrderList',
method: 'post',
data: data
})
}
export function getEpPage(data) {
return request({
url: 'ip/environment-protection/environmentPage',
method: 'post',
data: data
})
}
export function getCostList(data) {
return request({
url: 'ip/cost/costList',
method: 'post',
data: data
})
}

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2024-04-15 10:49:13 * @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-04-17 16:14:51 * @LastEditTime: 2024-04-26 15:06:28
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -36,7 +36,7 @@
<script> <script>
// import { parseTime } from '../../core/mixins/code-filter'; // import { parseTime } from '../../core/mixins/code-filter';
// import { getGlassPage, exportGlasscExcel } from '@/api/report/glass'; import { getOrderList, getCostPage } from '@/api/cost/index';
// import inputTable from './inputTable.vue'; // import inputTable from './inputTable.vue';
import lineChart from './lineChart'; import lineChart from './lineChart';
import moment from 'moment' import moment from 'moment'
@ -47,8 +47,8 @@ export default {
data() { data() {
return { return {
listQuery: { listQuery: {
pageSize: 10, current: 1,
pageNo: 1, size: 10,
factoryId: null, factoryId: null,
total: 0, total: 0,
type: null, type: null,
@ -230,7 +230,7 @@ export default {
mounted() { mounted() {
this.getDict() this.getDict()
// this.getCurrentYearFirst() // this.getCurrentYearFirst()
// this.getDataList() this.getDataList()
}, },
methods: { methods: {
buttonClick() { buttonClick() {
@ -264,10 +264,14 @@ export default {
} }
}, },
async getDict() { async getDict() {
this.$refs.lineChart.initChart() // this.$refs.lineChart.initChart()
// 线 // 线
// const res = await getCorePLList(); const res = await getOrderList({
// this.proLineList = res.data; current:1,
size:999,
});
console.log(res)
this.mainFormConfig[0].selectOptions = res.data;
}, },
// //
multipliedByHundred(str) { multipliedByHundred(str) {
@ -293,6 +297,10 @@ export default {
}, },
async getDataList() { async getDataList() {
const res = await getCostPage({
current: 1,
size: 999,
});
}, },
add0(m) { add0(m) {
return m < 10 ? '0' + m : m return m < 10 ? '0' + m : m

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2024-04-15 10:49:13 * @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-04-17 16:14:31 * @LastEditTime: 2024-04-28 10:19:11
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,7 +9,7 @@
<div style="display: flex; flex-direction: column; min-height: calc(100vh - 96px - 31px)"> <div style="display: flex; flex-direction: column; min-height: calc(100vh - 96px - 31px)">
<div class="app-container" style="padding: 16px 24px 0;height: auto; flex-grow: 1;"> <div class="app-container" style="padding: 16px 24px 0;height: auto; flex-grow: 1;">
<div style="background: #fff; height: 70px; width:100%"> <div style="background: #fff; height: 70px; width:100%">
<ButtonNav :menus="['水', '电', '气']" :button-mode="true" @change="currentMenu = $event"> <ButtonNav :menus="['水', '电', '气']" :button-mode="true" @change="handleChange">
</ButtonNav> </ButtonNav>
</div> </div>
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip"> <el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
@ -94,7 +94,7 @@
<script> <script>
// import { parseTime } from '../../core/mixins/code-filter'; // import { parseTime } from '../../core/mixins/code-filter';
// import { getGlassPage, exportGlasscExcel } from '@/api/report/glass'; import { getEnergyPage } from '@/api/energy';
// import inputTable from './inputTable.vue'; // import inputTable from './inputTable.vue';
import lineChart from './lineChart'; import lineChart from './lineChart';
import moment from 'moment' import moment from 'moment'
@ -303,9 +303,12 @@ export default {
mounted() { mounted() {
this.getDict() this.getDict()
// this.getCurrentYearFirst() // this.getCurrentYearFirst()
// this.getDataList() this.getDataList()
}, },
methods: { methods: {
handleChange(e) {
console.log(e);
},
buttonClick() { buttonClick() {
}, },
@ -461,6 +464,7 @@ export default {
}, },
async getDataList() { async getDataList() {
const res = await getEnergyPage(this.listQuery)
}, },
add0(m) { add0(m) {
return m < 10 ? '0' + m : m return m < 10 ? '0' + m : m

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2024-04-15 10:49:13 * @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-04-17 16:14:01 * @LastEditTime: 2024-04-26 15:18:15
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -72,7 +72,7 @@
<script> <script>
// import { parseTime } from '../../core/mixins/code-filter'; // import { parseTime } from '../../core/mixins/code-filter';
// import { getGlassPage, exportGlasscExcel } from '@/api/report/glass'; import { getEpPage } from '@/api/greenest/index';
// import inputTable from './inputTable.vue'; // import inputTable from './inputTable.vue';
import lineChart from './lineChart'; import lineChart from './lineChart';
import moment from 'moment' import moment from 'moment'
@ -83,11 +83,11 @@ export default {
data() { data() {
return { return {
listQuery: { listQuery: {
pageSize: 10, current: 1,
pageNo: 1, size: 999,
factoryId: null, // factoryId: null,
total: 0, // total: 0,
type: null, // type: null,
// reportType: 2, // reportType: 2,
reportTime: [] reportTime: []
}, },
@ -199,7 +199,7 @@ export default {
}, },
mounted() { mounted() {
this.getDict() this.getDict()
// this.getCurrentYearFirst() this.getCurrentYearFirst()
// this.getDataList() // this.getDataList()
}, },
methods: { methods: {
@ -264,6 +264,8 @@ export default {
}, },
async getDataList() { async getDataList() {
const res = getEpPage(this.listQuery)
console.log(res)
}, },
add0(m) { add0(m) {
return m < 10 ? '0' + m : m return m < 10 ? '0' + m : m

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2024-04-15 10:49:13 * @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-04-17 16:13:47 * @LastEditTime: 2024-04-17 16:32:43
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -76,7 +76,6 @@
<!-- <el-col :span="12"> <!-- <el-col :span="12">
<line-chart :id=" 'second' " class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart> <line-chart :id=" 'second' " class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart>
</el-col> --> </el-col> -->
</el-row>
</div> </div>
<div class="app-container" style="margin-top: 18px;flex-grow: 1; height: auto; padding: 16px;"> <div class="app-container" style="margin-top: 18px;flex-grow: 1; height: auto; padding: 16px;">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />

View File

@ -1,154 +1,202 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:15:30 * @Date: 2024-04-17 16:31:51
* @LastEditTime: 2024-04-17 15:37:39 * @LastEditTime: 2024-04-17 17:01:14
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-drawer class="drawer" :visible.sync="visible" size="50%"> <el-drawer class="drawer" :visible.sync="visible" size="50%">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ '碲化镉工厂生产数据详情' }} {{ '新增' }}
</small-title> </small-title>
<div class="detailBox"> <div class="detailBox">
<el-row :gutter="24"> <el-form ref="form" :model="dataForm" label-width="80px" label-position="top">
<el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="8"> <el-col :span="8">
<p class="title">工厂名称</p> <el-form-item label="工厂名称" prop="factoryId">
<p class="text">{{ }}</p> <el-select v-model="dataForm.factoryId" placeholder="请选择工厂名称" multiple="true" clearable>
<el-option v-for="item in factoryList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<p class="title">时间维度</p> <el-form-item label="工厂名称" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-select v-model="dataForm.factoryId" placeholder="请选择工厂名称" multiple="true" clearable>
<el-option v-for="item in factoryList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<p class="title">时间</p> <el-form-item label="工厂名称" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-select v-model="dataForm.factoryId" placeholder="请选择工厂名称" multiple="true" clearable>
<el-option v-for="item in factoryList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-divider></el-divider> <el-divider></el-divider>
<small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false"> <small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false">
{{ '芯片' }} {{ '芯片' }}
</small-title> </small-title>
<el-row :gutter="24"> <el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片产量</p> <el-form-item label="芯片产量" prop="factoryId">
<p class="text">{{ }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片产量"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片良率</p> <el-form-item label="芯片良率" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片良率"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片良率</p> <el-form-item label="芯片BOM" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片BOM"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片总功率</p> <el-form-item label="芯片总功率" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片总功率"></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="6"> <el-col :span="6">
<p class="title">FTO投入量</p> <el-form-item label="FTO投入量" prop="factoryId">
<p class="text">{{ }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入FTO投入量"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">CSS稼动率</p> <el-form-item label="CSS稼动率" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入CSS稼动率"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片段OEE</p> <el-form-item label="芯片段OEE" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片段OEE"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片平均功率</p> <el-form-item label="芯片平均功率" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片平均功率"></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片人均产量</p> <el-form-item label="芯片人均产量" prop="factoryId">
<p class="text">{{ }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片人均产量"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片产能利用率</p> <el-form-item label="芯片人均产量" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片人均产量"></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-divider></el-divider>
<small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false"> <small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false">
{{ '标准组件' }} {{ '标准组件' }}
</small-title> </small-title>
<el-row :gutter="24"> <el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="6"> <el-col :span="6">
<p class="title">封装BOM</p> <el-form-item label="封装BOM" prop="factoryId">
<p class="text">{{ }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入封装BOM"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">封装线OEE</p> <el-form-item label="封装线OEE" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入封装线OEE"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">标准组件良率</p> <el-form-item label="标准组件良率" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入标准组件良率"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">标准组件产量</p> <el-form-item label="标准组件良率" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入标准组件良率"></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="6"> <el-col :span="6">
<p class="title">标准组件总功率</p> <el-form-item label="标准组件总功率" prop="factoryId">
<p class="text">{{ }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入标准组件总功率"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">封装产能利用率</p> <el-form-item label="标准组件总功率" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入标准组件总功率"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">标准组件人均产量</p> <el-form-item label="标准组件人均产量" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入标准组件人均产量"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">标准组件人均产量</p> <el-form-item label="标准组件平均功率" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入标准组件平均功率"></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-divider></el-divider>
<small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false"> <small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false">
{{ 'BIPV产品' }} {{ 'BIPV产品' }}
</small-title> </small-title>
<el-row :gutter="24"> <el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="6"> <el-col :span="6">
<p class="title">产品产量</p> <el-form-item label="产品产量" prop="factoryId">
<p class="text">{{ }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入产品产量"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">人均产量</p> <el-form-item label="人均产量" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入人均产量"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片使用量</p> <el-form-item label="芯片使用量" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片使用量"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">芯片使用量</p> <el-form-item label="芯片利用率" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入芯片利用率"></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24" style="padding: 0 32px;">
<el-col :span="6"> <el-col :span="6">
<p class="title">内部材料成本</p> <el-form-item label="内部材料成本" prop="factoryId">
<p class="text">{{ }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入内部材料成本"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">内部材料成本</p> <el-form-item label="OEM及委外材料成本" prop="factoryId">
<p class="text">{{ dataForm.code }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入OEM及委外材料成本"></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<p class="title">内部材料成本</p> <el-form-item label="综合材料成本" prop="factoryId">
<p class="text">{{ dataForm.productName }}</p> <el-input v-model="dataForm.factoryId" placeholder="请输入综合材料成本"></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form>
</div>
<div class="footer">
<el-button @click="cancelForm"> </el-button>
<el-button type="primary" @click="handleClose()"> </el-button>
</div> </div>
</el-drawer> </el-drawer>
@ -191,6 +239,7 @@ export default {
name: '自动', name: '自动',
} }
], ],
factoryList:[],
sectionList: [], sectionList: [],
visible: false, visible: false,
dataForm: { dataForm: {
@ -325,6 +374,22 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
.footer {
position: absolute;
bottom: 1%;
right: 2%;
}
.drawer-footer {
width: 100%;
margin-top: 50px;
border-top: 1px solid #e8e8e8;
padding: 10px 50px;
text-align: left;
background: #fff;
}
.el-divider--horizontal{
margin: 0;
}
.drawer >>> .el-drawer { .drawer >>> .el-drawer {
border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px;
} }

View File

@ -0,0 +1,365 @@
<!--
* @Author: zhp
* @Date: 2023-11-06 15:15:30
* @LastEditTime: 2024-04-17 16:40:01
* @LastEditors: zhp
* @Description:
-->
<template>
<el-drawer class="drawer" :visible.sync="visible" size="50%">
<small-title slot="title" :no-padding="true">
{{ '碲化镉工厂生产数据详情' }}
</small-title>
<div class="detailBox">
<el-row :gutter="24">
<el-col :span="8">
<p class="title">工厂名称</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="8">
<p class="title">时间维度</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
<el-col :span="8">
<p class="title">时间</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
</el-row>
<el-divider></el-divider>
<small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false">
{{ '芯片' }}
</small-title>
<el-row :gutter="24">
<el-col :span="6">
<p class="title">芯片产量</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片良率</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片良率</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片总功率</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="6">
<p class="title">FTO投入量</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="6">
<p class="title">CSS稼动率</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片段OEE</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片平均功率</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="6">
<p class="title">芯片人均产量</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片产能利用率</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
</el-row>
<small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false">
{{ '标准组件' }}
</small-title>
<el-row :gutter="24">
<el-col :span="6">
<p class="title">封装BOM</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="6">
<p class="title">封装线OEE</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
<el-col :span="6">
<p class="title">标准组件良率</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
<el-col :span="6">
<p class="title">标准组件产量</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="6">
<p class="title">标准组件总功率</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="6">
<p class="title">封装产能利用率</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
<el-col :span="6">
<p class="title">标准组件人均产量</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
<el-col :span="6">
<p class="title">标准组件人均产量</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
</el-row>
<small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false">
{{ 'BIPV产品' }}
</small-title>
<el-row :gutter="24">
<el-col :span="6">
<p class="title">产品产量</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="6">
<p class="title">人均产量</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片使用量</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片使用量</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="6">
<p class="title">内部材料成本</p>
<p class="text">{{ }}</p>
</el-col>
<el-col :span="6">
<p class="title">内部材料成本</p>
<p class="text">{{ dataForm.code }}</p>
</el-col>
<el-col :span="6">
<p class="title">内部材料成本</p>
<p class="text">{{ dataForm.productName }}</p>
</el-col>
</el-row>
</div>
</el-drawer>
</template>
<script>
// import basicAdd from './basic-add';
// import {
// createQualityScrapLog, updateQualityScrapLog, getQualityScrapLog, getWorkOrderList,
// getTeamList, getDetList, getLineList
// } from "@/api/base/qualityScrapLog";
// import { getList, } from "@/api/base/qualityScrapType";
import SmallTitle from './SmallTitle';
export default {
components: {
SmallTitle,
},
// mixins: [basicAdd],
data() {
return {
urlOptions: {
isGetCode: false,
// codeURL: getCode,
// createURL: createQualityScrapLog,
// updateURL: updateQualityScrapLog,
// infoURL: getQualityScrapLog,
},
lineList: [],
typeList: [],
workOrderList: [],
detList: [],
teamList: [],
sourceList: [
{
id: 1,
name: '手动',
},
{
id: 2,
name: '自动',
}
],
sectionList: [],
visible: false,
dataForm: {
id: undefined,
logTime: undefined,
source: 1,
detId: undefined,
workOrderId: null,
teamId: undefined,
num: undefined,
lineId: undefined,
description: undefined,
// description: undefined,
remark: undefined,
},
// materialList: [],
dataRule: {
// materialId: [{ required: true, message: "", trigger: "blur" }],
workOrderId: [{ required: true, message: "工单号不能为空", trigger: "change" }],
num: [{ required: true, message: "数量不能为空", trigger: "blur" }],
detId: [{ required: true, message: "报废原因不能为空", trigger: "change" }],
logTime: [{ required: true, message: "报废时间不能为空", trigger: "change" }],
}
};
},
mounted() {
this.getDict()
console.log('我看看', this.dataForm)
// this.getCurrentTime()
},
methods: {
init() {
this.visible = true
},
// getCurrentTime() {
// // new Date().Format("yyyy-MM-dd HH:mm:ss")
// this.dataForm.logTime = new Date()
// // this.dataForm.logTime = year + "-" + month + "-" + day;
// console.log(this.dataForm.logTime);
// },
async getDict() {
// //
// const res = await getList()
// this.typeList = res.data
// getWorkOrderList().then((res) => {
// console.log(res);
// // console.log(response);
// this.workOrderList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// getLineList().then((res) => {
// console.log(res);
// // console.log(response);
// this.lineList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// getDetList().then((res) => {
// console.log(res);
// // console.log(response);
// this.detList = res.data.map((item) => {
// return {
// name: item.content,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// getTeamList().then((res) => {
// console.log(res);
// // console.log(response);
// this.teamList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// },
// async getWorksectionById(lineId) {
// if (lineId) {
// const { code, data } = await this.$axios({
// url: '/base/core-workshop-section/listByParentId',
// method: 'get',
// params: {
// id: lineId,
// },
// });
// if (code == 0) {
// console.log(data)
// this.sectionList = data.map((item) => {
// return {
// name: item.name,
// id: item.id,
// };
// });
// }
// } else {
// this.$axios({
// url: '/base/core-workshop-section/listAll',
// method: 'get',
// // params: {
// // id: lineId,
// // },
// }).then((res) => {
// // console.log(data)
// this.sectionList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id,
// };
// });
// })
// }
},
},
};
</script>
<style scoped>
.drawer >>> .el-drawer {
border-radius: 8px 0 0 8px;
}
.drawer >>> .el-form-item__label {
padding: 0;
}
.drawer >>> .el-drawer__header {
margin: 0;
padding: 32px 32px 24px;
border-bottom: 1px solid #dcdfe6;
margin-bottom: 30px;
}
.detailBox p {
margin: 0;
padding: 0 32px;
}
.detailBox .title {
/* width: 56px; */
/* height: 14px; */
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
line-height: 16px;
text-align: left;
font-style: normal;
text-transform: none;
}
.detailBox .text {
font-size: 14px;
font-weight: 400;
color: rgba(102,102,102,0.75);
padding-bottom: 20px;
}
</style>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2024-04-15 10:49:13 * @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-04-17 16:12:20 * @LastEditTime: 2024-04-17 16:37:35
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -77,7 +77,8 @@
<method-btn v-if="tableBtn.length" slot="handleBtn" label="操作" :width="120" fixed="right" <method-btn v-if="tableBtn.length" slot="handleBtn" label="操作" :width="120" fixed="right"
:method-list="tableBtn" @clickBtn="handleClick" /> :method-list="tableBtn" @clickBtn="handleClick" />
</base-table> </base-table>
<add-or-update v-if="detailOrUpdateVisible" ref="detailOrUpdate" @refreshDataList="successSubmit" /> <detail-or-update v-if="detailOrUpdateVisible" ref="detailOrUpdate" @refreshDataList="successSubmit" />
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="successSubmit" />
<!-- <el-row :gutter="24"> --> <!-- <el-row :gutter="24"> -->
<!-- <el-col :span="12" v-for="item in dataList" :key="item.id"> --> <!-- <el-col :span="12" v-for="item in dataList" :key="item.id"> -->
@ -86,7 +87,7 @@
<!-- <el-col :span="12"> <!-- <el-col :span="12">
<line-chart :id=" 'second' " class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart> <line-chart :id=" 'second' " class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart>
</el-col> --> </el-col> -->
</el-row>
</div> </div>
<!-- <inputTable :date="date" :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all" <!-- <inputTable :date="date" :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all"
@ -107,12 +108,14 @@ import lineChart from './lineChart';
import moment from 'moment' import moment from 'moment'
import ButtonNav from '@/components/ButtonNav' import ButtonNav from '@/components/ButtonNav'
import basicPage from '@/mixins/basic-page' import basicPage from '@/mixins/basic-page'
import AddOrUpdate from './add-or-updata'; import detailOrUpdate from './detail-or-updata';
import addOrUpdate from './add-or-updata';
// import FileSaver from 'file-saver' // import FileSaver from 'file-saver'
// import * as XLSX from 'xlsx' // import * as XLSX from 'xlsx'
export default { export default {
components: { lineChart, ButtonNav, AddOrUpdate }, components: { lineChart, ButtonNav, detailOrUpdate,addOrUpdate },
mixins: [basicPage], mixins: [basicPage],
data() { data() {
return { return {
@ -126,6 +129,7 @@ export default {
reportTime: [] reportTime: []
}, },
detailOrUpdateVisible: false, detailOrUpdateVisible: false,
addOrUpdateVisible:false,
date1: undefined, date1: undefined,
date2: undefined, date2: undefined,
tableBtn: [ tableBtn: [
@ -133,10 +137,14 @@ export default {
type: 'detail', type: 'detail',
btnName: '详情', btnName: '详情',
}, },
// { {
// type: 'delete', type: 'edit',
// btnName: '', btnName: '修改',
// }, },
{
type: 'delete',
btnName: '删除',
},
].filter((v) => v), ].filter((v) => v),
typeList: [ typeList: [
{ {
@ -297,33 +305,58 @@ export default {
// width: 180, // width: 180,
// filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), // filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
// }, // },
{
prop: 'userName',
label: '日期',
},
{ {
prop: 'nickName', prop: 'nickName',
label: '工厂名称', label: '工厂名称',
}, },
{
prop: 'userName',
label: '目标时间',
},
{ {
prop: 'type', prop: 'type',
label: '玻璃类型', label: '提交时间',
}, },
{ {
prop: 'inNum', prop: 'inNum',
label: '投入量', label: '钼电极投入量(片)',
}, },
{ {
prop: 'putNum', prop: 'putNum',
label: '出数量', label: '芯片产量(片)',
}, },
{ {
prop: 'goodNum', prop: 'goodNum',
label: '良品数量', label: '芯片平均功率(W)',
}, },
{ {
prop: 'goodYelid', prop: 'goodYelid',
label: '良品率%', label: '芯片良率(%)',
},
{
prop: 'goodYelid',
label: '芯片总功率(KW)',
},
{
prop: 'goodYelid',
label: 'PID6稼动率(%)',
},
{
prop: 'goodYelid',
label: '芯片段OEE(%)',
},
{
prop: 'goodYelid',
label: '芯片产能利用率(%)',
},
{
prop: 'goodYelid',
label: '芯片人均产量(片/人)',
},
{
prop: 'goodYelid',
label: '芯片BOM',
}, },
], ],
timeSelect:'month', timeSelect:'month',
@ -366,6 +399,19 @@ export default {
// this.getDataList() // this.getDataList()
}, },
methods: { methods: {
handleClick(val) {
if (val.type === "edit") {
this.addOrUpdateVisible = true;
// this.addOrEditTitle = "";
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
} else if (val.type === "delete") {
this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex)
} else {
this.otherMethods(val)
}
},
otherMethods(val) { otherMethods(val) {
this.detailOrUpdateVisible = true; this.detailOrUpdateVisible = true;
this.addOrEditTitle = "详情"; this.addOrEditTitle = "详情";