Merge remote-tracking branch 'origin/master'

master
mengjiao 1 year ago
commit 0a66a33483

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 899 B

@ -138,6 +138,18 @@ export const constantRoutes = [
component: () => import("@/views/kanban/Packagingline/index2"),
hidden: true,
},
// 烘房状态监控看板
{
path: "/kanban/exceptionnew",
component: () => import("@/views/kanban/exceptionnew/index"),
hidden: true,
},
// 烘房状态监控看板
{
path: "/kanban/Dryingprocess",
component: () => import("@/views/kanban/Dryingprocess/index"),
hidden: true,
},
]

File diff suppressed because it is too large Load Diff

@ -1,6 +1,13 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item v-if="false" label="计划id" prop="planId">
<el-input
v-model="queryParams.planId"
@ -9,6 +16,14 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="巡检工单号" prop="orderCode">
<el-input
v-model="queryParams.orderCode"
placeholder="请输入巡检工单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计划编码" prop="planCode">
<el-input
v-model="queryParams.planCode"
@ -17,16 +32,20 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工单号" prop="orderCode">
<el-form-item label="计划名称" prop="planName">
<el-input
v-model="queryParams.orderCode"
placeholder="请输入工单号"
v-model="queryParams.planName"
placeholder="请输入计划名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="车间编码" prop="planWorkshop">
<el-select v-model="queryParams.planWorkshop" placeholder="请选择车间" clearable>
<el-select
v-model="queryParams.planWorkshop"
placeholder="请选择车间"
clearable
>
<el-option
v-for="work in workCenterList"
:key="work.factoryCode"
@ -43,16 +62,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="循环周期" prop="planLoop">
<el-select v-model="queryParams.planLoopType" placeholder="请选择循环周期" clearable>
<el-option
v-for="dict in dict.type.device_loop_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="false" label="循环周期" prop="planLoop">
<el-input
v-model="queryParams.planLoop"
@ -62,35 +71,43 @@
/>
</el-form-item>
<el-form-item v-if="false" label="循环执行时间开始" prop="planLoopStart">
<el-date-picker clearable
<el-date-picker
clearable
v-model="queryParams.planLoopStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择循环执行时间开始">
placeholder="请选择循环执行时间开始"
>
</el-date-picker>
</el-form-item>
<el-form-item v-if="false" label="循环执行时间结束" prop="planLoopEnd">
<el-date-picker clearable
<el-date-picker
clearable
v-model="queryParams.planLoopEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择循环执行时间结束">
placeholder="请选择循环执行时间结束"
>
</el-date-picker>
</el-form-item>
<el-form-item v-if="false" label="实际开始时间" prop="orderStart">
<el-date-picker clearable
<el-date-picker
clearable
v-model="queryParams.orderStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际开始时间">
placeholder="请选择实际开始时间"
>
</el-date-picker>
</el-form-item>
<el-form-item v-if="false" label="实际结束时间" prop="orderEnd">
<el-date-picker clearable
<el-date-picker
clearable
v-model="queryParams.orderEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际结束时间">
placeholder="请选择实际结束时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="设备编码" prop="equipmentCode">
@ -112,17 +129,19 @@
<el-form-item label="巡检人" prop="planPerson">
<el-input
v-model="queryParams.planPerson"
placeholder="请输入检人"
placeholder="请输入检人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="巡检时间" prop="orderStart">
<el-date-picker clearable
<el-date-picker
clearable
v-model="queryParams.orderStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择点检时间">
placeholder="请选择点检时间"
>
</el-date-picker>
</el-form-item>
<el-form-item v-if="false" label="工单用时" prop="orderCostTime">
@ -190,11 +209,13 @@
/>
</el-form-item>
<el-form-item v-if="false" label="创建时间" prop="createTime">
<el-date-picker clearable
<el-date-picker
clearable
v-model="queryParams.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择创建时间">
placeholder="请选择创建时间"
>
</el-date-picker>
</el-form-item>
<el-form-item v-if="false" label="更新人" prop="updateBy">
@ -206,13 +227,29 @@
/>
</el-form-item>
<el-form-item v-if="false" label="更新时间" prop="updateTime">
<el-date-picker clearable
<el-date-picker
clearable
v-model="queryParams.updateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择更新时间">
placeholder="请选择更新时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="循环周期" prop="planLoopType">
<el-select
v-model="queryParams.planLoopType"
placeholder="请选择循环周期"
clearable
>
<el-option
v-for="dict in dict.type.device_loop_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="循环范围开始" prop="planLoopStart">
<el-date-picker
v-model="queryParams.loopStartArray"
@ -223,7 +260,8 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item label="循环范围结束" prop="planLoopEnd">
@ -236,7 +274,8 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item v-if="false" label="执行开始时间" prop="orderStart">
@ -249,7 +288,8 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item v-if="false" label="执行结束时间" prop="orderEnd">
@ -262,12 +302,21 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
@ -318,84 +367,244 @@
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="inspectionWorkList">
<el-table-column v-if="false" label="主键" align="center" prop="orderId" />
<el-table-column
v-if="false"
label="主键"
align="center"
prop="orderId"
/>
<!-- 序号 -->
<el-table-column type="index" width="90" align="center" :index="indexMethod" label="序号" fixed/>
<el-table-column v-if="false" label="计划id" align="center" prop="planId" />
<el-table-column width="150" label="计划编码" align="center" prop="planCode" />
<el-table-column width="150" label="计划名称" align="center" prop="planName" />
<el-table-column v-if="false" label="计划类型" align="center" prop="planType" />
<el-table-column width="150" label="巡检单号" align="center" prop="orderCode" fixed>
<template slot-scope="scope">
<el-button
type="text"
@click="showWork(scope.row)"
>{{ scope.row.orderCode }}</el-button
<el-table-column
type="index"
width="90"
align="center"
:index="indexMethod"
label="序号"
fixed
/>
<el-table-column
width="150"
label="巡检工单号"
align="center"
prop="orderCode"
fixed
>
<template slot-scope="scope">
<el-button type="text" @click="showWork(scope.row)">{{
scope.row.orderCode
}}</el-button>
</template>
</el-table-column>
<el-table-column
v-if="false"
label="计划id"
align="center"
prop="planId"
/>
<el-table-column
width="150"
label="计划编码"
align="center"
prop="planCode"
/>
<el-table-column
width="200"
label="计划名称"
align="center"
prop="planName"
/>
<el-table-column
v-if="false"
label="计划类型"
align="center"
prop="planType"
/>
<el-table-column label="车间编码" align="center" prop="planWorkshop" />
<el-table-column width="150" label="车间" align="center" prop="workCenterName"/>
<el-table-column v-if="false" label="产线" align="center" prop="planProdLine" />
<el-table-column label="循环周期" align="center" prop="planLoop" />
<el-table-column width="120" label="循环周期类型" align="center" prop="planLoopType" >
<el-table-column
width="150"
label="车间"
align="center"
prop="workCenterName"
/>
<el-table-column
width="100"
label="设备编码"
align="center"
prop="equipmentCode"
/>
<el-table-column
width="120"
label="设备名称"
align="center"
prop="equipmentName"
/>
<el-table-column
width="150"
label="巡检时间"
align="center"
prop="orderEnd"
>
<template slot-scope="scope">
<dict-tag :options="dict.type.device_loop_type" :value="scope.row.planLoopType"/>
<span>{{
parseTime(scope.row.orderEnd, "{y}-{m}-{d} {h}:{i}:{s}")
}}</span>
</template>
</el-table-column>
<el-table-column width="120" label="循环范围开始" align="center" prop="planLoopStart">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planLoopStart, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="120" label="循环范围结束" align="center" prop="planLoopEnd">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planLoopEnd, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column v-if="false" width="120" label="执行开始时间" align="center" prop="orderStart">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.orderStart, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column v-if="false" width="120" label="执行结束时间" align="center" prop="orderEnd">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.orderEnd, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="100" label="设备编码" align="center" prop="equipmentCode" />
<el-table-column width="120" label="设备名称" align="center" prop="equipmentName" />
<el-table-column label="工单状态" align="center" prop="orderStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.device_order_status" :value="scope.row.orderStatus"/>
</template>
</el-table-column>
<el-table-column v-if="false" label="工单费用" align="center" prop="orderCost" />
<el-table-column label="巡检人" align="center" prop="planPerson" />
<el-table-column v-if="false" label="工单用时" align="center" prop="orderCostTime" />
<el-table-column v-if="false" label="签字" align="center" prop="orderSignPerson" />
<el-table-column v-if="false" label="工厂" align="center" prop="factoryCode" />
<el-table-column v-if="false" label="备用字段1" align="center" prop="attr1" />
<el-table-column v-if="false" label="备用字段2" align="center" prop="attr2" />
<el-table-column v-if="false" label="备用字段3" align="center" prop="attr3" />
<el-table-column v-if="false" label="删除标志" align="center" prop="delFlag" />
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<el-table-column
v-if="false"
label="产线"
align="center"
prop="planProdLine"
/>
<el-table-column label="循环周期" align="center" prop="planLoopType" />
<el-table-column
width="120"
label="循环周期类型"
align="center"
prop="planLoopType"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
<dict-tag
:options="dict.type.device_loop_type"
:value="scope.row.planLoopType"
/>
</template>
</el-table-column>
<el-table-column
width="120"
label="循环范围开始"
align="center"
prop="planLoopStart"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planLoopStart, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
width="120"
label="循环范围结束"
align="center"
prop="planLoopEnd"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planLoopEnd, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
v-if="false"
width="120"
label="执行开始时间"
align="center"
prop="orderStart"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.orderStart, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
v-if="false"
width="120"
label="执行结束时间"
align="center"
prop="orderEnd"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.orderEnd, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="工单状态" align="center" prop="orderStatus">
<template slot-scope="scope">
<dict-tag
:options="dict.type.device_order_status"
:value="scope.row.orderStatus"
/>
</template>
</el-table-column>
<el-table-column
v-if="false"
label="工单费用"
align="center"
prop="orderCost"
/>
<el-table-column
v-if="false"
label="工单用时"
align="center"
prop="orderCostTime"
/>
<el-table-column
v-if="false"
label="签字"
align="center"
prop="orderSignPerson"
/>
<el-table-column
v-if="false"
label="工厂"
align="center"
prop="factoryCode"
/>
<el-table-column
v-if="false"
label="备用字段1"
align="center"
prop="attr1"
/>
<el-table-column
v-if="false"
label="备用字段2"
align="center"
prop="attr2"
/>
<el-table-column
v-if="false"
label="备用字段3"
align="center"
prop="attr3"
/>
<el-table-column
v-if="false"
label="删除标志"
align="center"
prop="delFlag"
/>
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="更新人" align="center" prop="updateBy" />
<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
<el-table-column
label="更新时间"
align="center"
prop="updateTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.updateTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column v-if="false" label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column
v-if="false"
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
@ -418,103 +627,119 @@
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<el-dialog
title="巡检详情"
:visible.sync="workDetail"
width="1000px"
>
<el-dialog title="巡检详情" :visible.sync="workDetail" width="1000px">
<el-tabs type="border-card">
<el-tab-pane label="巡检信息">
<el-descriptions title="" border :column="2">
<el-descriptions-item label="计划编码">{{ workVO.order.planCode }}</el-descriptions-item>
<el-descriptions-item label="计划名称">{{ workVO.order.planName }}</el-descriptions-item>
<el-descriptions-item label="循环周期">{{ workVO.order.planLoop }}{{ workVO.order.planLoopType }}
<el-descriptions-item label="计划编码">{{
workVO.order.planCode
}}</el-descriptions-item>
<el-descriptions-item label="计划名称">{{
workVO.order.planName
}}</el-descriptions-item>
<el-descriptions-item label="循环周期"
>{{ workVO.order.planLoop }}{{ workVO.order.planLoopType }}
</el-descriptions-item>
<el-descriptions-item label="工单编码">{{ workVO.order.orderCode }}</el-descriptions-item>
<el-descriptions-item label="车间编码">{{ workVO.order.planWorkshop }}</el-descriptions-item>
<el-descriptions-item label="循环开始时间">{{ workVO.order.planLoopStart }}</el-descriptions-item>
<el-descriptions-item label="循环结束时间">{{ workVO.order.planLoopEnd }}</el-descriptions-item>
<el-descriptions-item v-if="false" label="执行开始时间">{{ workVO.order.orderStart }}</el-descriptions-item>
<el-descriptions-item v-if="false" label="执行结束时间">{{ workVO.order.orderEnd }}</el-descriptions-item>
<el-descriptions-item label="巡检人">{{ workVO.order.planPerson }}</el-descriptions-item>
<el-descriptions-item label="报修单号">{{ workVO.order.repairCode }}</el-descriptions-item>
<el-descriptions-item label="工单编码">{{
workVO.order.orderCode
}}</el-descriptions-item>
<el-descriptions-item label="车间编码">{{
workVO.order.planWorkshop
}}</el-descriptions-item>
<el-descriptions-item label="循环开始时间">{{
workVO.order.planLoopStart
}}</el-descriptions-item>
<el-descriptions-item label="循环结束时间">{{
workVO.order.planLoopEnd
}}</el-descriptions-item>
<el-descriptions-item v-if="false" label="执行开始时间">{{
workVO.order.orderStart
}}</el-descriptions-item>
<el-descriptions-item v-if="false" label="执行结束时间">{{
workVO.order.orderEnd
}}</el-descriptions-item>
<el-descriptions-item label="巡检人">{{
workVO.order.planPerson
}}</el-descriptions-item>
<el-descriptions-item label="报修单号">{{
workVO.order.repairCode
}}</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="设备信息">
<el-descriptions class="my-margin-top" title="" :column="2" border>
<el-descriptions-item label="设备编码">{{ workVO.equ.equipmentCode }}</el-descriptions-item>
<el-descriptions-item label="设备名称">{{ workVO.equ.equipmentName }}</el-descriptions-item>
<el-descriptions-item label="设备位置">{{ workVO.equ.equipmentLocation }}</el-descriptions-item>
<el-descriptions-item label="设备类型编码">{{ workVO.equ.equipmentTypeCode }}</el-descriptions-item>
<el-descriptions-item label="设备类型名称">{{ workVO.equ.equipmentTypeName }}</el-descriptions-item>
<el-descriptions-item label="所属工作中心编码">{{ workVO.equ.workshopCode }}</el-descriptions-item>
<el-descriptions-item label="所属工作中心名称">{{ workVO.equ.workshopName }}</el-descriptions-item>
<el-descriptions-item label="设备编码">{{
workVO.equ.equipmentCode
}}</el-descriptions-item>
<el-descriptions-item label="设备名称">{{
workVO.equ.equipmentName
}}</el-descriptions-item>
<el-descriptions-item label="设备位置">{{
workVO.equ.equipmentLocation
}}</el-descriptions-item>
<el-descriptions-item label="设备类型编码">{{
workVO.equ.equipmentTypeCode
}}</el-descriptions-item>
<el-descriptions-item label="设备类型名称">{{
workVO.equ.equipmentTypeName
}}</el-descriptions-item>
<el-descriptions-item label="所属工作中心编码">{{
workVO.equ.workshopCode
}}</el-descriptions-item>
<el-descriptions-item label="所属工作中心名称">{{
workVO.equ.workshopName
}}</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="检查项信息">
<el-table
:data="standardListVo"
border
style="width: 100%">
<el-table-column
prop="itemName"
label="检查项"
width="180">
<el-table :data="standardListVo" border style="width: 100%">
<el-table-column prop="itemName" label="检查项" width="180">
</el-table-column>
<el-table-column
prop="standardName"
label="标准名称"
width="180">
<el-table-column prop="standardName" label="标准名称" width="180">
</el-table-column>
<el-table-column
prop="standardTypeName"
label="标准类型"
width="80">
width="80"
>
</el-table-column>
<el-table-column
prop="detailReach"
label="是否达标">
<el-table-column prop="detailReach" label="是否达标">
</el-table-column>
<el-table-column
prop="actualValue"
label="实际值">
<el-table-column prop="actualValue" label="实际值">
</el-table-column>
<el-table-column
prop="detailUpLimit"
label="上限">
<el-table-column prop="detailUpLimit" label="上限">
</el-table-column>
<el-table-column
prop="detailDownLimit"
label="下限">
<el-table-column prop="detailDownLimit" label="下限">
</el-table-column>
<el-table-column
prop="detailUnit"
label="单位">
</el-table-column>
<el-table-column
prop="picturePath"
label="图片">
<el-table-column prop="detailUnit" label="单位"> </el-table-column>
<el-table-column prop="picturePath" label="图片">
<template slot-scope="scope">
<el-popover
placement="right"
width="300"
trigger="hover">
<el-popover placement="right" width="300" trigger="hover">
<div class="demo-image__lazy">
<el-empty :image-size="200" v-if="scope.row.checkPictrueList.length == 0"></el-empty>
<div v-for="(url, index) in scope.row.checkPictrueList" :key="index">
<el-image
:src="url"
></el-image>
<el-empty
:image-size="200"
v-if="scope.row.checkPictrueList.length == 0"
></el-empty>
<div
v-for="(url, index) in scope.row.checkPictrueList"
:key="index"
>
<el-image :src="url"></el-image>
</div>
</div>
<el-button slot="reference" type="primary" icon="el-icon-picture" circle></el-button>
<el-button
slot="reference"
type="primary"
icon="el-icon-picture"
circle
></el-button>
</el-popover>
</template>
</el-table-column>
@ -542,46 +767,50 @@ import {
getInspectionWork,
delInspectionWork,
addInspectionWork,
updateInspectionWork
updateInspectionWork,
} from "@/api/device/inspectionWork";
import {listDeviceOrder} from "@/api/device/deviceOrder";
import {getWorkCenter} from "@/api/device/plan";
import { listDeviceOrder } from "@/api/device/deviceOrder";
import { getWorkCenter } from "@/api/device/plan";
export default {
name: "InspectionWork",
dicts: ['device_order_status', 'device_loop_type'],
dicts: ["device_order_status", "device_loop_type"],
data() {
return {
standardListVo:[],
standardListVo: [],
workCenterList: [],
test: false,
//
pickerOptions: {
shortcuts: [{
text: '最近一周',
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
picker.$emit("pick", [start, end]);
},
},
],
},
// VO
workVO: {
@ -597,7 +826,8 @@ export default {
orderStart: null,
orderEnd: null,
planPerson: null,
}, equ: {
},
equ: {
equipmentCode: null,
equipmentName: null,
equipmentLocation: null,
@ -605,7 +835,8 @@ export default {
equipmentTypeName: null,
workshopCode: null,
workshopName: null,
}, detailList: []
},
detailList: [],
},
//
workDetail: false,
@ -633,6 +864,7 @@ export default {
pageSize: 10,
planId: null,
planCode: null,
planName: null,
planType: "inspection",
orderCode: null,
planWorkshop: null,
@ -644,7 +876,7 @@ export default {
orderStart: null,
orderEnd: null,
equipmentCode: null,
orderStatus: '1',
orderStatus: "1",
orderCost: null,
planPerson: null,
orderCostTime: null,
@ -666,7 +898,7 @@ export default {
//
form: {},
//
rules: {}
rules: {},
};
},
created() {
@ -680,20 +912,20 @@ export default {
},
//
setWorkCenter() {
getWorkCenter().then(response => {
getWorkCenter().then((response) => {
this.workCenterList = response.data;
})
});
},
//
showWork(row) {
this.loading = true;
this.reset();
this.standardListVo = [];
const orderId = row.orderId || this.ids
getInspectionWork(orderId).then(response => {
const orderId = row.orderId || this.ids;
getInspectionWork(orderId).then((response) => {
this.workVO = response.data;
for (let i = 0; i < this.workVO.detailList.length; i++) {
for (let j = 0; j < this.workVO.detailList[i].standardList.length; j++) {
for (let j = 0;j < this.workVO.detailList[i].standardList.length;j++) {
this.workVO.detailList[i].standardList[j].itemName = this.workVO.detailList[i].itemName;
this.standardListVo.push(this.workVO.detailList[i].standardList[j]);
}
@ -701,12 +933,11 @@ export default {
this.loading = false;
this.workDetail = true;
});
},
/** 查询巡检记录列表 */
getList() {
this.loading = true;
listDeviceOrder(this.queryParams).then(response => {
listDeviceOrder(this.queryParams).then((response) => {
this.inspectionWorkList = response.rows;
this.total = response.total;
this.loading = false;
@ -734,7 +965,7 @@ export default {
orderStart: null,
orderEnd: null,
equipmentCode: null,
orderStatus: '1',
orderStatus: "1",
orderCost: null,
planPerson: null,
orderCostTime: null,
@ -771,9 +1002,9 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.orderId)
this.single = selection.length !== 1
this.multiple = !selection.length
this.ids = selection.map((item) => item.orderId);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
@ -784,8 +1015,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const orderId = row.orderId || this.ids
getInspectionWork(orderId).then(response => {
const orderId = row.orderId || this.ids;
getInspectionWork(orderId).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改巡检记录";
@ -793,16 +1024,16 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.orderId != null) {
updateInspectionWork(this.form).then(response => {
updateInspectionWork(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInspectionWork(this.form).then(response => {
addInspectionWork(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -814,25 +1045,32 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const orderIds = row.orderId || this.ids;
this.$modal.confirm('是否确认删除巡检记录编号为"' + orderIds + '"的数据项?').then(function () {
this.$modal
.confirm('是否确认删除巡检记录编号为"' + orderIds + '"的数据项?')
.then(function () {
return delInspectionWork(orderIds);
}).then(() => {
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('device/inspectionWork/export', {
...this.queryParams
}, `inspectionWork_${new Date().getTime()}.xlsx`)
}
}
this.download(
"device/inspectionWork/export",
{
...this.queryParams,
},
`inspectionWork_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style>
.demo-image__lazy{
.demo-image__lazy {
height: 400px;
overflow-y: auto;
}

File diff suppressed because it is too large Load Diff

@ -1,6 +1,13 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="车间" prop="workshop">
<el-input
v-model="queryParams.workshop"
@ -41,7 +48,11 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="实际运行时间;运行时间-故障时间" prop="actualOperationTime">
<el-form-item
v-if="false"
label="实际运行时间;运行时间-故障时间"
prop="actualOperationTime"
>
<el-input
v-model="queryParams.actualOperationTime"
placeholder="请输入实际运行时间;运行时间-故障时间"
@ -155,12 +166,21 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
@ -173,7 +193,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['device:operation:add']"
>新增</el-button>
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -184,7 +205,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:operation:edit']"
>修改</el-button>
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -195,7 +217,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['device:operation:remove']"
>删除</el-button>
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -205,41 +228,166 @@
size="mini"
@click="handleExport"
v-hasPermi="['device:operation:export']"
>导出</el-button>
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="operationList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="operationList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column v-if="false" label="主键" align="center" prop="id" />
<el-table-column width="60" align="center" label="序号" type="index"></el-table-column>
<el-table-column v-if="false" width="100" label="工厂" align="center" prop="factoryCode" />
<el-table-column width="120" label="日期" align="center" prop="createTime" >
<el-table-column
width="60"
align="center"
label="序号"
type="index"
></el-table-column>
<el-table-column
v-if="false"
width="100"
label="工厂"
align="center"
prop="factoryCode"
/>
<el-table-column
width="120"
label="日期"
align="center"
prop="createTime"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column width="120" label="车间" align="center" prop="workshop" />
<el-table-column width="120" label="组线" align="center" prop="groupLine" />
<el-table-column width="300" label="设备名称" align="left" prop="equipmentName" />
<el-table-column width="120" label="设备编码" align="center" prop="equipmentCode" />
<el-table-column width="100" label="故障停机时间" align="center" prop="faultTime" />
<el-table-column width="100" label="实际运行时间" align="center" prop="actualOperationTime" />
<el-table-column width="100" label="运行时间" align="center" prop="operationTime" />
<el-table-column width="100" label="故障率" align="center" prop="failureRate" />
<el-table-column width="100" label="故障次数" align="center" prop="failureTimes" />
<el-table-column width="100" label="停机次数" align="center" prop="shutdownTimes" />
<el-table-column width="200" label="故障描述" align="center" prop="failureDescription" />
<el-table-column width="200" label="原因分析" align="center" prop="reasonAnalyze" />
<el-table-column width="200" label="设备状态描述" align="center" prop="equStatusDes" />
<el-table-column width="200" label="处理方式" align="center" prop="handlingMethod" />
<el-table-column width="200" label="更换备件" align="center" prop="replaceSpare" />
<el-table-column width="100" label="维修人" align="center" prop="repairPerson" />
<el-table-column v-if="false" label="备用字段1" align="center" prop="attr1" />
<el-table-column v-if="false" label="备用字段2" align="center" prop="attr2" />
<el-table-column v-if="false" label="备用字段3" align="center" prop="attr3" />
<el-table-column width="120" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<el-table-column
width="120"
label="车间"
align="center"
prop="workshop"
/>
<el-table-column
width="120"
label="组线"
align="center"
prop="groupLine"
/>
<el-table-column
width="300"
label="设备名称"
align="left"
prop="equipmentName"
/>
<el-table-column
width="120"
label="设备编码"
align="center"
prop="equipmentCode"
/>
<el-table-column
width="100"
label="故障停机时间"
align="center"
prop="faultTime"
/>
<el-table-column
width="100"
label="实际运行时间"
align="center"
prop="actualOperationTime"
/>
<el-table-column
width="100"
label="运行时间"
align="center"
prop="operationTime"
/>
<el-table-column
width="100"
label="故障率"
align="center"
prop="failureRate"
/>
<el-table-column
width="100"
label="故障次数"
align="center"
prop="failureTimes"
/>
<el-table-column
width="100"
label="停机次数"
align="center"
prop="shutdownTimes"
/>
<el-table-column
width="200"
label="故障描述"
align="left"
prop="failureDescription"
/>
<el-table-column
width="200"
label="原因分析"
align="left"
prop="reasonAnalyze"
/>
<el-table-column
width="200"
label="设备状态描述"
align="left"
prop="equStatusDes"
/>
<el-table-column
width="200"
label="处理方式"
align="left"
prop="handlingMethod"
/>
<el-table-column
width="200"
label="更换备件"
align="left"
prop="replaceSpare"
/>
<el-table-column
width="100"
label="维修人"
align="left"
prop="repairPerson"
/>
<el-table-column
v-if="false"
label="备用字段1"
align="center"
prop="attr1"
/>
<el-table-column
v-if="false"
label="备用字段2"
align="center"
prop="attr2"
/>
<el-table-column
v-if="false"
label="备用字段3"
align="center"
prop="attr3"
/>
<el-table-column
width="120"
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
@ -247,7 +395,8 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:operation:edit']"
>修改</el-button>
>修改</el-button
>
<el-button
v-if="false"
size="mini"
@ -255,13 +404,14 @@
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:operation:remove']"
>删除</el-button>
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -278,7 +428,11 @@
<el-input v-model="form.groupLine" placeholder="请输入组线" />
</el-form-item>
<el-form-item label="设备" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入设备" :disabled="true"/>
<el-input
v-model="form.equipmentName"
placeholder="请输入设备"
:disabled="true"
/>
</el-form-item>
<el-form-item v-if="false" label="设备编码" prop="equipmentCode">
<el-input v-model="form.equipmentCode" placeholder="请输入设备编码" />
@ -287,31 +441,62 @@
<el-input v-model="form.faultTime" placeholder="请输入故障时间" />
</el-form-item>
<el-form-item label="实际运行时间" prop="actualOperationTime">
<el-input v-model="form.actualOperationTime" placeholder="请输入实际运行时间;运行时间-故障时间" />
<el-input
v-model="form.actualOperationTime"
placeholder="请输入实际运行时间;运行时间-故障时间"
/>
</el-form-item>
<el-form-item label="运行时间" prop="operationTime">
<el-input v-model="form.operationTime" placeholder="请输入运行时间" />
</el-form-item>
<el-form-item v-if="false" label="故障率" prop="failureRate">
<el-input v-model="form.failureRate" placeholder="请输入故障率" :disabled="true"/>
<el-input
v-model="form.failureRate"
placeholder="请输入故障率"
:disabled="true"
/>
</el-form-item>
<el-form-item label="故障描述" prop="failureDescription">
<el-input v-model="form.failureDescription" placeholder="请输入故障描述" :disabled="true"/>
<el-input
v-model="form.failureDescription"
placeholder="请输入故障描述"
:disabled="true"
/>
</el-form-item>
<el-form-item label="原因分析" prop="reasonAnalyze">
<el-input v-model="form.reasonAnalyze" placeholder="请输入原因分析" :disabled="true"/>
<el-input
v-model="form.reasonAnalyze"
placeholder="请输入原因分析"
:disabled="true"
/>
</el-form-item>
<el-form-item label="处理方式" prop="handlingMethod">
<el-input v-model="form.handlingMethod" placeholder="请输入处理方式" :disabled="true"/>
<el-input
v-model="form.handlingMethod"
placeholder="请输入处理方式"
:disabled="true"
/>
</el-form-item>
<el-form-item label="维修人" prop="repairPerson">
<el-input v-model="form.repairPerson" placeholder="请输入维修人" :disabled="true"/>
<el-input
v-model="form.repairPerson"
placeholder="请输入维修人"
:disabled="true"
/>
</el-form-item>
<el-form-item label="设备状态描述" prop="equStatusDes">
<el-input v-model="form.equStatusDes" placeholder="请输入设备状态描述" :disabled="true"/>
<el-input
v-model="form.equStatusDes"
placeholder="请输入设备状态描述"
:disabled="true"
/>
</el-form-item>
<el-form-item label="更换备件" prop="replaceSpare">
<el-input v-model="form.replaceSpare" placeholder="请输入更换备件" :disabled="true"/>
<el-input
v-model="form.replaceSpare"
placeholder="请输入更换备件"
:disabled="true"
/>
</el-form-item>
<el-form-item v-if="false" label="工厂" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂" />
@ -338,8 +523,14 @@
</template>
<script>
import { listOperation, getOperation, delOperation, addOperation, updateOperation } from "@/api/device/operation";
import {parseTime} from "../../../utils/ruoyi";
import {
listOperation,
getOperation,
delOperation,
addOperation,
updateOperation,
} from "@/api/device/operation";
import { parseTime } from "../../../utils/ruoyi";
export default {
name: "Operation",
@ -347,31 +538,35 @@ export default {
return {
//
pickerOptions: {
shortcuts: [{
text: '最近一周',
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
picker.$emit("pick", [start, end]);
},
},
],
},
//
loading: true,
@ -420,9 +615,9 @@ export default {
//
rules: {
delFlag: [
{ required: true, message: "删除标识不能为空", trigger: "blur" }
{ required: true, message: "删除标识不能为空", trigger: "blur" },
],
}
},
};
},
created() {
@ -433,7 +628,7 @@ export default {
/** 查询设备运行记录列表 */
getList() {
this.loading = true;
listOperation(this.queryParams).then(response => {
listOperation(this.queryParams).then((response) => {
this.operationList = response.rows;
this.total = response.total;
this.loading = false;
@ -488,9 +683,9 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
@ -501,8 +696,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getOperation(id).then(response => {
const id = row.id || this.ids;
getOperation(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改设备运行记录";
@ -510,16 +705,16 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateOperation(this.form).then(response => {
updateOperation(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOperation(this.form).then(response => {
addOperation(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -531,19 +726,27 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除设备运行记录编号为"' + ids + '"的数据项?').then(function() {
this.$modal
.confirm('是否确认删除设备运行记录编号为"' + ids + '"的数据项?')
.then(function () {
return delOperation(ids);
}).then(() => {
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('device/operation/export', {
...this.queryParams
}, `operation_${new Date().getTime()}.xlsx`)
}
}
this.download(
"device/operation/export",
{
...this.queryParams,
},
`operation_${new Date().getTime()}.xlsx`
);
},
},
};
</script>

File diff suppressed because it is too large Load Diff

@ -9,6 +9,14 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="点检工单号" prop="orderCode">
<el-input
v-model="queryParams.orderCode"
placeholder="请输入点检工单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计划编码" prop="planCode">
<el-input
v-model="queryParams.planCode"
@ -17,10 +25,10 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工单号" prop="orderCode">
<el-form-item label="计划名称" prop="planName">
<el-input
v-model="queryParams.orderCode"
placeholder="请输入工单号"
v-model="queryParams.planName"
placeholder="请输入计划名称"
clearable
@keyup.enter.native="handleQuery"
/>
@ -43,16 +51,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="循环周期" prop="planLoop">
<el-select v-model="queryParams.planLoopType" placeholder="请选择循环周期" clearable>
<el-option
v-for="dict in dict.type.device_loop_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="false" label="循环周期" prop="planLoop">
<el-input
v-model="queryParams.planLoop"
@ -101,7 +100,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备名称" prop="equipmentCode">
<el-form-item label="设备名称" prop="equipmentName">
<el-input
v-model="queryParams.equipmentName"
placeholder="请输入设备名称"
@ -220,6 +219,16 @@
value-format="yyyy-MM-dd"
placeholder="请选择更新时间">
</el-date-picker>
</el-form-item>
<el-form-item label="循环周期" prop="planLoopType">
<el-select v-model="queryParams.planLoopType" placeholder="请选择循环周期" clearable>
<el-option
v-for="dict in dict.type.device_loop_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="循环开始时间" prop="planLoopStart">
<el-date-picker
@ -318,7 +327,7 @@
<el-table-column v-if="false" label="主键" align="center" prop="orderId" />
<el-table-column v-if="false" label="计划id" align="center" prop="planId" />
<el-table-column width="150" label="计划编码" align="center" prop="planCode" />
<el-table-column width="150" label="计划名称" align="center" prop="planName" />
<el-table-column width="200" label="计划名称" align="center" prop="planName" />
<el-table-column v-if="false" label="计划类型" align="center" prop="planType" />
<el-table-column width="150" label="点检单号" align="center" prop="orderCode" fixed>
<template slot-scope="scope">
@ -331,7 +340,10 @@
</el-table-column>
<el-table-column label="车间编码" align="center" prop="planWorkshop" />
<el-table-column width="150" label="车间" align="center" prop="workCenterName"/>
<el-table-column width="100" label="设备编码" align="center" prop="equipmentCode" />
<el-table-column width="200" label="设备名称" align="center" prop="equipmentName" />
<el-table-column width="150" label="点检时间" align="center" prop="orderStart"/>
<el-table-column label="点检人" align="center" prop="planPerson" />
<el-table-column v-if="false" label="产线" align="center" prop="planProdLine" />
<el-table-column label="循环周期" align="center" prop="planLoop" />
<el-table-column width="120" label="循环周期类型" align="center" prop="planLoopType" >
@ -359,15 +371,12 @@
<span>{{ parseTime(scope.row.orderEnd, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="100" label="设备编码" align="center" prop="equipmentCode" />
<el-table-column width="200" label="设备名称" align="center" prop="equipmentName" />
<el-table-column label="工单状态" align="center" prop="orderStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.device_order_status" :value="scope.row.orderStatus"/>
</template>
</el-table-column>
<el-table-column v-if="false" label="工单费用" align="center" prop="orderCost" />
<el-table-column label="点检人" align="center" prop="planPerson" />
<el-table-column v-if="false" label="工单用时" align="center" prop="orderCostTime" />
<el-table-column v-if="false" label="签字" align="center" prop="orderSignPerson" />
<el-table-column v-if="false" label="工厂" align="center" prop="factoryCode" />
@ -624,6 +633,7 @@ export default {
pageSize: 10,
planId: null,
planCode: null,
planName: null,
planType: "spotInspection",
orderCode: null,
planWorkshop: null,

File diff suppressed because it is too large Load Diff

@ -306,6 +306,11 @@
<el-table-column v-if="false" label="主键" align="center" prop="planId"/>
<el-table-column width="150" label="计划编码" align="center" prop="planCode" fixed/>
<el-table-column width="150" label="计划名称" align="center" prop="planName"/>
<el-table-column width="150" label="生成规则" align="center" prop="calculationRule">
<template slot-scope="scope">
{{ scope.row.calculationRule == "0" ? "按照固定周期" : scope.row.one == "1" ? "按照上次保养时间" : "单次" }}
</template>
</el-table-column>
<el-table-column label="车间编码" align="center" prop="planWorkshop"/>
<el-table-column width="150" label="车间" align="center" prop="workCenterName"/>
<el-table-column v-if="false" label="产线" align="center" prop="planProdLine"/>
@ -468,6 +473,7 @@
<el-date-picker
v-model="form.planLoopStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
@ -1461,7 +1467,7 @@ export default {
// 线
getGroupLine().then(response => {
this.groupLineList = response.data;
this.equipmentQuery.groupLine = response.data[0].equipmentCode;
// this.equipmentQuery.groupLine = response.data[0].equipmentCode;
this.getEquList();
})
@ -1696,6 +1702,10 @@ export default {
return
}
}
if(this.form.calculationRule == "2"){
this.form.planTimeArray = null;
this.form.planLoopEnd = this.form.planLoopStart;
}
this.planLoading = true;
if (this.form.planId != null) {
this.form.personList = this.selectPersonList.map(item => {

@ -0,0 +1,739 @@
<template>
<v-scale-screen width="1920" height="1080" :fullScreen="false">
<div class="app-container home" style="">
<div class="head">
<div class="head-content">
<div class="title">烘房生产监控看板</div>
</div>
</div>
<div class="content">
<div class="itemtop">
<div class="left">
<div class="box">
<div class="name name1">当天烘房情况</div>
</div>
<div class="cards">
<div
class="card-item"
:class="[[index + 1] % 7 == 0 ? 'isactive' : 'active1']"
>
<div class="card-header">
<span class="card-header-left"
>生产总数:<span class="color1">80</span></span
>
</div>
<div
class="card-box"
v-for="(card, index) in dataPropceshidata"
:key="index"
></div>
</div>
</div>
</div>
<div class="left left1">
<div class="cards">
<div
class="card-item card-item1"
:class="[[index + 1] % 7 == 0 ? 'isactive' : 'active1']"
>
<div class="card-header">
<span class="card-header-left">烘房</span>
</div>
<div
class="card-box"
v-for="(card, index) in dataPropceshidata"
:key="index"
></div>
</div>
</div>
</div>
<div class="left">
<div class="box">
<div class="name name1">当天质量情况</div>
</div>
<div class="cards">
<div
class="card-item"
:class="[[index + 1] % 7 == 0 ? 'isactive' : 'active1']"
>
<div class="card-header">
<span class="card-header-left"
>车不合格异常数量: <span class="color2">04</span> </span
>
</div>
<div class="card-box">
<div class="list1">
<div class="listitem1">烘房</div>
<div class="listitem1">产量</div>
<div class="listitem1">标准产能</div>
</div>
</div>
<div
class="card-box card-box1"
>
<div class="list" v-for="(card, index) in dataPropceshidata"
:key="index">
<div class="listitem1">烘房</div>
<div class="listitem1">产量</div>
<div class="listitem1">标准产能</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="itembottom">
<div class="left"></div>
</div>
</div>
<!-- <div class="item"></div> -->
<!-- <div class="item"></div> -->
</div>
</v-scale-screen>
</template>
<script>
import {
getBoardFactory,
getMesBoardEquProductionToday,
getBoardShifts,
getRepairWorkOrder,
getEquipmentInfo,
getRepairQuantity,
equipmentIntactRate,
equipmentStability,
getDeviceRefreshTime,
getdictlist,
} from "@/api/kanban/equipment";
import { dryRoomDataCarousel } from "@/api/kanban/dryingroom";
import * as echarts from "echarts";
import moment from "moment";
// import Echarts3D from "./echarts3d.vue";
// import Echarts3D2 from "./echarts3d2.vue";
export default {
name: "Index",
components: {},
data() {
return {
gettimedata: "",
selectxt: null,
selectxtclasses: null,
getLineList: [],
classesList: [],
number1: 0,
number2: 0,
number3: 0,
number4: 0,
nameList: [
"成型机一",
"成型机二",
"成型机三",
"成型机四",
"成型机五",
"成型机六",
"成型机五",
"成型机六",
],
valueList: [1639, 1422, 1306, 1131, 1040, 732, 1040, 732],
optionDatalist1: [],
optionDatalist2: [],
optionDatalist3: [],
optionDatalist4: [],
colorlist: ["#005aff", "#f8b551"],
datetime: null,
time1: null,
getlist: [],
repairlist: [],
equipmentlist: [],
equipmentrepairlist: [],
equipmentstabilizelist: [],
equipmentinfo: [],
RefreshTime: null,
dictlist: [],
StartArray: [],
dataPropceshidata: [{}, {}, {}, {}, {}, {}],
dataPropdata: [],
cards: {
data1: [],
data2: [],
},
cardss: [],
};
},
created() {},
destroyed() {
clearInterval(this.time1);
this.time1 = null;
},
mounted() {
// this.datetime = moment().subtract(2, "day").format("yyyy-MM-DD");
//console.log('zhuanhuahou',this.dateRangeone)
const { createData } = this;
createData();
this.gettime();
},
methods: {
back() {
this.$router.push({ path: "/index" });
},
getTagText(value) {
//
if (value === "0") {
return "无车";
} else if (value === "1") {
return "有车";
}
},
getTextColor(value) {
if (value === "0") {
return "#26fcd8";
} else if (value === "1") {
return "#ea6027";
}
},
getTagModel(value) {
//
if (value === "0") {
return "手动";
} else if (value === "1") {
return "自动";
}
},
gettime() {
this.gettimedata = moment().format("YYYY-MM-DD HH:mm:ss ");
setInterval(() => {
this.gettimedata = moment().format("YYYY-MM-DD HH:mm:ss ");
}, 1000);
},
selectline() {
const _this = this;
this.optionDatalist1 = [];
this.optionDatalist2 = [];
this.optionDatalist3 = [];
this.optionDatalist4 = [];
},
createData() {
this.cards.data1 = new Array(8).fill(0).map((foo, i) => ({
i: i + 1,
}));
this.cards.data2 = new Array(8).fill(0).map((foo, i) => ({
i: i + 9,
}));
this.cards.data3 = new Array(5).fill(0).map((foo, i) => ({
i: i === 0 ? 17 : i === 1 ? 18 : i === 2 ? 61 : i === 3 ? 62 : 63,
}));
// console.log(this.cards.data1)
dryRoomDataCarousel({ factory: 999 }).then((response) => {
if (response.data) {
this.dataPropdata = response.data.dryingroomList;
// console.log(response);
this.cards.data1 = this.cards.data1.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
this.cards.data2 = this.cards.data2.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
this.cards.data3 = this.cards.data3.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
this.cardss = this.cardss.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
console.log(this.cardss, this.cards, "wwwwwwww", this.dataPropdata);
}
});
},
handleScroll(event) {
//
this.createData();
// if (event==0){
// const that = this;
//
// }
//
// console.log(scrollTop);
//
// ...
},
//
},
};
</script>
<style lang="scss" scoped>
.app-container {
padding: 0px 24px;
}
.home {
width: 100%;
background: url("../../../assets/images/bg1.jpg") no-repeat;
background-size: 100% 100%;
background-color: #050711;
.head {
width: 100%;
height: 74px;
position: relative;
.head-content {
height: 74px;
background-image: url("../../../assets/images/bg-head.png");
background-repeat: no-repeat;
background-size: 100% 100%;
text-align: center;
.title {
font-size: 42px;
font-weight: 400;
color: #ffffff;
}
}
.head-logo {
position: absolute;
left: 0px;
top: 1px;
img {
height: 38px;
// width: ;
}
}
.back {
position: absolute;
right: 0px;
top: 5px;
}
}
.content {
margin-top: 63px;
.itemtop {
display: flex;
justify-content: space-between;
align-items: center;
.left {
.box {
width: 525px;
height: 62px;
background: url("../../../assets/images/bg2.png") no-repeat;
background-size: 100% 100%;
padding: 0px 21px 0px 25px;
box-sizing: border-box;
display: flex;
align-items: center;
background-color: #1f3668;
.name {
min-width: 300px;
letter-spacing: 4px;
color: #ffffff;
font-size: 22px;
}
.number {
min-width: 120px;
height: 50px;
border: 2px solid #274583;
border-radius: 5px;
padding: 1px;
box-sizing: border-box;
.number1 {
text-align: center;
height: 100%;
line-height: 43px;
color: #ffa95b;
border-radius: 7px;
font-size: 32px;
letter-spacing: 3px;
background-color: #294584;
}
}
.unit {
color: #b7b9c1;
margin-left: 30px;
font-size: 24px;
}
}
.cards {
width: 525px;
.card-item {
width: 525px;
height: 387px;
background: url("../../../assets/images/bg3.png") no-repeat;
background-size: 100% 100%;
padding: 10px;
background-color: #192c56;
// display: flex;
// flex-direction: column;
}
.card-item1 {
width: 750px;
height: 450px;
background: url("../../../assets/images/bg3.png") no-repeat;
background-size: 100% 100%;
padding: 10px;
background-color: #0e1d3a;
// display: flex;
// flex-direction: column;
}
.card-header {
width: 450px;
height: 13%;
margin: auto;
align-items: center;
text-align: center;
color: #f6f3f9;
font-size: 26px;
margin-top: 10px;
.card-header-left {
display: inline-block;
min-width: 100px;
padding: 16px 26px;
letter-spacing: 8px;
background: linear-gradient(to right, #192c56, #11518f, #192c56);
.color1 {
color: #0195fd;
}
.color2 {
color: #fb0102;
}
}
}
.card-box {
margin-top: 35px;
position: relative;
.list1 {
background-color: #0d61aa;
color: #ffffff;
border-radius: 10px;
display: flex;
justify-content: space-around;
align-items: center;
font-size: 22px;
min-height: 60px;
}
.list1::before {
content: "";
position: absolute;
bottom: 40px;
left: 3%;
transform: translateX(-50%);
border-width: 10px;
border-style: solid;
border-color: transparent transparent #0496FD transparent;
transform: rotate(315deg);
}
.list {
background-color: #114881;
color: #46AFF7;
border-radius: 10px;
display: flex;
justify-content: space-around;
align-items: center;
font-size: 22px;
min-height: 60px;
margin-bottom: 5px;
}
.list::before {
content: "";
position: absolute;
bottom: 40px;
left: 3%;
transform: translateX(-50%);
border-width: 10px;
border-style: solid;
border-color: transparent transparent #0496FD transparent;
transform: rotate(315deg);
}
}
.card-box1{
margin-top: 5px;
}
.ring-charts {
height: 55%;
}
}
}
.left1 {
width: 750px;
}
}
.itembottom {
margin-top: 19px;
display: flex;
justify-content: space-around;
.left {
// width: 100%;
// justify-content: space-between;
// display: flex;
}
}
}
}
.titlebox {
width: 431px;
height: 38px;
background: url("../../../assets/images/bg-title.png") no-repeat;
background-size: 100% 100%;
// text-align: center;
font-size: 20px;
font-weight: bold;
color: #ffffff;
line-height: 38px;
letter-spacing: 2px;
text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
padding-left: 60px;
// .titlename{
// position: relative;
// left: 24px;
// }
}
.factory {
display: flex;
align-items: center;
// justify-content: space-around;
}
.selectborder {
background-color: transparent;
border-radius: 4px;
// border: 2px solid #27408c;
position: relative;
display: flex;
align-items: center;
justify-content: space-around;
width: 350px;
margin-left: 50px;
}
.selectborder1 {
background-color: transparent;
border-radius: 4px;
// border: 2px solid #27408c;
position: relative;
display: flex;
align-items: center;
justify-content: space-around;
width: 88px;
margin-left: 25px;
}
.selectborder select {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 100%;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-size: 25px;
font-weight: 400;
color: #ffffff;
line-height: 42px;
}
.selectborder option {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 100%;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding-left: 20px;
font-size: 25px;
font-weight: 500;
color: #3fa2ff;
border-radius: 0%;
}
.selectborder1 option {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 200px;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding-left: 20px;
font-size: 25px;
font-weight: 500;
color: #3fa2ff;
border-radius: 0%;
}
.selectborder:after {
content: "";
width: 24px;
height: 24px;
background: url(../../../assets/images/xiala.png) no-repeat center;
/*通过定位将图标放在合适的位置*/
position: absolute;
right: 0px;
top: 25%;
/*给自定义的图标实现点击下来功能*/
pointer-events: none;
}
.selectborder1:after {
content: "";
width: 24px;
height: 24px;
background: url(../../../assets/images/xiala.png) no-repeat center;
/*通过定位将图标放在合适的位置*/
position: absolute;
right: 0px;
top: 25%;
/*给自定义的图标实现点击下来功能*/
pointer-events: none;
}
::v-deep .el-button--primary {
color: #ffffff;
background-color: #325e82;
border-color: #0a0f19;
}
.active1 {
background-color: #0d1b2f;
}
.active2 {
// background-color: #04060E;
}
::-webkit-scrollbar {
width: 3px;
height: 0px;
background-color: #0c0642;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 8px;
background-color: #07356a;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
border-radius: 8px;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
background-color: #0091ff;
}
::v-deep .el-date-editor .el-range-input {
background-color: #142944;
color: #ffffff;
}
::v-deep .el-range-input::placeholder {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
::v-deep .el-range-separator {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
::v-deep .el-range-editor--medium .el-range-separator {
line-height: 35px;
}
::v-deep .el-input__icon .el-range__icon .el-icon-date {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
.fleft {
float: left;
}
.fright {
float: right;
}
.clearfix::after {
content: "";
display: block;
clear: both;
}
#cards .isactive {
margin-right: 0px;
}
</style>

@ -0,0 +1,824 @@
<template>
<v-scale-screen width="1920" height="1080" :fullScreen="false">
<div class="app-container home" style="">
<div class="head">
<div class="head-content">
<div class="title">烘房状态监控看板</div>
</div>
</div>
<div class="content">
<div class="itemtop">
<div class="left">
<!-- <div class="box">
<div class="name name1">烘房运行数量:</div>
<div class="number">
<div class="number1">00</div>
</div>
<div class="unit"></div>
</div>
<div class="box">
<div class="name">烘房自动模式数量:</div>
<div class="number">
<div class="number1">00</div>
</div>
<div class="unit"></div>
</div> -->
<div class="box" :key="item.title" v-for="item in digitalFlopData">
<div class="name">{{ item.title }}:</div>
<div class="number">
<div class="number1">{{ item.number.number }}</div>
</div>
<div class="unit">{{ item.unit }}</div>
</div>
</div>
</div>
<div class="itembottom">
<div class="left">
<div id="cards">
<div
class="card-item fleft clearfix"
v-for="(card, index) in dataPropdata"
:key="index"
:class="[[index + 1] % 7 == 0 ? 'isactive' : 'active1']"
>
<div class="card-header">
<span class="card-header-left">烘房{{ card.i }}</span>
</div>
<div class="card-box"></div>
<div class="card-footer">
<div class="card-footer-item">
<div class="footer-detail">
<span
:style="{
fontSize: '22px',
fontWeight: 'bold',
color: '#FDA45D',
textAlign: 'right',
}"
>
{{ getTagModel(card.status) }}
</span>
</div>
<div class="footer-title">烘房模式</div>
</div>
<div class="card-footer-item">
<div class="footer-detail">
<span
:style="{
fontSize: '22px',
fontWeight: 'bold',
color: '#93FE66',
textAlign: 'right',
}"
>
{{ getTagText(card.dollyNumber) }}
</span>
</div>
<div class="footer-title">门前数量</div>
</div>
</div>
<div class="card-footer">
<div class="card-footer-item">
<div class="footer-detail">
<span
style="
font-size: 22px;
font-weight: bold;
color: #fda45d;
text-align: right;
"
>{{ card.temperature }}
<span
style="
font-weight: normal;
font-size: 18px;
color: #ffffff;
"
></span
></span
>
</div>
<div class="footer-title">烘房温度</div>
</div>
<div class="card-footer-item">
<div class="footer-detail">
<span
style="
font-size: 22px;
font-weight: bold;
color: #93fe66;
text-align: right;
"
>{{ card.waitmin
}}<span
style="
font-weight: normal;
font-size: 18px;
color: #ffffff;
"
>min</span
></span
>
</div>
<div class="footer-title">保持时长</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="item"></div> -->
<!-- <div class="item"></div> -->
</div>
</v-scale-screen>
</template>
<script>
import {
dryRoomDataCarousel,
getDryingRoomList,
} from "@/api/kanban/dryingroom";
import * as echarts from "echarts";
import moment from "moment";
// import Echarts3D from "./echarts3d.vue";
// import Echarts3D2 from "./echarts3d2.vue";
export default {
name: "Index",
components: {},
data() {
return {
gettimedata: "",
selectxt: null,
selectxtclasses: null,
getLineList: [],
classesList: [],
number1: 0,
number2: 0,
number3: 0,
number4: 0,
nameList: [
"成型机一",
"成型机二",
"成型机三",
"成型机四",
"成型机五",
"成型机六",
"成型机五",
"成型机六",
],
valueList: [1639, 1422, 1306, 1131, 1040, 732, 1040, 732],
optionDatalist1: [],
optionDatalist2: [],
optionDatalist3: [],
optionDatalist4: [],
colorlist: ["#005aff", "#f8b551"],
datetime: null,
time1: null,
time2: null,
getlist: [],
repairlist: [],
equipmentlist: [],
equipmentrepairlist: [],
equipmentstabilizelist: [],
equipmentinfo: [],
RefreshTime: null,
dictlist: [],
StartArray: [],
dataPropceshidata: [],
dataPropdata: [],
cards: {
data1: [],
data2: [],
},
cardss: [],
digitalFlopData: [],
dryingRoomList: [],
cxjZCNumber: 0,
};
},
created() {},
destroyed() {
clearInterval(this.time1);
this.time1 = null;
clearInterval(this.time2);
this.time2 = null;
},
mounted() {
// this.datetime = moment().subtract(2, "day").format("yyyy-MM-DD");
//console.log('zhuanhuahou',this.dateRangeone)
const { createData } = this;
createData();
this.createData1();
this.time2 = setInterval(() => {
this.createData1();
}, 5000);
this.gettime();
},
methods: {
back() {
this.$router.push({ path: "/index" });
},
getTagText(value) {
//
if (value === "0") {
return "无车";
} else if (value === "1") {
return "有车";
}
},
getTextColor(value) {
if (value === "0") {
return "#26fcd8";
} else if (value === "1") {
return "#ea6027";
}
},
getTagModel(value) {
//
if (value === "0") {
return "手动";
} else if (value === "1") {
return "自动";
}
},
gettime() {
this.gettimedata = moment().format("YYYY-MM-DD HH:mm:ss ");
this.time1 = setInterval(() => {
this.gettimedata = moment().format("YYYY-MM-DD HH:mm:ss ");
}, 1000);
},
selectline() {
const _this = this;
this.optionDatalist1 = [];
this.optionDatalist2 = [];
this.optionDatalist3 = [];
this.optionDatalist4 = [];
},
createData() {
this.cards.data1 = new Array(8).fill(0).map((foo, i) => ({
i: i + 1,
}));
this.cards.data2 = new Array(8).fill(0).map((foo, i) => ({
i: i + 9,
}));
this.cards.data3 = new Array(5).fill(0).map((foo, i) => ({
i: i === 0 ? 17 : i === 1 ? 18 : i === 2 ? 61 : i === 3 ? 62 : 63,
}));
// console.log(this.cards.data1)
dryRoomDataCarousel({ factory: 999 }).then((response) => {
if (response.data) {
this.dataPropdata = response.data.dryingroomList;
// console.log(response);
this.cards.data1 = this.cards.data1.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
this.cards.data2 = this.cards.data2.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
this.cards.data3 = this.cards.data3.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
this.cardss = this.cardss.map((card) => {
const matchingIndex = response.data.dryingroomList.find(
(index) => index.i === card.i
);
if (matchingIndex) {
return {
...card,
title: "烘房" + matchingIndex.i,
model: matchingIndex.status,
dollyNumber: matchingIndex.dollyNumber,
waitmin: matchingIndex.waitmin,
temperature: matchingIndex.temperature,
};
} else {
return card;
}
});
console.log(this.cardss, this.cards, "wwwwwwww", this.dataPropdata);
}
});
},
createData1() {
const that = this;
getDryingRoomList({
factory: 999,
}).then((response) => {
if (response.data) {
// console.log(response)
this.cxjZCNumber = response.data.cxzc;
this.cxjYCNumber = response.data.cxyc;
this.dryingRoomList = response.data.result;
this.digitalFlopData = [
{
title: "成型机运行",
number: {
number: this.cxjZCNumber,
content: "{nt}",
textAlign: "right",
style: {
fill: "#4d99fc",
fontWeight: "bold",
},
},
unit: "台",
},
{
title: "烘房运行(自动)",
number: {
number: response.data.hfauto,
content: "{nt}",
textAlign: "right",
style: {
fill: "#4d99fc",
fontWeight: "bold",
},
},
unit: "座",
},
{
title: "收坯机台运行",
number: {
number: response.data.spzc,
content: "{nt}",
textAlign: "right",
style: {
fill: "#4d99fc",
fontWeight: "bold",
},
},
unit: "台",
},
{
title: "成型缓存区数量",
number: {
number: response.data.hcnumber,
content: "{nt}",
textAlign: "right",
style: {
fill: "#4d99fc",
fontWeight: "bold",
},
},
unit: "个",
},
];
}
});
},
handleScroll(event) {
//
this.createData();
// if (event==0){
// const that = this;
//
// }
//
// console.log(scrollTop);
//
// ...
},
//
},
};
</script>
<style lang="scss" scoped>
.app-container {
padding: 0px 24px;
}
.home {
width: 100%;
background: url("../../../assets/images/bg1.jpg") no-repeat;
background-size: 100% 100%;
background-color: #050711;
.head {
width: 100%;
height: 74px;
position: relative;
.head-content {
height: 74px;
background-image: url("../../../assets/images/bg-head.png");
background-repeat: no-repeat;
background-size: 100% 100%;
text-align: center;
.title {
font-size: 42px;
font-weight: 400;
color: #ffffff;
}
}
.head-logo {
position: absolute;
left: 0px;
top: 1px;
img {
height: 38px;
// width: ;
}
}
.back {
position: absolute;
right: 0px;
top: 5px;
}
}
.content {
margin-top: 63px;
.itemtop {
display: flex;
justify-content: space-between;
align-items: center;
.left {
width: 100%;
justify-content: space-between;
display: flex;
.box {
width: 437px;
height: 92px;
background: url("../../../assets/images/bg2.png") no-repeat;
background-size: 100% 100%;
padding: 0px 21px 0px 25px;
box-sizing: border-box;
display: flex;
align-items: center;
.name {
min-width: 225px;
letter-spacing: 0px;
color: #ffffff;
font-size: 26px;
}
.name1 {
min-width: 220px;
letter-spacing: 25px;
}
.number {
min-width: 120px;
height: 50px;
border: 2px solid #274583;
border-radius: 5px;
padding: 1px;
box-sizing: border-box;
.number1 {
text-align: center;
height: 100%;
line-height: 43px;
color: #ffa95b;
border-radius: 7px;
font-size: 32px;
letter-spacing: 3px;
background-color: #294584;
}
}
.unit {
color: #b7b9c1;
margin-left: 20px;
font-size: 24px;
}
}
}
}
.itembottom {
margin-top: 19px;
display: flex;
justify-content: space-around;
.left {
// width: 100%;
// justify-content: space-between;
// display: flex;
}
}
}
}
.titlebox {
width: 431px;
height: 38px;
background: url("../../../assets/images/bg-title.png") no-repeat;
background-size: 100% 100%;
// text-align: center;
font-size: 20px;
font-weight: bold;
color: #ffffff;
line-height: 38px;
letter-spacing: 2px;
text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
padding-left: 60px;
// .titlename{
// position: relative;
// left: 24px;
// }
}
.factory {
display: flex;
align-items: center;
// justify-content: space-around;
}
.selectborder {
background-color: transparent;
border-radius: 4px;
// border: 2px solid #27408c;
position: relative;
display: flex;
align-items: center;
justify-content: space-around;
width: 350px;
margin-left: 50px;
}
.selectborder1 {
background-color: transparent;
border-radius: 4px;
// border: 2px solid #27408c;
position: relative;
display: flex;
align-items: center;
justify-content: space-around;
width: 88px;
margin-left: 25px;
}
.selectborder select {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 100%;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-size: 25px;
font-weight: 400;
color: #ffffff;
line-height: 42px;
}
.selectborder option {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 100%;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding-left: 20px;
font-size: 25px;
font-weight: 500;
color: #3fa2ff;
border-radius: 0%;
}
.selectborder1 option {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 200px;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding-left: 20px;
font-size: 25px;
font-weight: 500;
color: #3fa2ff;
border-radius: 0%;
}
.selectborder:after {
content: "";
width: 24px;
height: 24px;
background: url(../../../assets/images/xiala.png) no-repeat center;
/*通过定位将图标放在合适的位置*/
position: absolute;
right: 0px;
top: 25%;
/*给自定义的图标实现点击下来功能*/
pointer-events: none;
}
.selectborder1:after {
content: "";
width: 24px;
height: 24px;
background: url(../../../assets/images/xiala.png) no-repeat center;
/*通过定位将图标放在合适的位置*/
position: absolute;
right: 0px;
top: 25%;
/*给自定义的图标实现点击下来功能*/
pointer-events: none;
}
::v-deep .el-button--primary {
color: #ffffff;
background-color: #325e82;
border-color: #0a0f19;
}
.active1 {
background-color: #0d1b2f;
}
.active2 {
// background-color: #04060E;
}
::-webkit-scrollbar {
width: 3px;
height: 0px;
background-color: #0c0642;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 8px;
background-color: #07356a;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
border-radius: 8px;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
background-color: #0091ff;
}
#cards {
.card-item {
width: 254px;
height: 262px;
background: url("../../../assets/images/bg3.png") no-repeat;
background-size: 100% 100%;
padding: 10px;
margin-right: 15px;
margin-bottom: 20px;
// display: flex;
// flex-direction: column;
}
.card-header {
width: 180px;
height: 20%;
margin: auto;
align-items: center;
text-align: center;
color: #f6f3f9;
font-size: 24px;
margin-top: 10px;
.card-header-left {
display: inline-block;
min-width: 100px;
background-color: #0b3765;
box-shadow: 0px 3px 18px 12px #0b3765;
}
}
.ring-charts {
height: 55%;
}
.card-footer {
height: 25%;
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 25px;
}
.card-footer-item {
box-sizing: border-box;
width: 40%;
text-align: center;
.footer-title {
font-size: 22px;
margin-bottom: 5px;
color: #0593fd;
}
.footer-detail {
min-height: 46px;
text-align: center;
font-size: 20px;
color: #192c57;
font-size: 18px;
padding: 10px 10px 10px 10px;
box-sizing: border-box;
width: 100%;
background-color: #192c57;
border-radius: 3px;
.dv-digital-flop {
margin-right: 5px;
}
}
}
}
::v-deep .el-date-editor .el-range-input {
background-color: #142944;
color: #ffffff;
}
::v-deep .el-range-input::placeholder {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
::v-deep .el-range-separator {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
::v-deep .el-range-editor--medium .el-range-separator {
line-height: 35px;
}
::v-deep .el-input__icon .el-range__icon .el-icon-date {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
.fleft {
float: left;
}
.fright {
float: right;
}
.clearfix::after {
content: "";
display: block;
clear: both;
}
#cards .isactive {
margin-right: 0px;
}
</style>

@ -11,14 +11,24 @@
<el-form-item label="生产时间" prop="productDateArray">
<el-date-picker
v-model="queryParams.productDateArray"
format="yyyy-MM-dd"
type="daterange"
format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="班次" prop="shiftId">
<el-select v-model="queryParams.shiftId" default-first-option clearable>
<el-option
v-for="item in shiftList"
:key="item.shiftId"
:label="item.shiftDesc"
:value="item.shiftId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="产品编号" prop="productCode">
<el-input
v-model="queryParams.productCode"
@ -111,7 +121,7 @@ export default {
machineProList: [],
//
products: [],
shiftList: [],
//
title: "",
//
@ -125,6 +135,7 @@ export default {
workorderName: null,
parentOrder: null,
orderId: null,
shiftId: null,
orderCode: null,
productId: null,
productCode: null,
@ -140,7 +151,9 @@ export default {
created() {
this.getDate();
this.getList();
getProShifts().then(response => {
this.shiftList = response.data
})
},
methods: {
/**获取默认查询时间段**/
@ -163,10 +176,10 @@ export default {
if (this.queryParams.productDateArray != null) {
this.queryParams.productDateStart = moment(
this.queryParams.productDateArray[0]
).format("YYYY-MM-DD");
).format("YYYY-MM-DD HH:mm:ss");
this.queryParams.productDateEnd = moment(
this.queryParams.productDateArray[1]
).format("YYYY-MM-DD");
).format("YYYY-MM-DD HH:mm:ss");
}
this.loading = true;

@ -377,6 +377,7 @@
@change="handleEdit(scope.$index, scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column label="报工单编号" align="center" prop="reportCode" width="120" />
<el-table-column label="创建时间" align="center" prop="createTime" width="150" />
</el-table>
@ -434,6 +435,7 @@
</el-select>
</template>
</el-table-column>
<el-table-column label="报工单编号" align="center" prop="reportCode" width="120" />
<el-table-column label="创建时间" align="center" prop="createTime" width="150" />
<el-table-column fixed="right" label="操作" width="90">
<template slot-scope="scope">
@ -995,6 +997,8 @@ export default {
updateBy: null,
endReport: "0"
};
this.queryParams.workorderCode = "";
this.queryParams.machineCode = "";
this.resetForm("form");
this.libTabs = [];
this.libConsumeTabs = [];
@ -1264,6 +1268,8 @@ export default {
submitReportPS(this.reportRows).then((response) => {
this.$modal.msgSuccess("报工信息修改成功");
this.openReport = false;
this.queryParams.workorderCode = "";
this.queryParams.machineCode = "";
this.getList();
});
},
@ -1309,9 +1315,10 @@ export default {
this.openConsume = true;
this.titleConsume = "工单报工物料损耗详情";
this.queryParams.workorderCode = "";
this.queryParams.machineCode = "";
});
this.queryParams.workorderCode = sr.workorderCode;
//this.queryParams.workorderCode = sr.workorderCode;
//BOM
//this.queryParams.parentOrder = '0';
//getBomList(this.queryParams).then(response => {

@ -3,10 +3,9 @@
v-if="showFlag"
:visible.sync="showFlag"
:modal= false
width="1000px"
width="1100px"
>
<el-row :gutter="20">
<el-col :span="24" :xs="24">
<el-form :model="queryParams" ref="queryProjectForm" size="small" :inline="true" v-show="showSearch" label-width="105px" align="left">
<el-form-item label="检测项目名称" prop="ruleName">
@ -18,16 +17,13 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="检测方案名称" prop="projectType">
<el-select v-model="queryParams.projectType" filterable clearable placeholder="请选择检测方案">
<el-option
v-for="(item,index) in projectTypeOptions"
:key="index"
:label="item.projectTypeName"
:value="item.projectTypeCode">
</el-option>
</el-select>
<el-form-item v-show="false" label="检测项目名称" prop="projectType">
<el-input
v-model="queryParams.projectType"
placeholder="检测方案代码"
clearable
style="width: 240px"
/>
</el-form-item>
<el-form-item>
@ -35,6 +31,18 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="20">
<el-col :span="5" :xs="24">
<el-tabs v-model="editTabsValue" @tab-click="handleClick" :tab-position="'right'" style="height: 600px;">
<el-tab-pane
v-for="(item) in projectTypeOptions"
:key="item.projectTypeCode"
:label="item.projectTypeName"
:name="item.projectTypeCode"
>{{ item.projectTypeName }}</el-tab-pane>
</el-tabs>
</el-col>
<el-col :span="19" :xs="24">
<el-table v-loading="loading" :data="itemList" @selection-change="handleBomSelectionChange" ref="myTable" >
<el-table-column width="50" align="center" type="selection">
</el-table-column>
@ -70,6 +78,8 @@
<el-table-column label="缺陷等级" align="left" prop="defectLevel" width="90"/>
<el-table-column label="检验方式" align="left" prop="checkMode" width="90" :show-overflow-tooltip="true"/>
<el-table-column label="检验工具" align="left" prop="checkTool" width="90"/>
<el-table-column label="检测项分类" align="center" prop="itemType" width="100" :formatter="itemTypeFormat" />
<el-table-column label="合格判定比例" align="center" prop="judgeRate" width="150"/>
</el-table>
<pagination
v-show="total>0"
@ -80,6 +90,8 @@
/>
</el-col>
</el-row>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitProjectItems"> </el-button>
<el-button @click="showFlag=false"> </el-button>
@ -109,6 +121,8 @@ export default {
itemList: null,
ruleName: null,
projectType:null,
editTabsValue: '',
tabIndex: null,
//
bomCode: undefined,
defaultProps: {
@ -120,6 +134,8 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
ruleName: null,
projectType: null,
groupId:null,
materialCode:null,
typeCode:null
@ -132,10 +148,21 @@ export default {
},
methods: {
//
itemTypeFormat(row, column, cellValue) {
if (cellValue != null) {
if(cellValue=='1'){
return '包装';
}else if(cellValue=='0'){
return '内容物';
}
}
},
//
getProjectList() {
getProjectOptions(this.queryParams).then(response => {
this.projectTypeOptions = response;
this.tabIndex = response.length;
});
},
@ -166,6 +193,8 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryProjectForm");
this.queryParams.projectType = '';
this.editTabsValue = '';
this.handleQuery();
},
@ -187,6 +216,11 @@ export default {
this.ruleName = '';
this.projectType = '';
},
handleClick(tab,event) {
this.queryParams.projectType = tab.name;
this.getList();
}
}
};
</script>

@ -138,89 +138,36 @@
<h2>成品检验报告</h2>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="产品名称" prop="materialName">
<el-input v-model="form.materialName" disabled />
</el-form-item>
<el-descriptions title="" border :column="3" :contentStyle="content_style" :label-style="label_style">
<el-descriptions-item label="产品名称" class="my-description-item1">{{form.materialName}}</el-descriptions-item>
<el-descriptions-item label="生产数量" class="my-description-item2">{{form.quality}}</el-descriptions-item>
<el-descriptions-item label="检验编码" class="my-description-item3">{{form.checkNo}}</el-descriptions-item>
<el-descriptions-item label="产品编码" class="my-description-item1">{{form.materialCode}}</el-descriptions-item>
<el-descriptions-item label="抽样地点" class="my-description-item2">{{form.checkLoc}}</el-descriptions-item>
<el-descriptions-item label="报检日期" class="my-description-item3">{{form.createTime}}</el-descriptions-item>
<el-descriptions-item label="生产批号" class="my-description-item1">{{form.incomeBatchNo}}</el-descriptions-item>
<el-descriptions-item label="检验依据" class="my-description-item2">{{form.standardNo}}</el-descriptions-item>
<el-descriptions-item label="检验日期" class="my-description-item3">{{form.checkTime}}</el-descriptions-item>
</el-descriptions>
<el-row class="border-row">
<el-col :span="24">
包装检验项目
</el-col>
<el-col :span="8">
<el-form-item label="产品编码" prop="materialCode">
<el-input v-model="form.materialCode" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="生产数量" prop="quality">
<el-input type="number" v-model="form.quality" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单位" prop="unit" >
<el-input v-model="form.unit" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验编号" prop="checkNo">
<el-input v-model="form.checkNo" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="生产批号" prop="incomeBatchNo">
<el-input v-model="form.incomeBatchNo" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样地点" prop="checkLoc">
<el-input v-model="form.checkLoc" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验依据" prop="standardNo">
<el-input v-model="form.standardNo" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="报检日期" prop="createTime">
<el-input v-model="form.checkTime" placeholder="请输入报检日期" disabled>
{{ parseTime(form.checkTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期" prop="checkTime">
<el-input v-model="form.checkTime" placeholder="请输入检验日期" disabled>
{{ parseTime(form.checkTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品提报人" prop="checkManName">
<el-input v-model="form.checkManName" placeholder="请输入OEM产品提报人" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- 检验项目明细 -->
<el-table v-loading="loading" :data="checkProjectList" >
<el-table-column type="selection" width="50" align="center" />
<el-table v-loading="loading" :data="checkProjectList" border>
<el-table-column label="序号" align="center" type="index" width="50"/>
<el-table-column label="检验项目" align="center" prop="ruleName" />
<el-table-column label="标准要求" align="center" prop="checkStandard" width="160"/>
<el-table-column label="抽检数" align="center" prop="sampleNum" width="60"/>
<el-table-column label="单位" align="center" prop="unitCode" width="50"/>
<el-table-column label="实测结果" align="center" prop="actualValue" width="160"/>
<el-table-column label="判定" align="center" prop="status" width="70">
<template slot-scope="scope">
<dict-tag :options="dict.type.check_result" :value="scope.row.status"/>
</template>
<el-table-column label="检验项目" align="center" prop="ruleName" width="100"/>
<el-table-column label="标准要求" align="center" prop="checkStandard"/>
<el-table-column label="抽检数" align="center" prop="samplePlan" width="60"/>
<!--<el-table-column label="单位" align="center" prop="unitCode" width="50"/>-->
<el-table-column label="实测结果及判定" align="center">
<el-table-column label="实测结果" align="center" prop="actualValue" width="120"/>
<el-table-column label="判定" align="center" prop="status" width="110"/>
</el-table-column>
<!--
<el-table-column label="不良类型" align="center" prop="defectCode" width="80">
<template slot-scope="scope">
<span v-if="scope.row.defectCode">{{ getCodeValue(scope.row.defectCode) }}</span>
@ -235,37 +182,62 @@
:fit="fit" />
</template>
</el-table-column>
-->
</el-table>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="综合检验结论" label-width="100px">
<el-col offset="6" span="6">
<el-checkbox disabled>合格</el-checkbox>
<el-row class="border-row">
<el-col :span="24">
内容物分析项目
</el-col>
<el-col offset="3" span="6">
<el-checkbox disabled>不合格</el-checkbox>
</el-col>
</el-form-item>
<el-col :span="24">
<!-- 检验项目明细 -->
<el-table v-loading="loading" :data="checkProjectList0" border>
<el-table-column label="序号" align="center" type="index" width="50"/>
<el-table-column label="检验项目" align="center" prop="ruleName" width="100"/>
<el-table-column label="标准要求" align="center" prop="checkStandard"/>
<el-table-column label="抽检数" align="center" prop="samplePlan" width="60"/>
<el-table-column label="实测结果及判定" align="center">
<el-table-column label="实测结果" align="center" prop="actualValue" width="120"/>
<el-table-column label="判定" align="center" prop="status" width="110"/>
</el-table-column>
</el-table>
</el-col>
</el-row>
<el-descriptions title="" border :column="1">
<el-descriptions-item label="综合检验结论">
<el-col offset="1" span="6">
<el-checkbox-group v-model="form.checkedValues">
<el-checkbox label="Y">合格</el-checkbox>
<el-checkbox label="N">不合格</el-checkbox>
</el-checkbox-group>
</el-col>
<el-col span="8">
判定合格打不合格打×
</el-col>
</el-descriptions-item>
</el-descriptions>
<!--
<el-row>
<el-col :span="20">
<el-form-item label="备注:" label-width="100px">
<el-input type="textarea" disabled/>
</el-form-item>
</el-col>
</el-row>
</el-row>-->
<el-row>
<el-col :span="20">
<el-col :span="10">
<el-form-item label="品检主管:" label-width="100px">
<el-input disabled/>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="品管员:" >
<el-input disabled/>
<el-col :span="10">
<el-form-item label="检验员:" >
{{form.checkManName}}
</el-form-item>
</el-col>
</el-row>
@ -358,13 +330,27 @@ export default {
factoryCode: null,
},
//
form: {},
form: {checkedValues:[]},
checkTypes:[],
//
rules: {
/* incomeBatchNo: [
{ required: true, message: "来料批次号不能为空", trigger: "blur" }
], */
},
content_style: {
'text-align': 'center',
'min-width': '200px',
'word-break': 'break-all'
},
label_style: {
'color': '#000',
'text-align': 'center',
'font-weight': '600',
'height': '40px',
'background-color': '#d6dbe1',
'min-width': '100px',
'word-break': 'keep-all'
}
};
},
@ -481,6 +467,9 @@ export default {
this.queryParams.recordId = recordId;
getProduct(recordId).then(response => {
this.form = response.data;
let checkedValues0 =[];
checkedValues0.push(response.data.checkResult)
this.form.checkedValues = ['Y'];
this.form.printable = 'printFrom'; //
this.form.ignore = ['no-print'];//
this.open = true;
@ -529,7 +518,18 @@ export default {
getCheckedProjectList(){
this.loading = true;
getCkeckProjectList(this.queryParams).then((response) => {
this.checkProjectList = response.rows;
const itemType1s=[];
const itemType0s=[];
response.rows.forEach(item=>{
if (item.itemType == '1') {
itemType1s.push(item);
}else if(item.itemType == '0'){
itemType0s.push(item);
}
})
this.checkProjectList = itemType1s;
this.checkProjectList0 = itemType0s;
this.total = response.total;
this.loading = false;
this.form.standardNo = this.checkProjectList[0].standardNo;
@ -576,4 +576,18 @@ export default {
margin-left: 15px;
height: 38px;
}
.my-description-item1 {
width: 280px; /* 或者你想要的任何宽度 */
}
.my-description-item2 {
width: 120px; /* 或者你想要的任何宽度 */
}
.my-description-item3 {
width: 80px; /* 或者你想要的任何宽度 */
}
.border-row {
border: 1px solid #d3dce6; /* 边框颜色可以根据需要自定义 */
text-align:center;
}
</style>

@ -120,6 +120,8 @@
</el-table-column>
<el-table-column label="抽样方案" align="center" prop="samplePlan" :show-overflow-tooltip="true" width="200"/>
<el-table-column label="合格判定" align="center" prop="judge" :show-overflow-tooltip="true" width="200"/>
<el-table-column label="检测项分类" align="center" prop="itemType" width="100" :formatter="itemTypeFormat" />
<el-table-column label="合格判定比例" align="center" prop="judgeRate" width="150"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
<template slot-scope="scope">
<el-button
@ -244,6 +246,21 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="检测项分类" prop="itemType">
<el-radio v-model="form.itemType" label="1"></el-radio>
<el-radio v-model="form.itemType" label="0"></el-radio>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="合格判定比例" prop="judgeRate">
<el-input type='number' v-model="form.judgeRate" placeholder="合格判定比例" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
@ -365,6 +382,17 @@ export default {
this.getProjectTypeList();
},
methods: {
//
itemTypeFormat(row, column, cellValue) {
if (cellValue != null) {
if(cellValue=='1'){
return '包装';
}else if(cellValue=='0'){
return '内容物';
}
}
},
/** 查询检验项目维护列表 */
getList() {
this.loading = true;

@ -166,8 +166,8 @@
}}</el-button>
</template>
</el-table-column>
<el-table-column label="批次号" align="center" prop="incomeBatchNo" width="200" :show-overflow-tooltip="true"/>
<el-table-column label="订单号" align="center" prop="orderNo" width="120"/>
<!--<el-table-column label="批次号" align="center" prop="incomeBatchNo" width="200" :show-overflow-tooltip="true"/>-->
<el-table-column label="订单号" align="center" prop="orderNo" width="130"/>
<el-table-column label="物料号" align="center" prop="materialCode" width="170" />
<el-table-column label="物料名称" align="center" prop="materialName" width="250" :show-overflow-tooltip="true"/>
<el-table-column label="数量" align="center" prop="quality" />
@ -458,9 +458,6 @@ export default {
form: {},
//
rules: {
incomeBatchNo: [
{ required: true, message: "批次号不能为空", trigger: "blur" }
],
orderNo: [
{ required: true, message: "订单号不能为空", trigger: "blur" }
],

@ -189,7 +189,7 @@
label="设备编码"
align="center"
prop="equipmentCode"
width="150"
width="100"
fixed="left"
>
<template slot-scope="scope">
@ -205,7 +205,7 @@
label="设备名称"
align="center"
prop="equipmentName"
width="300"
width="200"
/>
<el-table-column
label="是否启用"
@ -315,7 +315,7 @@
width="100"
/>
<el-table-column
label="单台能力工时"
label="标准产能(时)"
align="center"
prop="unitWorkingHours"
width="100"
@ -566,7 +566,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单台能力工时" prop="unitWorkingHours">
<el-form-item label="标准产能(时)" prop="unitWorkingHours">
<el-input-number
:min="0"
:step="1"
@ -939,7 +939,7 @@
<el-descriptions-item label="工段">{{
form.workshopSection
}}</el-descriptions-item>
<el-descriptions-item label="单台能力工时">{{
<el-descriptions-item label="标准产能(时)">{{
form.unitWorkingHours
}}</el-descriptions-item>
<el-descriptions-item label="工时单价">{{
@ -951,9 +951,12 @@
<el-descriptions-item label="sap线体名称">{{
form.sapName
}}</el-descriptions-item>
<el-descriptions-item label="设备类别">{{
form.equipmentCategory
}}</el-descriptions-item>
<el-descriptions-item label="设备类别">
<dict-tag
:options="dict.type.equipment_category"
:value="form.equipmentCategory"
/>
</el-descriptions-item>
<el-descriptions-item label="工厂车间">{{
form.factoryWorkshop
}}</el-descriptions-item>
@ -966,9 +969,12 @@
:contentStyle="CS"
:label-style="LS"
>
<el-descriptions-item label="设备状态">{{
form.status
}}</el-descriptions-item>
<el-descriptions-item label="设备状态">
<dict-tag
:options="dict.type.equipment_status"
:value="form.equipmentStatus"
/>
</el-descriptions-item>
<el-descriptions-item label="使用部门">{{
form.department
}}</el-descriptions-item>

Loading…
Cancel
Save