zhaoxiaolin 1 year ago
parent 369c48346c
commit 4d39e76979

@ -10,10 +10,11 @@ export function getIncomeTableList(query) {
}
// 生产过程质量报表
export function getProduceTableList(query) {
export function getProduceChartData(query) {
return request({
url: '/quality/staticTable/getProduceTableList',
url: '/quality/staticTable/getProduceChartData',
method: 'get',
params: query
});
}

@ -10,7 +10,7 @@
</el-form-item>
<el-form-item label="供应商" prop="supplierCodeArray">
<div class="tagbox">
<div class="tag" style="" placeholder="请选择辅助设备">
<div class="tag" style="" placeholder="请选择供应商">
<el-tag
:key="index"
class="tagitem"

@ -1,384 +1,185 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="工单编号" prop="workorderCode">
<el-input
v-model="queryParams.workorderCode"
placeholder="请输入工单编号"
clearable
@keyup.enter.native="handleQuery"
/>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px" style="margin-bottom: 0px;">
<el-form-item label="月份" prop="ymArray">
<el-date-picker
v-model="queryParams.ymArray"
format="yyyy-MM"
type="datetimerange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份">
</el-date-picker>
</el-form-item>
<el-form-item label="rfid号" prop="rfid">
<el-input
v-model="queryParams.rfid"
placeholder="请输入rfid号"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="工作中心">
<el-select v-model="queryParams.workCenter" filterable placeholder="请选择工作中心">
<el-option
v-for="item in options"
:key="item.factoryCode"
:label="item.factoryName"
:value="item.factoryCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="机台编码" prop="machineCode">
<el-input
v-model="queryParams.machineCode"
placeholder="请输入机台编码"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="产品" prop="supplierCodeArray">
<div class="tagbox">
<div class="tag" style="" placeholder="请选择产品">
<el-tag
:key="index"
class="tagitem"
v-for="(tag, index) in selectMaterielListtag"
closable
:disable-transitions="false"
@close="handleClose(tag)"
>
{{ tag.supplierName }}
</el-tag>
</div>
<el-button
slot="append"
class="button1"
@click="handleSelectSupplier"
icon="el-icon-search"
></el-button>
<el-row style="display: none;">
<el-input type="input" clearable v-model="queryParams.supplierCode" placeholder="点击选择物料"/>
<el-input type="input"clearable v-model="queryParams.supplierName" placeholder="点击选择物料"/>
</el-row>
</div>
</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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['mes:rfidProcess:add']"
>新增</el-button>
<el-row :gutter="20">
<el-col :sm="24" :lg="24">
<span style="font-size: 20px;margin: 40%;color: cadetblue;">{{title}}</span>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['mes:rfidProcess:edit']"
>修改</el-button>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes:rfidProcess:remove']"
>删除</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['mes:rfidProcess:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="rfidProcessList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- 序号 -->
<el-table-column type="index" align="center" :index="indexMethod" label="序号" fixed/>
<!-- <el-table-column label="工单ID" align="center" prop="workorderId" width="180"/> -->
<el-table-column label="工单编号" align="center" prop="workorderCode" width="200" fixed/>
<!-- <el-table-column label="工单名称" align="center" prop="workorderName"/> -->
<!-- <el-table-column label="订单ID" align="center" prop="orderId" width="180"/> -->
<el-table-column label="订单编号" align="center" prop="orderCode" width="200"/>
<el-table-column label="产品编码" align="center" prop="productCode" width="200"/>
<el-table-column label="产品名称" align="center" prop="productName" width="200"/>
<el-table-column label="生产时间" align="center" prop="productDate" width="200"/>
<!-- <el-table-column label="班次" align="center" prop="shiftId" width="200"/>-->
<el-table-column label="班次" align="center" prop="shiftId" >
<template slot-scope="scope">
<span v-if="scope.row.shiftId == 5"></span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="rfid号" align="center" prop="rfid" width="180"/>
<el-table-column label="工厂编码" align="center" prop="factoryCode" />
<el-table-column label="机台编码" align="center" prop="machineCode" />
<el-table-column label="当前步工序编码" align="center" prop="nowProcessCode" width="150"/>
<el-table-column label="当前步工序名称" align="center" prop="nowProcessName" width="150"/>
<el-table-column label="下一步工序编码" align="center" prop="nextProcessCode" width="150"/>
<el-table-column label="下一步工序名称" align="center" prop="nextProcessName" width="150"/>
<el-table-column label="工序步骤" align="center" prop="orderNum" />
<el-table-column label="入时间" align="center" prop="inTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.inTime, '{y}-{m}-{d}') }}</span>
{{ parseTime(scope.row.inTime, '{h}:{m}:{s}') }}
</template>
</el-table-column>
<el-table-column label="出时间" align="center" prop="outTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.outTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.outTime, '{h}:{m}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
{{ scope.row.status == "0" ? "待办" : "完成" }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:rfidProcess:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['mes:rfidProcess:remove']"
>删除</el-button>
</template> -->
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改生产rfid流程对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="工单ID" prop="workorderId">
<el-input v-model="form.workorderId" placeholder="请输入工单ID" />
</el-form-item> -->
<el-form-item label="rfid号" prop="rfid">
<el-input v-model="form.rfid" placeholder="请输入rfid号" />
</el-form-item>
<el-form-item label="工厂编码" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码" />
</el-form-item>
<el-form-item label="机台编码" prop="machineCode">
<el-input v-model="form.machineCode" placeholder="请输入机台编码" />
</el-form-item>
<el-form-item label="当前步" prop="nowProcessId">
<el-input v-model="form.nowProcessId" placeholder="请输入当前步" />
</el-form-item>
<el-form-item label="下一步" prop="nextProcessId">
<el-input v-model="form.nextProcessId" placeholder="请输入下一步" />
</el-form-item>
<el-form-item label="工序步骤" prop="orderNum">
<el-input v-model="form.orderNum" placeholder="请输入工序步骤" />
</el-form-item>
<el-form-item label="入时间" prop="inTime">
<el-date-picker clearable
v-model="form.inTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择入时间">
</el-date-picker>
</el-form-item>
<el-form-item label="出时间" prop="outTime">
<el-date-picker clearable
v-model="form.outTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择出时间">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
<el-row :gutter="20">
<div style="border: 1px solid #cfdee4;">
<div id="orderline" style="width:100%;height:500px"></div>
</div>
</el-row>
</div>
</template>
<script>
import { getProduceTableList} from "@/api/quality/qcTable";
import * as echarts from 'echarts'
require('echarts/theme/macarons')
import {getProduceChartData} from "@/api/quality/qcTable";
import moment from 'moment';
export default {
name: "RfidProcess",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// rfid
rfidProcessList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
workorderId: null,
rfid: null,
factoryCode: null,
machineCode: null,
nowProcessId: null,
nextProcessId: null,
orderNum: null,
inTime: null,
outTime: null,
status: null,
attr1: null,
attr2: null,
attr3: null,
attr4: null,
shiftId: null,
productCode: null,
productName: null,
productDate: null
},
//
form: {},
//
rules: {
workorderId: [
{ required: true, message: "工单ID不能为空", trigger: "blur" }
],
rfid: [
{ required: true, message: "rfid号不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
name: "produceLineChart",
data() {
return {
title:"不良率统计",
//
queryParams: {
ymArray: [],
workorderId: null,
rfid: null,
factoryCode: null,
machineCode: null,
nowProcessId: null,
nextProcessId: null,
orderNum: null,
inTime: null,
outTime: null,
status: null,
shiftId: null,
productCode: null,
supplierName: '',
supplierCode: ''
}
}
},
mounted(){
this.getDate();
this.getList()
},
methods: {
//
indexMethod(index){
return index+1 ;
},
/** 查询生产rfid流程列表 */
getList() {
this.loading = true;
getProduceTableList(this.queryParams).then(response => {
this.rfidProcessList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
recordId: null,
workorderId: null,
rfid: null,
factoryCode: null,
machineCode: null,
nowProcessId: null,
nextProcessId: null,
orderNum: null,
inTime: null,
outTime: null,
status: null,
remark: null,
attr1: null,
attr2: null,
attr3: null,
attr4: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
shiftId: null
};
this.resetForm("form");
/**获取默认查询时间段**/
getDate() {
let start = this.Fungetdate (0)
let end = this.Fungetdate (0)
this.queryParams.ymArray.push(start,end)
},
Fungetdate (num) {
var dd = new Date();
dd.setDate(dd.getDate() + num);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;//
var d = dd.getDate();
return y + "-" + m;
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.getDate();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.recordId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加生产rfid流程";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const recordId = row.recordId || this.ids
getRfidProcess(recordId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改生产rfid流程";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.recordId != null) {
updateRfidProcess(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addRfidProcess(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const recordIds = row.recordId || this.ids;
this.$modal.confirm('是否确认删除生产rfid流程编号为"' + recordIds + '"的数据项?').then(function() {
return delRfidProcess(recordIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/rfidProcess/export', {
...this.queryParams
}, `rfidProcess_${new Date().getTime()}.xlsx`)
}
getList() {
if(this.queryParams.ymArray.length>0){
this.queryParams.ymArrayStart = moment(this.queryParams.ymArray[0]).format('YYYY-MM');
this.queryParams.ymArrayEnd = moment(this.queryParams.ymArray[1]).format('YYYY-MM');
}
let myChart = this.$echarts.init(document.getElementById('orderline'))
getProduceChartData(this.queryParams).then(data => {
myChart.setOption({
title: {
text: this.title
},
tooltip: {
trigger: 'axis'
},
legend: {
data: data.legendData//['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: data.xAxis//['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: data.series
//[
// {
// name: 'Email',
// type: 'line',
//// stack: 'Total',
// data: [120, 132, 101, 134, 90, 230, 210]
// }
//]
},
true
)}
)}
}
};
</script>

Loading…
Cancel
Save