소스 검색

剞劂冲突

pull/65/head
‘937886381’ 2 달 전
부모
커밋
f2cfe94dfc
9개의 변경된 파일149개의 추가작업 그리고 44개의 파일을 삭제
  1. +2
    -2
      .env.dev
  2. +10
    -2
      src/views/produce/data/add-or-updata.vue
  3. +50
    -24
      src/views/produce/data/index.vue
  4. +12
    -8
      src/views/produce/data/lineChart.vue
  5. +7
    -2
      src/views/produce/target/add-or-updata.vue
  6. +7
    -6
      src/views/produce/workOrder/index.vue
  7. +51
    -0
      src/views/produce/workOrder/statusChart.vue
  8. +5
    -0
      src/views/report/completionStatusIntrBM/components/bmSearchBarComplete.vue
  9. +5
    -0
      src/views/report/components/bmSearchBar.vue

+ 2
- 2
.env.dev 파일 보기

@@ -1,8 +1,8 @@
###
# @Author: zhp
# @Date: 2024-04-28 13:42:51
# @LastEditTime: 2024-06-24 08:29:45
# @LastEditors: zhp
# @LastEditTime: 2024-06-24 16:57:53
# @LastEditors: DY
# @Description:
###
# 开发环境配置


+ 10
- 2
src/views/produce/data/add-or-updata.vue 파일 보기

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-11-06 15:15:30
* @LastEditTime: 2024-06-18 14:41:07
* @LastEditTime: 2024-06-25 08:59:33
* @LastEditors: DY
* @Description:
-->
@@ -58,7 +58,7 @@
<p class="text">{{ dataForm.chipCssMarriageRate }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片段OEE</p>
<p class="title">芯片段OEE(%)</p>
<p class="text">{{ dataForm.chipOee }}</p>
</el-col>
<el-col :span="6">
@@ -116,6 +116,14 @@
<p class="title">标准组件平均功率(W)</p>
<p class="text">{{ dataForm.componentAveragePower }}</p>
</el-col>
<el-col :span="6">
<p class="title">标准组件转化效率</p>
<p class="text">{{ dataForm.componentTransRate }}</p>
</el-col>
<el-col :span="6">
<p class="title">芯片投入</p>
<p class="text">{{ dataForm.chipInput }}</p>
</el-col>
</el-row>
</div>
<div v-if="glass === 2">


+ 50
- 24
src/views/produce/data/index.vue 파일 보기

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-06-25 10:34:51
* @LastEditTime: 2024-06-26 11:00:11
* @LastEditors: zhp
* @Description:
-->
@@ -10,7 +10,7 @@
<div class="app-container" style="padding: 16px 24px 0; height: auto; flex-grow: 1;">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="时间维度" prop="type">
<el-select size="small" clearable v-model="listQuery.type" placeholder="请选择">
<el-select v-model="listQuery.type" size="small" clearable placeholder="请选择">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@@ -74,7 +74,7 @@
<!-- <el-row :gutter="24"> -->
<!-- <el-col :span="12" v-for="item in dataList" :key="item.id"> -->
<search-bar :formConfigs="formConfig1" ref="searchBarForm1" style="margin-bottom: 0" />
<line-chart class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart>
<line-chart ref="lineChart" class="yearChart" style="height: 45vh;width: 100%"></line-chart>
<!-- </el-col> -->
<!-- <el-col :span="12">
<line-chart :id=" 'second' " class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart>
@@ -135,9 +135,9 @@ export default {
// reportType: 2,
startDate: undefined,
endDate:undefined,
reportTime: [],
start: undefined,
end: undefined
reportTime: null,
start: null,
end: null
},
detailOrUpdateVisible:false,
date1: undefined,
@@ -241,7 +241,7 @@ export default {
lineData: [],
chart: null,
seriesList: [],
colorList: ['#2760FF', '#8167F6', '#5B9BFF', '#FFD160']
colorList: ['#7164FF', '#63BDFF', '#8EF0AB', '#FFCE6A']
// proLineList: [],
// all: {}
};
@@ -289,7 +289,6 @@ export default {
// console.log(e);
},
onValueChange(picker, k) { // 选中近k周后触发的操作
// console.log(this.listQuery.reportTime[0], this.listQuery.reportTime[1])
if (this.listQuery.start && this.listQuery.end) {
console.log(this.listQuery.reportTime)
this.date1 = moment(this.listQuery.start.getTime() - 24 * 60 * 60 * 1000).format('YYYY-MM-DD HH:mm:ss')
@@ -351,23 +350,31 @@ export default {
}
},
async getDataList() {
await getProduceDataPage(this.listQuery).then(res => {
console.log(res)
if (res.code === 0) {
this.tableData = res.data.records
this.listQuery.total = res.data.total
}
})
if (this.listQuery.type === '') {
this.$message.warning('请选择时间维度!')
return
}
if (this.listQuery.startDate === undefined) {
this.$message.warning('请选择时间范围!')
} else {
await getProduceDataPage(this.listQuery).then(res => {
console.log(res)
if (res.code === 0) {
this.tableData = res.data.records
this.listQuery.total = res.data.total
}
})

// 图表
await getproddata(this.listQuery).then(resp => {
if (resp.data?.length > 0) {
const chartData = Object.groupBy(resp.data, (member) => member.datestr)
this.buildChart(chartData, resp.data)
} else {
this.$refs.lineChart.initChart([], [])
}
})
// 图表
await getproddata(this.listQuery).then(resp => {
if (resp.data?.length > 0) {
const chartData = Object.groupBy(resp.data, (member) => member.datestr)
this.buildChart(chartData, resp.data)
} else {
this.$refs.lineChart.initChart([], [])
}
})
}
},
buildChart(data, dataList) {
let xAxisData = []
@@ -392,6 +399,13 @@ export default {
barWidth: 20,
itemStyle: {
color: this.colorList[i]
},
label: {
show: i === 2 ? true : false,
position: 'top',
formatter(params) {
return fac.name.substring(0, 2)
}
}
}
dataList.forEach(item => {
@@ -411,6 +425,18 @@ export default {
barWidth: 20,
itemStyle: {
color: this.colorList[i]
},
label: {
show: true,
position: 'top',
formatter(params) {
if (params.value === 0) {
return ''
} else {
// return ['瑞昌', '邯郸'][params.seriesName.split('-')[1]]
return fac.name.substring(0, 2)
}
}
}
}
dataList.forEach(item => {


+ 12
- 8
src/views/produce/data/lineChart.vue 파일 보기

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-01-21 14:43:06
* @LastEditors: DY
* @LastEditTime: 2024-06-19 15:13:23
* @LastEditTime: 2024-06-24 11:13:48
* @Description:
-->
<template>
@@ -40,7 +40,7 @@ export default {
},
height: {
type: String,
default: '30vh'
default: '35vh'
},
legendPosition: {
type: String,
@@ -140,20 +140,24 @@ export default {
xAxis: [
{
type: 'category',
// prettier-ignore
data: xAxis
name: '日期',
data: xAxis,
axisLabel: {
rotate: 25
}
}
],
yAxis: [
{
type: 'value'
type: 'value',
name: '单位:个'
}
],
grid: {
top: '20%',
top: '10%',
left: "1%",
right: "3%",
bottom: "1%",
right: "5%",
bottom: "0%",
containLabel: true
},
series: seriesList


+ 7
- 2
src/views/produce/target/add-or-updata.vue 파일 보기

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-17 16:31:51
* @LastEditTime: 2024-06-17 16:55:04
* @LastEditTime: 2024-06-24 15:43:50
* @LastEditors: DY
* @Description:
-->
@@ -375,7 +375,12 @@ export default {
this.visible = true
if (this.dataForm.id) {
getProduceTargetDetail(this.dataForm.id).then(res => {
this.dataForm = res.data
// this.dataForm = res.data
for (const i in res.data) {
if (res.data[i] !== null) {
this.dataForm[i] = res.data[i]
}
}
if (this.dataForm.targetType === 0 || this.dataForm.targetType === 2 || this.dataForm.targetType === 3) {
// this.dataForm.reportTime = String(this.dataForm.targetTime)
this.$set(this.dataForm, 'reportTime', String(this.dataForm.targetTime))


+ 7
- 6
src/views/produce/workOrder/index.vue 파일 보기

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-06-17 16:32:02
* @LastEditTime: 2024-06-24 15:08:34
* @LastEditors: DY
* @Description:
-->
@@ -76,7 +76,8 @@ import tableHeightMixin from "@/mixins/tableHeightMixin";
import basicPage from '@/mixins/basic-page'
import AddOrUpdate from './add-or-updata';
import { factoryList, factoryArray } from "@/utils/constants";
import { publicFormatter } from "@/utils/dict";
// import { publicFormatter } from "@/utils/dict";
import statusChart from "./statusChart.vue";

// import FileSaver from 'file-saver'
// import * as XLSX from 'xlsx'
@@ -206,13 +207,13 @@ export default {
prop: 'factory',
label: '工厂名称',
filter: (val) => factoryList[val],
minWidth: 200,
minWidth: 220,
showOverflowtooltip: true
},
{
prop: 'workOrderNumber',
label: '工单号',
minWidth: 120,
minWidth: 130,
showOverflowtooltip: true
// filter: (val) => ['玻璃芯片', '标准组件', 'BIPV', '定制组件'][val]
},
@@ -246,8 +247,8 @@ export default {
{
prop: 'orderStatus',
label: '工单状态',
// filter: publicFormatter('workorder_status')
filter: (val) => ['', '未开始', '生产中', '已完成'][val],
subcomponent: statusChart
// filter: (val) => ['', '未开始', '生产中', '已完成'][val],
},
{
prop: 'startTime',


+ 51
- 0
src/views/produce/workOrder/statusChart.vue 파일 보기

@@ -0,0 +1,51 @@
<!--
* @Author: Do not edit
* @Date: 2024-06-24 15:03:19
* @LastEditTime: 2024-06-24 15:07:42
* @LastEditors: DY
* @Description:
-->
<template>
<div>
<span class="dot" :class="myClass"></span>
<span>{{ state }}</span>
</div>
</template>
<script>
export default {
name: "statusChart",
props: {
injectData: {
type: Object,
default: () => ({}),
},
},
computed: {
state() {
return ['', '未开始', '生产中', '已完成'][this.injectData.orderStatus]
},
myClass() {
return ['', 'yellow', 'blue', 'green'][this.injectData.orderStatus]
}
},
};
</script>
<style scoped>
.dot {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 3px;
vertical-align: middle;
margin-right: 8px;
}
.green {
background: #10DC76;
}
.yellow {
background: #FFBD02;
}
.blue {
background: #3B79FF;
}
</style>

+ 5
- 0
src/views/report/completionStatusIntrBM/components/bmSearchBarComplete.vue 파일 보기

@@ -26,6 +26,7 @@
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 150px"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
@@ -38,6 +39,7 @@
placeholder="选择周"
value-format="yyyy-MM-dd"
style="width: 150px"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
@@ -97,6 +99,9 @@ export default {
{ id: 2, name: "月" },
{ id: 3, name: "年" },
],
pickerOptions: {
firstDayOfWeek: 1,
},
};
},
methods: {


+ 5
- 0
src/views/report/components/bmSearchBar.vue 파일 보기

@@ -25,6 +25,7 @@
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 150px"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
@@ -37,6 +38,7 @@
placeholder="选择周"
value-format="yyyy-MM-dd"
style="width: 150px"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
@@ -118,6 +120,9 @@ export default {
{ id: 0, name: "瑞昌" },
{ id: 1, name: "邯郸" },
],
pickerOptions: {
firstDayOfWeek: 1,
},
};
},
methods: {


불러오는 중...
취소
저장