projects/mes-test #133
							
								
								
									
										8
									
								
								.env.dev
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								.env.dev
									
									
									
									
									
								
							@@ -1,8 +1,8 @@
 | 
			
		||||
###
 | 
			
		||||
 # @Author: Do not edit
 | 
			
		||||
 # @Date: 2023-08-29 09:40:39
 | 
			
		||||
 # @LastEditTime: 2023-11-15 09:09:12
 | 
			
		||||
 # @LastEditors: zhp
 | 
			
		||||
 # @LastEditTime: 2023-11-15 14:37:35
 | 
			
		||||
 # @LastEditors: DY
 | 
			
		||||
 # @Description:
 | 
			
		||||
###
 | 
			
		||||
# 开发环境配置
 | 
			
		||||
@@ -18,8 +18,8 @@ VUE_APP_TITLE = MES系统
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.1.8:48080'
 | 
			
		||||
VUE_APP_BASE_API = 'http://192.168.4.159:48080'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.1.56:48080'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
 | 
			
		||||
VUE_APP_BASE_API = 'http://192.168.1.56:48080'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.4.159:48080'
 | 
			
		||||
# 路由懒加载
 | 
			
		||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Do not edit
 | 
			
		||||
 * @Date: 2023-10-21 11:50:46
 | 
			
		||||
 * @LastEditTime: 2023-11-06 17:49:42
 | 
			
		||||
 * @LastEditTime: 2023-11-15 10:44:41
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 */
 | 
			
		||||
@@ -67,6 +67,14 @@ export function getCoreWOList(query) {
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据工单id获得所有列表
 | 
			
		||||
export function getCoreWOListById(ids) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/core-work-order/list?ids='+ ids ,
 | 
			
		||||
    method: 'get'
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 创建工单预使用原料
 | 
			
		||||
export function createCoreWOMa(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
@@ -135,4 +143,4 @@ export function statusChange(data) {
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data: data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Do not edit
 | 
			
		||||
 * @Date: 2023-11-08 15:56:52
 | 
			
		||||
 * @LastEditTime: 2023-11-11 19:52:54
 | 
			
		||||
 * @LastEditTime: 2023-11-13 09:15:17
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Do not edit
 | 
			
		||||
 * @Date: 2023-11-08 15:56:52
 | 
			
		||||
 * @LastEditTime: 2023-11-10 09:04:50
 | 
			
		||||
 * @LastEditTime: 2023-11-13 08:52:12
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 */
 | 
			
		||||
@@ -58,10 +58,10 @@ export function getCheckDetPage(query) {
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获得x巡检所有列表
 | 
			
		||||
// 获得设备巡检所有列表
 | 
			
		||||
export function getcheckList(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/equipment-check/list',
 | 
			
		||||
    url: '/base/equipment-check/listAll',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @LastEditTime: 2023-11-04 17:57:18
 | 
			
		||||
 * @LastEditTime: 2023-11-15 10:32:19
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -326,9 +326,15 @@ export default {
 | 
			
		||||
					// 获取产品详情
 | 
			
		||||
					this.urlOptions.infoURL(id).then(response => {
 | 
			
		||||
            this.dataForm = response.data
 | 
			
		||||
						this.dataForm.unit = String(this.dataForm.unit)
 | 
			
		||||
						this.dataForm.materialType = String(this.dataForm.materialType)
 | 
			
		||||
						this.dataForm.productType = String(this.dataForm.productType)
 | 
			
		||||
						if (this.dataForm.unit !== undefined) {
 | 
			
		||||
							this.dataForm.unit = String(this.dataForm.unit)
 | 
			
		||||
						}
 | 
			
		||||
						if (this.dataForm.materialType !== undefined) {
 | 
			
		||||
							this.dataForm.materialType = String(this.dataForm.materialType)
 | 
			
		||||
						}
 | 
			
		||||
						if (this.dataForm.productType !== undefined) {
 | 
			
		||||
							this.dataForm.productType = String(this.dataForm.productType)
 | 
			
		||||
						}
 | 
			
		||||
          });
 | 
			
		||||
					// 获取产品属性列表
 | 
			
		||||
					this.getList();
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,8 @@ import {
 | 
			
		||||
	getCorePLPage,
 | 
			
		||||
	deleteCorePL
 | 
			
		||||
} from '@/api/base/coreProductionLine';
 | 
			
		||||
import { getStatus } from '@/api/core/base/productionLine';
 | 
			
		||||
import codeFilter from '../../core/mixins/code-filter';
 | 
			
		||||
 | 
			
		||||
const tableProps = [
 | 
			
		||||
	{
 | 
			
		||||
@@ -67,7 +69,7 @@ const tableProps = [
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'enabled',
 | 
			
		||||
		label: '当前状态',
 | 
			
		||||
		filter: (val) => ['停用', '启用'][val]
 | 
			
		||||
		filter: codeFilter('lineStatus')
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		prop: 'description',
 | 
			
		||||
@@ -135,14 +137,28 @@ export default {
 | 
			
		||||
	created() {},
 | 
			
		||||
	methods: {
 | 
			
		||||
		// 获取数据列表
 | 
			
		||||
    // getDataList() {
 | 
			
		||||
    //   this.dataListLoading = true;
 | 
			
		||||
    //   this.urlOptions.getDataListURL(this.listQuery).then(response => {
 | 
			
		||||
    //     this.tableData = response.data.list;
 | 
			
		||||
    //     this.listQuery.total = response.data.total;
 | 
			
		||||
    //     this.dataListLoading = false;
 | 
			
		||||
    //   });
 | 
			
		||||
    // },
 | 
			
		||||
    getDataList() {
 | 
			
		||||
      this.dataListLoading = true;
 | 
			
		||||
      this.urlOptions.getDataListURL(this.listQuery).then(response => {
 | 
			
		||||
        // this.tableData = response.data.list;
 | 
			
		||||
				this.getStatus(response.data.list)
 | 
			
		||||
        this.listQuery.total = response.data.total;
 | 
			
		||||
        this.dataListLoading = false;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		getStatus(list) {
 | 
			
		||||
			const ids = list.map((i) => {
 | 
			
		||||
				return i.id;
 | 
			
		||||
			});
 | 
			
		||||
			getStatus(ids).then((response) => {
 | 
			
		||||
				response.forEach((a) => {
 | 
			
		||||
					list.forEach((b) => {
 | 
			
		||||
						if (b.id === a.id) b.enabled = a.status;
 | 
			
		||||
					});
 | 
			
		||||
				});
 | 
			
		||||
				this.tableData = list;
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		buttonClick(val) {
 | 
			
		||||
			switch (val.btnName) {
 | 
			
		||||
				case 'search':
 | 
			
		||||
 
 | 
			
		||||
@@ -2,22 +2,26 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @LastEditTime: 2023-11-06 17:08:22
 | 
			
		||||
 * @LastEditTime: 2023-11-15 14:18:38
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
	<el-drawer
 | 
			
		||||
	<!-- <el-drawer
 | 
			
		||||
		:visible.sync="visible"
 | 
			
		||||
		:show-close="false"
 | 
			
		||||
		:wrapper-closable="false"
 | 
			
		||||
		class="drawer"
 | 
			
		||||
		size="50%">
 | 
			
		||||
		<small-title slot="title" :no-padding="true">
 | 
			
		||||
		size="50%"> -->
 | 
			
		||||
	<div class="app-container">
 | 
			
		||||
		<!-- <small-title slot="title" :no-padding="true">
 | 
			
		||||
			{{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }}
 | 
			
		||||
		</small-title>
 | 
			
		||||
		</small-title> -->
 | 
			
		||||
		<div v-show="workOrderButton.length">
 | 
			
		||||
			<el-button  v-for="(work, index) in workOrderButton" :key="index" type="primary" @click="init(work.id, true)">{{ work.name }}</el-button>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="content">
 | 
			
		||||
			<div>
 | 
			
		||||
				<h2>工单编码:{{ dataForm.code }}</h2>
 | 
			
		||||
				<h1>工单编码:{{ dataForm.code }}</h1>
 | 
			
		||||
			</div>
 | 
			
		||||
			<small-title
 | 
			
		||||
					style="margin: 16px 0; padding-left: 8px"
 | 
			
		||||
@@ -47,6 +51,9 @@
 | 
			
		||||
					<el-col :span="8">关联产线:{{ dataForm.productLineNames }}</el-col>
 | 
			
		||||
					<el-col :span="8">物料计算方式:{{ dataForm.materialMethod === 1 ? '产品基础' : dataForm.materialMethod === 2 ? '工艺扩展' : '' }}</el-col>
 | 
			
		||||
				</el-row>
 | 
			
		||||
				<el-row :gutter="20">
 | 
			
		||||
					<el-col :span="8">关联工艺:{{ dataForm.processFlowName }}</el-col>
 | 
			
		||||
				</el-row>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
			<small-title
 | 
			
		||||
@@ -57,7 +64,7 @@
 | 
			
		||||
			<div class="formContent">
 | 
			
		||||
				<el-row :gutter="20">
 | 
			
		||||
					<el-col :span="8">订单创建时间:
 | 
			
		||||
						<span v-for="(item, index) in orderArray" :key="index" style="margin-right: 10px">{{ item.createTime }}</span>
 | 
			
		||||
						<span v-for="(item, index) in orderArray" :key="index" style="margin-right: 10px; white-space: normal">{{ item.createTime }}</span>
 | 
			
		||||
					</el-col>
 | 
			
		||||
					<el-col :span="8">计划开始时间:{{ dataForm.planStartTime }}</el-col>
 | 
			
		||||
					<el-col :span="8">计划完成时间:{{ dataForm.planFinishTime }}</el-col>
 | 
			
		||||
@@ -74,7 +81,7 @@
 | 
			
		||||
				</el-row>
 | 
			
		||||
				<el-row :gutter="20">
 | 
			
		||||
					<el-col :span="8">废片数量:{{ dataForm.nokQuantity }}</el-col>
 | 
			
		||||
					<el-col :span="8">检测瑕疵数:{{ 0 }}</el-col>
 | 
			
		||||
					<el-col :span="8">检测瑕疵数:{{ }}</el-col>
 | 
			
		||||
				</el-row>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
@@ -126,17 +133,18 @@
 | 
			
		||||
					@pagination="getList" /> -->
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
			<div class="drawer-body__footer">
 | 
			
		||||
			<!-- <div class="drawer-body__footer">
 | 
			
		||||
				<el-button type="primary" @click="goback()">关闭</el-button>
 | 
			
		||||
			</div>
 | 
			
		||||
			</div> -->
 | 
			
		||||
		</div>
 | 
			
		||||
	</el-drawer>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
// import basicAdd from '../../core/mixins/basic-add';
 | 
			
		||||
import { getCoreWO, getMaterialBomPage, getConOrderList } from "@/api/base/coreWorkOrder";
 | 
			
		||||
import { getCoreWO, getMaterialBomPage, getConOrderList, getCoreWOListById } from "@/api/base/coreWorkOrder";
 | 
			
		||||
import { orderList } from "@/api/base/orderManage";
 | 
			
		||||
import { getProcessFlowList } from '@/api/base/orderManage'
 | 
			
		||||
import SmallTitle from './SmallTitle';
 | 
			
		||||
import { publicFormatter } from "@/utils/dict";
 | 
			
		||||
 | 
			
		||||
@@ -217,10 +225,36 @@ export default {
 | 
			
		||||
			orderArray: [],
 | 
			
		||||
			visible: false,
 | 
			
		||||
			isdetail: false,
 | 
			
		||||
			workOrderButton: [],
 | 
			
		||||
			processFlowList: []
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {},
 | 
			
		||||
	created() {
 | 
			
		||||
		this.getDict()
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		if (this.$route.query.woIdString) {
 | 
			
		||||
			const idList = this.$route.query.woIdString.split(',')
 | 
			
		||||
			getCoreWOListById(idList).then(res => {
 | 
			
		||||
				this.workOrderButton = res.data.map(work => {
 | 
			
		||||
					return {
 | 
			
		||||
						id: work.id,
 | 
			
		||||
						name: work.name
 | 
			
		||||
					}
 | 
			
		||||
				})
 | 
			
		||||
				this.init(this.workOrderButton[0].id, true)
 | 
			
		||||
			})
 | 
			
		||||
		}  else {
 | 
			
		||||
			this.init(this.$route.query.id, true)
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		getDict() {
 | 
			
		||||
			// 工艺
 | 
			
		||||
      getProcessFlowList().then(res => {
 | 
			
		||||
        this.processFlowList = res.data || []
 | 
			
		||||
      })
 | 
			
		||||
		},
 | 
			
		||||
		fitlerP(val) {
 | 
			
		||||
			if (val) {
 | 
			
		||||
				if (val === 1) {
 | 
			
		||||
@@ -320,6 +354,14 @@ export default {
 | 
			
		||||
					// 获取工单详情
 | 
			
		||||
					this.urlOptions.infoURL(id).then(response => {
 | 
			
		||||
            this.dataForm = response.data
 | 
			
		||||
						// 工艺名称
 | 
			
		||||
						if (this.dataForm.processFlowId) {
 | 
			
		||||
							this.processFlowList.filter(item => {
 | 
			
		||||
								if (item.id === this.dataForm.processFlowId) {
 | 
			
		||||
									this.dataForm.processFlowName = item.name
 | 
			
		||||
								}
 | 
			
		||||
							})
 | 
			
		||||
						}
 | 
			
		||||
						// 获取订单列表和用料列表
 | 
			
		||||
						this.getList();
 | 
			
		||||
          });
 | 
			
		||||
@@ -401,6 +443,7 @@ export default {
 | 
			
		||||
	font-size: 16px;
 | 
			
		||||
	line-height: 1.5;
 | 
			
		||||
	margin-bottom: 10px;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
}
 | 
			
		||||
.action_btn {
 | 
			
		||||
  float: right;
 | 
			
		||||
 
 | 
			
		||||
@@ -40,17 +40,17 @@
 | 
			
		||||
			ref="material"
 | 
			
		||||
			@refreshDataList="closeDetail"></add-or-update>
 | 
			
		||||
			<!-- 查看详情 -->
 | 
			
		||||
			<detail
 | 
			
		||||
			<!-- <detail
 | 
			
		||||
			v-if="detailVisible"
 | 
			
		||||
			ref="detail"
 | 
			
		||||
			@refreshDataList="closeDetail"></detail>
 | 
			
		||||
			@refreshDataList="closeDetail"></detail> -->
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AddOrUpdate from './add-or-updata';
 | 
			
		||||
import AddWorkOrder from './addWorkOrder'
 | 
			
		||||
import Detail from './detail.vue';
 | 
			
		||||
// import Detail from './detail.vue';
 | 
			
		||||
import basicPage from '../../core/mixins/basic-page';
 | 
			
		||||
import { parseTime } from '../../core/mixins/code-filter';
 | 
			
		||||
import {
 | 
			
		||||
@@ -112,8 +112,7 @@ export default {
 | 
			
		||||
	mixins: [basicPage],
 | 
			
		||||
	components: {
 | 
			
		||||
		AddWorkOrder,
 | 
			
		||||
		AddOrUpdate,
 | 
			
		||||
		Detail
 | 
			
		||||
		AddOrUpdate
 | 
			
		||||
	},
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
@@ -252,7 +251,8 @@ export default {
 | 
			
		||||
					type: 'input',
 | 
			
		||||
					label: '工单名称',
 | 
			
		||||
					placeholder: '工单名称',
 | 
			
		||||
					param: 'name'
 | 
			
		||||
					param: 'name',
 | 
			
		||||
					defaultSelect: ''
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
          type: 'select',
 | 
			
		||||
@@ -298,7 +298,14 @@ export default {
 | 
			
		||||
			],
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	created() {},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		console.log(this.$route.query.workOrderName)
 | 
			
		||||
		if (this.$route.query.workOrderName) {
 | 
			
		||||
			this.listQuery.name = this.$route.query.workOrderName;
 | 
			
		||||
			this.formConfig[0].defaultSelect = this.$route.query.workOrderName;
 | 
			
		||||
		}
 | 
			
		||||
		this.getDataList()
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		refreshWorkOrder(val) {
 | 
			
		||||
			console.log(val)
 | 
			
		||||
@@ -322,11 +329,17 @@ export default {
 | 
			
		||||
          this.$refs.material.init(val.data, true);
 | 
			
		||||
        });
 | 
			
		||||
			} else if (val.type === 'detail') {
 | 
			
		||||
				this.detailVisible = true;
 | 
			
		||||
        this.addOrEditTitle = "详情";
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.detail.init(val.data.id, true);
 | 
			
		||||
        });
 | 
			
		||||
				this.$router.push({
 | 
			
		||||
					path: '/core/core-work-order-detail',
 | 
			
		||||
					query:{
 | 
			
		||||
						id: val.data.id
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
				// this.detailVisible = true;
 | 
			
		||||
        // this.addOrEditTitle = "详情";
 | 
			
		||||
        // this.$nextTick(() => {
 | 
			
		||||
        //   this.$refs.detail.init(val.data.id, true);
 | 
			
		||||
        // });
 | 
			
		||||
			} else {
 | 
			
		||||
				const param = {
 | 
			
		||||
					id: val.data.id,
 | 
			
		||||
 
 | 
			
		||||
@@ -150,48 +150,37 @@ export default {
 | 
			
		||||
    getData() {
 | 
			
		||||
      this.urlOptions.getDataListURL(this.listQuery).then(res => {
 | 
			
		||||
        //构造数据
 | 
			
		||||
        if (res.data) {
 | 
			
		||||
        this.tableData = []
 | 
			
		||||
        if (Object.values(res.data.coreProductionLineMonthVOS).length > 0) {
 | 
			
		||||
          this.setHeader()
 | 
			
		||||
          res.data.forEach(item => {
 | 
			
		||||
            console.log('111', item.recordTime, moment(item.recordTime).format('DD'))
 | 
			
		||||
            this.tableData.push({
 | 
			
		||||
              proName: item.proName,
 | 
			
		||||
              specifications: item.specifications
 | 
			
		||||
          let yAllData = [], proNameList = []
 | 
			
		||||
          Object.values(res.data.coreProductionLineMonthVOS).forEach(pro => {
 | 
			
		||||
            // 一条产品的数据
 | 
			
		||||
            let yData = []
 | 
			
		||||
            const tempData = {
 | 
			
		||||
              proName: pro[0].proName,
 | 
			
		||||
              specifications: pro[0].specifications,
 | 
			
		||||
              sum: 0
 | 
			
		||||
            }
 | 
			
		||||
            proNameList.push(pro[0].proName)
 | 
			
		||||
            pro.forEach(item => {
 | 
			
		||||
              // 产品下的各时间点的数据
 | 
			
		||||
              // 截取日
 | 
			
		||||
              const day = parseTime(item.recordTime).slice(8, 10) < 10 ? parseTime(item.recordTime).slice(9, 10) : parseTime(item.recordTime).slice(8, 10)
 | 
			
		||||
              // console.log('!1', day < 10)
 | 
			
		||||
              tempData['value' + day] = item.countSum
 | 
			
		||||
              tempData.sum += item.countSum
 | 
			
		||||
              yData[day] = item.countSum
 | 
			
		||||
              // yData.push(item.countSum)
 | 
			
		||||
            })
 | 
			
		||||
            this.tableData.push(tempData)
 | 
			
		||||
            yAllData.push(yData)
 | 
			
		||||
          })
 | 
			
		||||
          this.$nextTick(() => {
 | 
			
		||||
            this.$refs.lineChart.initChart(this.xData, yAllData, proNameList)
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        console.log('饿', this.tableData)
 | 
			
		||||
        //   res.data.data.forEach(item => {
 | 
			
		||||
        //     let yData = []
 | 
			
		||||
        //     lineName.push(item.lineName)
 | 
			
		||||
        //     // let obj = {}
 | 
			
		||||
        //     // obj.lineName = item.lineName,
 | 
			
		||||
        //     //   obj.sum = item.sum,
 | 
			
		||||
        //     item.data.forEach((ele, index) => {
 | 
			
		||||
        //         // console.log(ele)
 | 
			
		||||
        //       ele.children.forEach((e) => {
 | 
			
		||||
        //         // let yData = []
 | 
			
		||||
        //         yData.push(e.dynamicValue)
 | 
			
		||||
        //         })
 | 
			
		||||
        //       })
 | 
			
		||||
        //     yAllData.push(yData)
 | 
			
		||||
        //   });
 | 
			
		||||
        //   console.log(lineName)
 | 
			
		||||
        // } else {
 | 
			
		||||
        //   this.tableProps = arr
 | 
			
		||||
        //   this.tableData = []
 | 
			
		||||
        //   xData = []
 | 
			
		||||
        //   yAllData = []
 | 
			
		||||
        //   lineName = []
 | 
			
		||||
        // }
 | 
			
		||||
        // res.data.data[0].data[0].children.forEach((item, index) => {
 | 
			
		||||
        //   // console.log(item)
 | 
			
		||||
        //   yData.push(item.dynamicValue)
 | 
			
		||||
        //   // let data = 'data' + Number(index+1)
 | 
			
		||||
        //   // obj['' + item.dynamicName + ''] = item.dynamicValue
 | 
			
		||||
        // })
 | 
			
		||||
        // console.log(this.yData)
 | 
			
		||||
        // this.$refs.lineChart.initChart(this.xData, yAllData, lineName)
 | 
			
		||||
 | 
			
		||||
        // this.total = response.data.total;
 | 
			
		||||
        // this.dataListLoading = false;
 | 
			
		||||
      });
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@
 | 
			
		||||
<script>
 | 
			
		||||
import { getPdlDataOneDay } from '@/api/core/monitoring/data24'
 | 
			
		||||
import { parseTime } from '../../mixins/code-filter';
 | 
			
		||||
import { Loading } from 'element-ui';
 | 
			
		||||
import { getSchedulingMonitoringRecord } from '@/api/monitoring/teamProduction'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	name: 'productionLineData24',
 | 
			
		||||
@@ -48,6 +48,8 @@ export default {
 | 
			
		||||
			tableData: [],
 | 
			
		||||
			tableProps: [],
 | 
			
		||||
			spanInfo: {},
 | 
			
		||||
			monitorList: [],
 | 
			
		||||
			ResData: []
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	computed: {},
 | 
			
		||||
@@ -56,7 +58,7 @@ export default {
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		/** 构建tableProps - 依据第一个元素所提供的信息 */
 | 
			
		||||
		buildProps() {
 | 
			
		||||
		async buildProps() {
 | 
			
		||||
			// 获取当前时间
 | 
			
		||||
			var currentTime = new Date();
 | 
			
		||||
			let timeArr = []
 | 
			
		||||
@@ -65,7 +67,6 @@ export default {
 | 
			
		||||
			for (let i = 0; i < 24; i ++) {
 | 
			
		||||
				timeArr.unshift(new Date(currentTime.getFullYear(), currentTime.getMonth(), currentTime.getDate(), currentTime.getHours() - i, 0, 0).getTime())
 | 
			
		||||
			}
 | 
			
		||||
			console.log("24小时内的开始时间:" + timeArr, timeArr.length);
 | 
			
		||||
			for(const times of timeArr) {
 | 
			
		||||
				const subprop = {
 | 
			
		||||
					label: parseTime(times),
 | 
			
		||||
@@ -73,7 +74,7 @@ export default {
 | 
			
		||||
					children: [
 | 
			
		||||
						{ prop: times + '_up', label: '上片数据' },
 | 
			
		||||
						{ prop: times + '_down', label: '下片数据' },
 | 
			
		||||
						{ prop: times + '_good', label: '良品面积' },
 | 
			
		||||
						{ prop: times + '_area', label: '良品面积' },
 | 
			
		||||
						{ prop: times + '_bad', label: '报废数据' },
 | 
			
		||||
						{ prop: times + '_percent', label: '报废比例(%)' }
 | 
			
		||||
					]
 | 
			
		||||
@@ -81,7 +82,13 @@ export default {
 | 
			
		||||
				this.arr.push(subprop)
 | 
			
		||||
			}
 | 
			
		||||
			this.tableProps = this.arr
 | 
			
		||||
			console.log('111', this.tableProps)
 | 
			
		||||
			const paramsTime = [parseTime(timeArr[0]), parseTime(timeArr[23])]
 | 
			
		||||
			await getSchedulingMonitoringRecord({checkTime: paramsTime}).then(res =>{
 | 
			
		||||
				// 报废数据
 | 
			
		||||
				this.monitorList = res.data.data
 | 
			
		||||
				console.log('报废', this.monitorList)
 | 
			
		||||
				this.buildData(this.ResData);
 | 
			
		||||
			})
 | 
			
		||||
		},
 | 
			
		||||
		setRowSpan(arr) {
 | 
			
		||||
      let count = 0
 | 
			
		||||
@@ -98,28 +105,47 @@ export default {
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      console.log('打印数组长度', this.spanArr)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
		/** 把 list 里的数据转换成 tableProps 对应的格式 */
 | 
			
		||||
		convertList(list) {
 | 
			
		||||
			let sectionArr= []
 | 
			
		||||
			console.log('打印看下数据list', list)
 | 
			
		||||
			list.forEach((ele, index) => {
 | 
			
		||||
				let tempData = {}
 | 
			
		||||
				tempData[ele.recordTime + '_up'] = ele.inputNum
 | 
			
		||||
				tempData[ele.recordTime + '_down'] = ele.outputNum
 | 
			
		||||
				tempData[ele.recordTime + '_up'] = ele.inputNum
 | 
			
		||||
				tempData['proLineName'] = ele.lineName
 | 
			
		||||
				tempData['workOrderName'] = ele.workOrderName
 | 
			
		||||
				tempData['spec'] = ele.specifications
 | 
			
		||||
				this.tableData.push(tempData)
 | 
			
		||||
				console.log('看看数据', this.tableData, tempData)
 | 
			
		||||
				const { proLineName } = tempData
 | 
			
		||||
				sectionArr.push(proLineName)
 | 
			
		||||
			// let sectionArr= []
 | 
			
		||||
			let temp = Object.values(list.datamap)                             
 | 
			
		||||
			console.log('111', temp)
 | 
			
		||||
 | 
			
		||||
			temp.forEach(item => {
 | 
			
		||||
				// 每条产线下的数据list
 | 
			
		||||
				console.log('22', item)
 | 
			
		||||
				let lineData = {}
 | 
			
		||||
				lineData['proLineName'] = item[0].lineName
 | 
			
		||||
				let works = [], specs = []
 | 
			
		||||
				item.forEach(it => {
 | 
			
		||||
					works.push(it.workOrderName)
 | 
			
		||||
					specs.push(it.specifications)
 | 
			
		||||
					lineData[it.recordTime + '_up'] = it.inputNum
 | 
			
		||||
					lineData[it.recordTime + '_down'] = it.outputNum
 | 
			
		||||
					lineData[it.recordTime + '_area'] = it.area
 | 
			
		||||
				})
 | 
			
		||||
				console.log('你好', this.monitorList)
 | 
			
		||||
				this.monitorList.forEach(m => {
 | 
			
		||||
					console.log('455', m)
 | 
			
		||||
					if (m.lineName === lineData.proLineName) {
 | 
			
		||||
						m.data.forEach(bad => {
 | 
			
		||||
							// 转成时间戳
 | 
			
		||||
							// console.log('233', Date.parse(bad.dynamicName))
 | 
			
		||||
							const stamp = Date.parse(bad.dynamicName)
 | 
			
		||||
							lineData[stamp + '_bad'] = bad.dynamicValue
 | 
			
		||||
							lineData[stamp + '_percent'] = (lineData[stamp + '_bad'] / lineData[stamp + '_down'] * 100).toFixed(2) + '%'
 | 
			
		||||
						})
 | 
			
		||||
					}
 | 
			
		||||
				})
 | 
			
		||||
				lineData['workOrderName'] = works.join(',')
 | 
			
		||||
				lineData['spec'] = specs.join(',')
 | 
			
		||||
				this.tableData.push(lineData)
 | 
			
		||||
			})
 | 
			
		||||
			this.setRowSpan(sectionArr)
 | 
			
		||||
			console.log('工段名称列表', sectionArr)
 | 
			
		||||
			console.log('打印', this.tableData)
 | 
			
		||||
			// this.setRowSpan(sectionArr)
 | 
			
		||||
			// console.log('工段名称列表', sectionArr)
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		buildData(data) {
 | 
			
		||||
@@ -141,8 +167,9 @@ export default {
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		async getList() {
 | 
			
		||||
      this.urlOptions.getDataListURL().then(res => {
 | 
			
		||||
      await this.urlOptions.getDataListURL().then(res => {
 | 
			
		||||
        console.log('看看数据', res)
 | 
			
		||||
				this.ResData = res.data
 | 
			
		||||
				this.arr = [
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'proLineName',
 | 
			
		||||
@@ -164,7 +191,6 @@ export default {
 | 
			
		||||
          }
 | 
			
		||||
				]
 | 
			
		||||
				this.buildProps();
 | 
			
		||||
				this.buildData(res.data);
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
			// // const data = this.res.data;
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,8 @@
 | 
			
		||||
							filterable
 | 
			
		||||
							:disabled="isdetail"
 | 
			
		||||
							style="width: 100%"
 | 
			
		||||
							placeholder="请选择设备名称">
 | 
			
		||||
							placeholder="请选择设备名称"
 | 
			
		||||
							@change="setConfig">
 | 
			
		||||
							<el-option
 | 
			
		||||
								v-for="dict in eqList"
 | 
			
		||||
								:key="dict.id"
 | 
			
		||||
@@ -78,7 +79,7 @@
 | 
			
		||||
							type="date"
 | 
			
		||||
							:disabled="isdetail"
 | 
			
		||||
							format='yyyy-MM-dd'
 | 
			
		||||
							value-format="yyyy-MM-dd HH:mm:ss"
 | 
			
		||||
							value-format="timestamp"
 | 
			
		||||
							placeholder="选择巡检时间" />
 | 
			
		||||
					</el-form-item>
 | 
			
		||||
				</el-col>
 | 
			
		||||
@@ -202,6 +203,13 @@ export default {
 | 
			
		||||
			const configres = await getcheckConfigByEqList()
 | 
			
		||||
			this.configList = configres.data
 | 
			
		||||
		},
 | 
			
		||||
		async setConfig() {
 | 
			
		||||
			const configres = await getcheckConfigByEqList({equipmentId: this.dataForm.equipmentId})
 | 
			
		||||
			this.configList = configres.data
 | 
			
		||||
			this.dataForm.equipmentCode = this.eqList.filter(item => {
 | 
			
		||||
				return item.id === this.dataForm.equipmentId
 | 
			
		||||
			})[0].code
 | 
			
		||||
		},
 | 
			
		||||
		goback() {
 | 
			
		||||
			this.$emit('refreshDataList');
 | 
			
		||||
			this.visible = false;
 | 
			
		||||
@@ -226,7 +234,7 @@ export default {
 | 
			
		||||
				this.$refs['dataForm'].resetFields();
 | 
			
		||||
 | 
			
		||||
				if (this.dataForm.id) {
 | 
			
		||||
					// 获取备品备件
 | 
			
		||||
					// 获取巡检记录
 | 
			
		||||
					getEqCheckLog(this.dataForm.id).then(response => {
 | 
			
		||||
						this.formLoading = false
 | 
			
		||||
            this.dataForm = response.data;
 | 
			
		||||
 
 | 
			
		||||
@@ -58,6 +58,7 @@ import moment from 'moment';
 | 
			
		||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
 | 
			
		||||
import addRecord from './addRecord.vue';
 | 
			
		||||
import { exportCheckLogExcel } from '@/api/equipment/base/inspection/record'
 | 
			
		||||
import { parseTime } from '../../../../core/mixins/code-filter';
 | 
			
		||||
 | 
			
		||||
const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
 | 
			
		||||
 | 
			
		||||
@@ -90,13 +91,13 @@ export default {
 | 
			
		||||
					: undefined,
 | 
			
		||||
			].filter((v) => v),
 | 
			
		||||
			tableProps: [
 | 
			
		||||
				{ prop: 'repairOrderNumber', label: '配置名称' },
 | 
			
		||||
				{ prop: 'maintenanceDuration', label: '设备名称' },
 | 
			
		||||
				{ prop: 'lineName', label: '数据来源' },
 | 
			
		||||
				{ prop: 'sectionName', label: '计划巡检时间' },
 | 
			
		||||
				{ prop: 'equipmentName', label: '实际巡检时间' },
 | 
			
		||||
				{ prop: 'maintenanceDetail', label: '完成状态' },
 | 
			
		||||
				{ prop: 'repairman', label: '巡检人' },
 | 
			
		||||
				{ prop: 'configName', label: '配置名称' },
 | 
			
		||||
				{ prop: 'equipmentName', label: '设备名称' },
 | 
			
		||||
				// { prop: 'lineName', label: '数据来源' },
 | 
			
		||||
				// { prop: 'sectionName', label: '计划巡检时间' },
 | 
			
		||||
				{ prop: 'actualTime', label: '实际巡检时间', filter: parseTime },
 | 
			
		||||
				// { prop: 'maintenanceDetail', label: '完成状态' },
 | 
			
		||||
				{ prop: 'responsible', label: '巡检人' },
 | 
			
		||||
			],
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
				{
 | 
			
		||||
@@ -222,7 +223,7 @@ export default {
 | 
			
		||||
			},
 | 
			
		||||
			// 表单参数
 | 
			
		||||
			form: {},
 | 
			
		||||
			basePath: '/base/equipment-repair-log',
 | 
			
		||||
			basePath: '/base/equipment-check-log',
 | 
			
		||||
			mode: null,
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user