LAPTOP-R6EHHS26\86155 2 years ago
commit 2b8b7e8986

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询故障描述列表
export function listFaultDescription(query) {
return request({
url: '/device/faultDescription/list',
method: 'get',
params: query
});
}
// 查询故障描述详细
export function getFaultDescription(faultId) {
return request({
url: '/device/faultDescription/' + faultId,
method: 'get'
});
}
// 新增故障描述
export function addFaultDescription(data) {
return request({
url: '/device/faultDescription',
method: 'post',
data: data
});
}
// 修改故障描述
export function updateFaultDescription(data) {
return request({
url: '/device/faultDescription',
method: 'put',
data: data
});
}
// 删除故障描述
export function delFaultDescription(faultId) {
return request({
url: '/device/faultDescription/' + faultId,
method: 'delete'
});
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询故障维修措施列表
export function listFaultMeasures(query) {
return request({
url: '/device/faultMeasures/list',
method: 'get',
params: query
});
}
// 查询故障维修措施详细
export function getFaultMeasures(faultId) {
return request({
url: '/device/faultMeasures/' + faultId,
method: 'get'
});
}
// 新增故障维修措施
export function addFaultMeasures(data) {
return request({
url: '/device/faultMeasures',
method: 'post',
data: data
});
}
// 修改故障维修措施
export function updateFaultMeasures(data) {
return request({
url: '/device/faultMeasures',
method: 'put',
data: data
});
}
// 删除故障维修措施
export function delFaultMeasures(faultId) {
return request({
url: '/device/faultMeasures/' + faultId,
method: 'delete'
});
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询故障原因列表
export function listFaultReason(query) {
return request({
url: '/device/faultReason/list',
method: 'get',
params: query
});
}
// 查询故障原因详细
export function getFaultReason(faultId) {
return request({
url: '/device/faultReason/' + faultId,
method: 'get'
});
}
// 新增故障原因
export function addFaultReason(data) {
return request({
url: '/device/faultReason',
method: 'post',
data: data
});
}
// 修改故障原因
export function updateFaultReason(data) {
return request({
url: '/device/faultReason',
method: 'put',
data: data
});
}
// 删除故障原因
export function delFaultReason(faultId) {
return request({
url: '/device/faultReason/' + faultId,
method: 'delete'
});
}

@ -77,3 +77,12 @@ export function getRepairPersonList(query) {
params: query
});
}
// 查询组线列表
export function getGroupLineList(query) {
return request({
url: '/device/faultReport/getGroupLineList',
method: 'get',
params: query
});
}

@ -2,43 +2,43 @@ import request from '@/utils/request'
// 查询故障类型维护列表
export function listFaultType(query) {
return request({
url: '/device/faultType/list',
method: 'get',
params: query
});
return request({
url: '/device/faultType/list',
method: 'get',
params: query
});
}
// 查询故障类型维护详细
export function getFaultType(faultId) {
return request({
url: '/device/faultType/' + faultId,
method: 'get'
});
return request({
url: '/device/faultType/' + faultId,
method: 'get'
});
}
// 新增故障类型维护
export function addFaultType(data) {
return request({
url: '/device/faultType',
method: 'post',
data: data
});
return request({
url: '/device/faultType',
method: 'post',
data: data
});
}
// 修改故障类型维护
export function updateFaultType(data) {
return request({
url: '/device/faultType',
method: 'put',
data: data
});
return request({
url: '/device/faultType',
method: 'put',
data: data
});
}
// 删除故障类型维护
export function delFaultType(faultId) {
return request({
url: '/device/faultType/' + faultId,
method: 'delete'
});
return request({
url: '/device/faultType/' + faultId,
method: 'delete'
});
}

@ -58,3 +58,27 @@ export function delItem(itemId) {
method: 'delete'
});
}
/////////////////////////////////////////下面都是汇总报表用
// 查询检查项汇总表
export function getSummaryReport() {
return request({
url: '/device/item/summaryReport',
method: 'get'
});
}
// 查询工作中心
export function getWorkCenter() {
return request({
url: '/device/item/getWorkCenter',
method: 'get'
});
}
// 查询工单匹配检查项
export function selectMatchList(query) {
return request({
url: '/device/item/matchList',
params: query
});
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询设备运行记录列表
export function listOperation(query) {
return request({
url: '/device/operation/list',
method: 'get',
params: query
});
}
// 查询设备运行记录详细
export function getOperation(id) {
return request({
url: '/device/operation/' + id,
method: 'get'
});
}
// 新增设备运行记录
export function addOperation(data) {
return request({
url: '/device/operation',
method: 'post',
data: data
});
}
// 修改设备运行记录
export function updateOperation(data) {
return request({
url: '/device/operation',
method: 'put',
data: data
});
}
// 删除设备运行记录
export function delOperation(id) {
return request({
url: '/device/operation/' + id,
method: 'delete'
});
}

@ -43,6 +43,14 @@ export function getEquList(equQuery) {
});
}
// 获取设备组线信息
export function getGroupLine() {
return request({
url: '/device/inspectionPlan/getGroupLine',
method: 'get'
});
}
// 查询计划列表
export function listPlan(query) {
return request({

@ -17,6 +17,14 @@ export function formatEquItem(data) {
data: data
});
}
// 处理计划-设备信息
export function formatEquItemNoCondition(data) {
return request({
url: '/device/upkeepPlan/formatEquItemNoCondition',
method: 'post',
data: data
});
}
// 查询保养计划列表
export function listUpkeepPlan(query) {

@ -55,3 +55,21 @@ export function changeStatus(id,status) {
data: data
});
}
//批量添加检测项
export function submitProjects(data) {
return request({
url: '/quality/checkTypeProject/submitProjects',
method: 'post',
data: data
});
}
//获取检测项列表
export function getProjectInfoList(query) {
return request({
url: '/quality/checkTypeProject/getProjectInfoList',
method: 'get',
params: query
});
}

@ -105,3 +105,12 @@ export function getPersonList(query) {
params: query
});
}
// 查询设备管理列表
export function getAuxiliaryEquipmentList(query) {
return request({
url: '/wms/equipment/getAuxiliaryEquipmentList',
method: 'get',
params: query
});
}

@ -0,0 +1,112 @@
<template>
<el-tabs type="border-card">
<el-tab-pane label="故障类型" >
<ItemFaultType></ItemFaultType>
</el-tab-pane>
<el-tab-pane label="故障描述" >
<ItemFaultDescription></ItemFaultDescription>
</el-tab-pane>
<el-tab-pane label="故障原因" >
<ItemFaultReason></ItemFaultReason>
</el-tab-pane>
<el-tab-pane label="维修措施" >
<ItemFaultMeasures></ItemFaultMeasures>
</el-tab-pane>
</el-tabs>
</template>
<script>
import ItemFaultType from "./itemFaultType.vue";
import ItemFaultReason from "./itemFaultReason.vue";
import ItemFaultDescription from "./itemFaultDescription.vue";
import ItemFaultMeasures from "./itemFaultMeasures.vue";
export default {
name: "FaultInformation",
components: { ItemFaultType , ItemFaultReason , ItemFaultDescription , ItemFaultMeasures },
data() {
return {
//
pickerOptions: {
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: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
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]);
}
}]
},
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
faultTypeList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
faultCode: null,
faultType: null,
faultSubclass: null,
faultRemark: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
createTimeArray: [],
updateTimeArray: [],
},
//
form: {},
//
rules: {
}
};
},
created() {
},
methods: {
}
};
</script>

@ -0,0 +1,444 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label-width="100px" label="故障描述编码" prop="faultCode">
<el-input
v-model="queryParams.faultCode"
placeholder="请输入故障描述编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="故障描述类型" prop="faultType">
<el-select v-model="queryParams.faultType" placeholder="请选择故障描述类型" clearable>
<el-option
v-for="dict in dict.type.device_fault_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="故障描述" prop="faultSubclass">
<el-input
v-model="queryParams.faultSubclass"
placeholder="请输入故障描述"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="createBy">
<el-input
class="my-select-input"
v-model="queryParams.createBy"
placeholder="请输入创建人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTimeArray"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="更新人" prop="updateBy">
<el-input
class="my-select-input"
v-model="queryParams.updateBy"
placeholder="请输入更新人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更新时间" prop="updateTime">
<el-date-picker
v-model="queryParams.updateTimeArray"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
: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-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="['device:faultDescription:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:faultDescription: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="['device:faultDescriptionn: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="['device:faultDescription:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="faultList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column width="60" align="center" label="序号" type="index"></el-table-column>
<el-table-column v-if="false" label="主键" align="center" prop="faultId" />
<el-table-column width="150" label="故障描述编码" align="center" prop="faultCode" />
<el-table-column width="150" label="故障描述类型" align="center" prop="faultType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.device_fault_type" :value="scope.row.faultType"/>
</template>
</el-table-column>
<el-table-column width="150" label="故障描述" align="center" prop="faultSubclass" />
<el-table-column width="180" label="备注" align="center" prop="faultRemark" />
<el-table-column width="100" label="创建人" align="center" prop="createBy" />
<el-table-column width="180" label="创建时间" align="center" prop="createTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="100" label="更新人" align="center" prop="updateBy" />
<el-table-column width="180" label="更新时间" align="center" prop="updateTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="180" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:faultDescription:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:faultDescription: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"
/>
<!-- 添加或修改故障描述维护对话框 -->
<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 v-if="false" label="故障描述编码" prop="faultCode">
<el-input v-model="form.faultCode" placeholder="请输入故障描述编码" style="width: 300px"/>
</el-form-item>
<el-form-item label="故障描述" prop="faultType">
<el-select v-model="form.faultType" placeholder="请选择故障描述" clearable style="width: 300px">
<el-option
v-for="dict in dict.type.device_fault_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="故障子类" prop="faultSubclass">
<el-input v-model="form.faultSubclass" placeholder="请输入故障子类" style="width: 300px"/>
</el-form-item>
<el-form-item label="备注" prop="faultRemark">
<el-input v-model="form.faultRemark" placeholder="请输入备注" style="width: 300px"/>
</el-form-item>
<el-form-item v-if="false" label="工厂编码" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码" />
</el-form-item>
<el-form-item v-if="false" label="备用字段1" prop="attr1">
<el-input v-model="form.attr1" placeholder="请输入备用字段1" />
</el-form-item>
<el-form-item v-if="false" label="备用字段2" prop="attr2">
<el-input v-model="form.attr2" placeholder="请输入备用字段2" />
</el-form-item>
<el-form-item v-if="false" label="备用字段3" prop="attr3">
<el-input v-model="form.attr3" placeholder="请输入备用字段3" />
</el-form-item>
<el-form-item v-if="false" label="删除标志" prop="delFlag">
<el-input v-model="form.delFlag" 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>
</template>
<script>
import { listFaultDescription, getFaultDescription, delFaultDescription, addFaultDescription, updateFaultDescription } from "@/api/device/faultDescription";
export default {
name: "FaultType",
dicts: ['device_fault_description'],
data() {
return {
//
faultCategory : null,
//
pickerOptions: {
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: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
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]);
}
}]
},
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
faultList: [],
//
title: "",
//
open: false,
//
queryParams: {
//
faultCategory: null,
pageNum: 1,
pageSize: 10,
faultCode: null,
faultType: null,
faultSubclass: null,
faultRemark: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
createTimeArray: [],
updateTimeArray: [],
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询故障描述维护列表 */
getList() {
this.loading = true;
this.queryParams.faultCategory = "des";
listFaultDescription(this.queryParams).then(response => {
this.faultList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
faultId: null,
faultCode: null,
faultType: null,
faultSubclass: null,
faultRemark: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
//
this.queryParams.createTimeArray = [];
this.queryParams.updateTimeArray = [];
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.faultId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加故障描述维护";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const faultId = row.faultId || this.ids
getFaultDescription(faultId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改故障描述维护";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.faultId != null) {
updateFaultDescription(this.form).then(response => {
if (response.code != 500) {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addFaultDescription(this.form).then(response => {
if (response.code != 500) {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const faultIds = row.faultId || this.ids;
var faultCodes = '';
//
for (let i = 0; i < this.faultList.length; i++) {
for (let j = 0; j < faultIds.length; j++) {
if (faultIds[j] == this.faultList[i].faultId) {
faultCodes = faultCodes + this.faultList[i].faultCode + ',';
}
}
}
if (faultCodes == '') {
for (let i = 0; i < this.faultList.length; i++) {
if (faultIds == this.faultList[i].faultId) {
faultCodes = this.faultList[i].faultCode;
}
}
}
this.$modal.confirm('是否确认删除故障描述维护编号为"' + faultCodes + '"的数据项?').then(function() {
return delFaultDescription(faultIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('device/faultDescription/export', {
...this.queryParams
}, `faultType_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,430 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label-width="100px" label="故障措施编码" prop="faultCode">
<el-input
v-model="queryParams.faultCode"
placeholder="请输入故障措施编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="故障措施类型" prop="faultType">
<el-select v-model="queryParams.faultType" placeholder="请选择故障措施类型" clearable>
<el-option
v-for="dict in dict.type.device_fault_measures"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="故障措施" prop="faultSubclass">
<el-input
v-model="queryParams.faultSubclass"
placeholder="请输入故障措施"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更新人" prop="updateBy">
<el-input
class="my-select-input"
v-model="queryParams.updateBy"
placeholder="请输入更新人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTimeArray"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="更新时间" prop="updateTime">
<el-date-picker
v-model="queryParams.updateTimeArray"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
: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-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="['device:faultMeasures:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:faultMeasures: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="['device:faultMeasures: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="['device:faultMeasures:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="faultList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column width="60" align="center" label="序号" type="index"></el-table-column>
<el-table-column v-if="false" label="主键" align="center" prop="faultId" />
<el-table-column width="150" label="故障措施编码" align="center" prop="faultCode" />
<el-table-column width="150" label="故障措施类型" align="center" prop="faultType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.device_fault_measures" :value="scope.row.faultType"/>
</template>
</el-table-column>
<el-table-column width="150" label="故障措施" align="center" prop="faultSubclass" />
<el-table-column width="180" label="备注" align="center" prop="faultRemark" />
<el-table-column width="100" label="创建人" align="center" prop="createBy" />
<el-table-column width="180" label="创建时间" align="center" prop="createTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="100" label="更新人" align="center" prop="updateBy" />
<el-table-column width="180" label="更新时间" align="center" prop="updateTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="180" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:faultMeasures:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:faultMeasures: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"
/>
<!-- 添加或修改故障措施维护对话框 -->
<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 v-if="false" label="故障措施编码" prop="faultCode">
<el-input v-model="form.faultCode" placeholder="请输入故障措施编码" style="width: 300px"/>
</el-form-item>
<el-form-item label="故障措施" prop="faultType">
<el-select v-model="form.faultType" placeholder="请选择故障措施" clearable style="width: 300px">
<el-option
v-for="dict in dict.type.device_fault_measures"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="故障子类" prop="faultSubclass">
<el-input v-model="form.faultSubclass" placeholder="请输入故障子类" style="width: 300px"/>
</el-form-item>
<el-form-item label="备注" prop="faultRemark">
<el-input v-model="form.faultRemark" placeholder="请输入备注" style="width: 300px"/>
</el-form-item>
<el-form-item v-if="false" label="工厂编码" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码" />
</el-form-item>
<el-form-item v-if="false" label="备用字段1" prop="attr1">
<el-input v-model="form.attr1" placeholder="请输入备用字段1" />
</el-form-item>
<el-form-item v-if="false" label="备用字段2" prop="attr2">
<el-input v-model="form.attr2" placeholder="请输入备用字段2" />
</el-form-item>
<el-form-item v-if="false" label="备用字段3" prop="attr3">
<el-input v-model="form.attr3" placeholder="请输入备用字段3" />
</el-form-item>
<el-form-item v-if="false" label="删除标志" prop="delFlag">
<el-input v-model="form.delFlag" 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>
</template>
<script>
import { listFaultMeasures, getFaultMeasures, delFaultMeasures, addFaultMeasures, updateFaultMeasures } from "@/api/device/faultMeasures";
export default {
name: "FaultType",
dicts: ['device_fault_measures'],
data() {
return {
//
pickerOptions: {
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: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
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]);
}
}]
},
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
faultList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
faultCode: null,
faultType: null,
faultSubclass: null,
faultRemark: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
createTimeArray: [],
updateTimeArray: [],
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询故障措施维护列表 */
getList() {
this.loading = true;
listFaultMeasures(this.queryParams).then(response => {
this.faultList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
faultId: null,
faultCode: null,
faultType: null,
faultSubclass: null,
faultRemark: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
//
this.queryParams.createTimeArray = [];
this.queryParams.updateTimeArray = [];
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.faultId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加故障措施维护";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const faultId = row.faultId || this.ids
getFaultMeasures(faultId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改故障措施维护";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.faultId != null) {
updateFaultMeasures(this.form).then(response => {
if (response.code != 500) {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addFaultMeasures(this.form).then(response => {
if (response.code != 500) {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const faultIds = row.faultId || this.ids;
var faultCodes = '';
//
for (let i = 0; i < this.faultList.length; i++) {
for (let j = 0; j < faultIds.length; j++) {
if (faultIds[j] == this.faultList[i].faultId) {
faultCodes = faultCodes + this.faultList[i].faultCode + ',';
}
}
}
if (faultCodes == '') {
for (let i = 0; i < this.faultList.length; i++) {
if (faultIds == this.faultList[i].faultId) {
faultCodes = this.faultList[i].faultCode;
}
}
}
this.$modal.confirm('是否确认删除故障措施维护编号为"' + faultCodes + '"的数据项?').then(function() {
return delFaultMeasures(faultIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('device/faultMeasures/export', {
...this.queryParams
}, `faultType_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,444 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="故障原因编码" prop="faultCode">
<el-input
style="width: 150px"
v-model="queryParams.faultCode"
placeholder="请输入编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="故障原因类型" prop="faultType">
<el-select v-model="queryParams.faultType" placeholder="请选择原因类型" clearable style="width: 150px">
<el-option
v-for="dict in dict.type.device_fault_reason"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="故障原因" prop="faultSubclass" >
<el-input
v-model="queryParams.faultSubclass"
placeholder="请输入故障原因"
clearable
style="width: 150px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="createBy" >
<el-input
class="my-select-input"
v-model="queryParams.createBy"
placeholder="请输入创建人"
clearable
style="width: 130px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更新人" prop="updateBy">
<el-input
class="my-select-input"
v-model="queryParams.updateBy"
placeholder="请输入更新人"
clearable
style="width: 130px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTimeArray"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="更新时间" prop="updateTime">
<el-date-picker
v-model="queryParams.updateTimeArray"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
: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-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="['device:faultReason:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:faultReason: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="['device:faultReason: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="['device:faultReason:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="faultList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column width="60" align="center" label="序号" type="index"></el-table-column>
<el-table-column v-if="false" label="主键" align="center" prop="faultId" />
<el-table-column width="150" label="故障原因编码" align="center" prop="faultCode" />
<el-table-column width="150" label="故障原因类型" align="center" prop="faultType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.device_fault_reason" :value="scope.row.faultType"/>
</template>
</el-table-column>
<el-table-column width="200" label="故障原因" align="center" prop="faultSubclass" />
<el-table-column width="180" label="备注" align="center" prop="faultRemark" />
<el-table-column v-if="false" label="删除标志" align="center" prop="delFlag" />
<el-table-column width="100" label="创建人" align="center" prop="createBy" />
<el-table-column width="180" label="创建时间" align="center" prop="createTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="100" label="更新人" align="center" prop="updateBy" />
<el-table-column width="180" label="更新时间" align="center" prop="updateTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column width="180" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:faultReason:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:faultReason: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"
/>
<!-- 添加或修改故障原因维护对话框 -->
<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 v-if="false" label="故障原因编码" prop="faultCode">
<el-input v-model="form.faultCode" placeholder="请输入故障原因编码" style="width: 300px"/>
</el-form-item>
<el-form-item label="故障原因" prop="faultType">
<el-select v-model="form.faultType" placeholder="请选择故障原因" clearable style="width: 300px">
<el-option
v-for="dict in dict.type.device_fault_reason"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="故障子类" prop="faultSubclass">
<el-input v-model="form.faultSubclass" placeholder="请输入故障子类" style="width: 300px"/>
</el-form-item>
<el-form-item label="备注" prop="faultRemark">
<el-input v-model="form.faultRemark" placeholder="请输入备注" style="width: 300px"/>
</el-form-item>
<el-form-item v-if="false" label="工厂编码" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码" />
</el-form-item>
<el-form-item v-if="false" label="备用字段1" prop="attr1">
<el-input v-model="form.attr1" placeholder="请输入备用字段1" />
</el-form-item>
<el-form-item v-if="false" label="备用字段2" prop="attr2">
<el-input v-model="form.attr2" placeholder="请输入备用字段2" />
</el-form-item>
<el-form-item v-if="false" label="备用字段3" prop="attr3">
<el-input v-model="form.attr3" placeholder="请输入备用字段3" />
</el-form-item>
<el-form-item v-if="false" label="删除标志" prop="delFlag">
<el-input v-model="form.delFlag" 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>
</template>
<script>
import { listFaultReason, getFaultReason, delFaultReason, addFaultReason, updateFaultReason } from "@/api/device/faultReason";
export default {
name: "FaultType",
dicts: ['device_fault_reason'],
data() {
return {
//
pickerOptions: {
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: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
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]);
}
}]
},
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
faultList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
faultCode: null,
faultType: null,
faultSubclass: null,
faultRemark: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
createTimeArray: [],
updateTimeArray: [],
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询故障原因维护列表 */
getList() {
this.loading = true;
listFaultReason(this.queryParams).then(response => {
this.faultList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
faultId: null,
faultCode: null,
faultType: null,
faultSubclass: null,
faultRemark: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
//
this.queryParams.createTimeArray = [];
this.queryParams.updateTimeArray = [];
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.faultId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加故障原因维护";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const faultId = row.faultId || this.ids
getFaultReason(faultId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改故障原因维护";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.faultId != null) {
updateFaultReason(this.form).then(response => {
if (response.code != 500) {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addFaultReason(this.form).then(response => {
if (response.code != 500) {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const faultIds = row.faultId || this.ids;
var faultCodes = '';
//
for (let i = 0; i < this.faultList.length; i++) {
for (let j = 0; j < faultIds.length; j++) {
if (faultIds[j] == this.faultList[i].faultId) {
faultCodes = faultCodes + this.faultList[i].faultCode + ',';
}
}
}
if (faultCodes == '') {
for (let i = 0; i < this.faultList.length; i++) {
if (faultIds == this.faultList[i].faultId) {
faultCodes = this.faultList[i].faultCode;
}
}
}
this.$modal.confirm('是否确认删除故障原因维护编号为"' + faultCodes + '"的数据项?').then(function() {
return delFaultReason(faultIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('device/faultReason/export', {
...this.queryParams
}, `faultType_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -5,12 +5,13 @@
<el-input
v-model="queryParams.faultCode"
placeholder="请输入故障类型编码"
style="width: 180px"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="故障类型" prop="faultType">
<el-select v-model="queryParams.faultType" placeholder="请选择故障类型" clearable>
<el-select v-model="queryParams.faultType" placeholder="请选择故障类型" clearable style="width: 180px">
<el-option
v-for="dict in dict.type.device_fault_type"
:key="dict.value"
@ -24,6 +25,7 @@
v-model="queryParams.faultSubclass"
placeholder="请输入故障子类"
clearable
style="width: 180px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -82,6 +84,17 @@
placeholder="请输入创建人"
clearable
@keyup.enter.native="handleQuery"
style="width: 140px"
/>
</el-form-item>
<el-form-item label="更新人" prop="updateBy">
<el-input
class="my-select-input"
v-model="queryParams.updateBy"
placeholder="请输入更新人"
clearable
@keyup.enter.native="handleQuery"
style="width: 140px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
@ -97,15 +110,6 @@
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="更新人" prop="updateBy">
<el-input
class="my-select-input"
v-model="queryParams.updateBy"
placeholder="请输入更新人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更新时间" prop="updateTime">
<el-date-picker
v-model="queryParams.updateTimeArray"
@ -171,7 +175,7 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="faultTypeList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="faultList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column width="60" align="center" label="序号" type="index"></el-table-column>
<el-table-column v-if="false" label="主键" align="center" prop="faultId" />
@ -231,11 +235,11 @@
<!-- 添加或修改故障类型维护对话框 -->
<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 v-if="false" label="故障类型编码" prop="faultCode">
<el-form-item v-if="false" label="故障类型编码" prop="faultCode" style="width: 300px">
<el-input v-model="form.faultCode" placeholder="请输入故障类型编码" />
</el-form-item>
<el-form-item label="故障类型" prop="faultType">
<el-select v-model="form.faultType" placeholder="请选择故障类型" clearable>
<el-select v-model="form.faultType" placeholder="请选择故障类型" clearable style="width: 300px">
<el-option
v-for="dict in dict.type.device_fault_type"
:key="dict.value"
@ -245,10 +249,10 @@
</el-select>
</el-form-item>
<el-form-item label="故障子类" prop="faultSubclass">
<el-input v-model="form.faultSubclass" placeholder="请输入故障子类" />
<el-input v-model="form.faultSubclass" placeholder="请输入故障子类" style="width: 300px"/>
</el-form-item>
<el-form-item label="备注" prop="faultRemark">
<el-input v-model="form.faultRemark" placeholder="请输入备注" />
<el-input v-model="form.faultRemark" placeholder="请输入备注" style="width: 300px"/>
</el-form-item>
<el-form-item v-if="false" label="工厂编码" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码" />
@ -323,7 +327,7 @@ export default {
//
total: 0,
//
faultTypeList: [],
faultList: [],
//
title: "",
//
@ -363,7 +367,7 @@ export default {
getList() {
this.loading = true;
listFaultType(this.queryParams).then(response => {
this.faultTypeList = response.rows;
this.faultList = response.rows;
this.total = response.total;
this.loading = false;
});
@ -458,18 +462,18 @@ export default {
var faultCodes = '';
//
for (let i = 0; i < this.faultTypeList.length; i++) {
for (let i = 0; i < this.faultList.length; i++) {
for (let j = 0; j < faultIds.length; j++) {
if (faultIds[j] == this.faultTypeList[i].faultId) {
faultCodes = faultCodes + this.faultTypeList[i].faultCode + ',';
if (faultIds[j] == this.faultList[i].faultId) {
faultCodes = faultCodes + this.faultList[i].faultCode + ',';
}
}
}
if (faultCodes == '') {
for (let i = 0; i < this.faultTypeList.length; i++) {
if (faultIds == this.faultTypeList[i].faultId) {
faultCodes = this.faultTypeList[i].faultCode;
for (let i = 0; i < this.faultList.length; i++) {
if (faultIds == this.faultList[i].faultId) {
faultCodes = this.faultList[i].faultCode;
}
}
}

@ -0,0 +1,333 @@
<template>
<el-dialog
title="设备选择"
v-if="showFlag"
:visible.sync="showFlag"
:modal="false"
width="1200px"
center
:before-close="cancelEquipmentForm"
>
<el-row :gutter="20">
<!--分类数据-->
<el-col :span="5" :xs="24">
<el-card>
<span>请选择设备类型</span>
<div class="head-container" style="text-align: center">
<el-tree
:data="treeData"
:props="{ id: 'equipmentTypeCode', label: 'equipmentTypeName' }"
node-key="id"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
default-expand-all
@node-click="handleNodeClick"
/>
</div>
</el-card>
</el-col>
<!--设备数据-->
<el-col :span="19" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="设备编码" prop="itemCode">
<el-input
v-model="queryParams.itemCode"
placeholder="请输入设备编码"
clearable
style="width: 160px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备名称" prop="itemName">
<el-input
v-model="queryParams.itemName"
placeholder="请输入设备名称"
clearable
style="width: 160px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="组线" prop="groupLine">
<template>
<el-select
v-model="queryParams.groupLine"
filterable
placeholder="请选择组线"
style="width: 160px"
>
<el-option
v-for="item in options"
:key="item.equipmentCode"
:label="item.equipmentName"
:value="item.equipmentCode"
>
</el-option>
</el-select>
</template>
</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-table
v-loading="loading"
:data="itemList"
@selection-change="handleEquipmentSelectionChange"
ref="myTable"
>
<el-table-column width="50" align="center" type="selection">
<!-- <template v-slot="scope">
<el-radio v-model="selectedItemId" :label="scope.row.itemId" @change="handleRowChange(scope.row)">{{""}}</el-radio>
</template> -->
</el-table-column>
<!-- 序号 -->
<el-table-column
type="index"
width="90"
align="center"
:index="indexMethod"
label="序号"
></el-table-column>
<el-table-column
label="设备编码"
align="center"
key="itemCode"
prop="equipmentCode"
v-if="columns[0].visible"
>
</el-table-column>
<el-table-column
label="设备类型编码"
align="center"
key="itemTypeCode"
prop="equipmentTypeCode"
v-if="columns[2].visible"
>
</el-table-column>
<el-table-column
label="设备名称"
align="left"
key="itemName"
prop="equipmentName"
v-if="columns[1].visible"
:show-overflow-tooltip="true"
/>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitEquipmentForm"> </el-button>
<el-button @click="cancelEquipmentForm"> </el-button>
</div>
</el-dialog>
</template>
<script>
import {
getEquipmentList,
getEquipmentTypeList,
getGroupLineList,
} from "@/api/device/faultReport";
import {getEquList} from "@/api/device/plan";
import { treeselect } from "@/api/wms/equipment";
import { Message } from "element-ui";
export default {
name: "MdItemSingle",
data() {
return {
treeData: [],
showFlag: false,
//
selectedItemId: undefined,
selectedRows: undefined,
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
itemList: null,
//
itemTypeOptions: undefined,
//
equipmentTypeCode: undefined,
//
queryParams: {
pageNum: 1,
pageSize: 10,
itemName: undefined,
equipmentTypeCode: undefined,
itemTypeId: 0,
itemCodeGet: "",
itemCode: undefined,
equipmentCode: null,
equipmentName: null,
groupLine: null,
},
//
columns: [
{ key: 0, label: `设备编码`, visible: true },
{ key: 1, label: `设备名称`, visible: true },
{ key: 2, label: `设备类型`, visible: true },
],
};
},
created() {
this.getList();
this.getEquipmentType();
},
methods: {
//
reset() {
this.form = {
itemId: null,
itemCode: null,
itemType: null,
groupLine :null,
};
this.resetForm("form");
},
handleEquipmentSelectionChange(val) {
this.itemList = val;
},
//
indexMethod(index) {
return index + 1;
},
/** 查询设备编码列表*/
getList() {
this.loading = true;
this.queryParams.equipmentCode = this.queryParams.itemCode;
this.queryParams.equipmentName = this.queryParams.itemName;
getEquipmentList(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
//线
getGroupLineList().then((response) => {
this.options = response.rows;
});
},
//
getEquList() {
this.loading = true;
this.queryParams.equipmentCode = this.queryParams.itemCode;
this.queryParams.equipmentName = this.queryParams.itemName;
getEquList(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查询分类下拉树结构 */
getEquipmentType() {
getEquipmentTypeList().then((response) => {
this.treeData = response.rows;
});
},
//
filterNode(value, data) {
console.log(value, data);
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
//
handleNodeClick(data) {
this.queryParams.equipmentTypeCode = data.equipmentTypeCode;
console.log(this.queryParams.equipmentTypeCode);
this.queryParams.pageNum = 1;
this.getList();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getEquList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.equipmentTypeCode = null;
this.resetForm("queryForm");
this.queryParams.pageNum = 1;
this.getList()
},
//
handleEquipmentSelectionChange(selection) {
this.ids = selection.map((item) => item.equipmentCode);
this.single = selection.length !== 1;
this.multiple = !selection.length;
console.log("多选框", this.ids);
},
submitEquipmentForm() {
const data = this.ids;
if (data.length > 1) {
Message.warning("只能选择一个报修机器,请勿选择多个!");
} else {
const equipmentCode = data.toString();
if (this.queryParams.itemCodeGet == "") {
this.queryParams.itemCodeGet = equipmentCode;
} else {
this.queryParams.itemCodeGet =
this.queryParams.itemCodeGet + "," + equipmentCode;
}
this.selectedRows = this.queryParams.itemCodeGet;
this.$emit("onSelected", this.selectedRows);
this.queryParams.equipmentTypeCode = null;
this.getList();
this.showFlag = false;
this.queryParams.itemCodeGet = "";
}
},
cancelEquipmentForm() {
this.queryParams.equipmentTypeCode = null;
this.getList();
this.showFlag = false;
},
},
};
</script>

@ -0,0 +1,229 @@
<template>
<el-dialog
title="人员选择"
v-if="showFlag"
:visible.sync="showFlag"
:modal="false"
width="800px"
center
:before-close="cancel"
>
<el-row :gutter="20">
<!--人员数据-->
<el-col :span="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="人员编码" prop="itemCode">
<el-input
v-model="queryParams.itemCode"
placeholder="请输入人员编码"
clearable
style="width: 150px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="人员名称" prop="itemName">
<el-input
v-model="queryParams.itemName"
placeholder="请输入人员名称"
clearable
style="width: 150px"
@keyup.enter.native="handleQuery"
/>
</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-table
v-loading="loading"
:data="itemList"
@selection-change="handleSelectionChange"
ref="multipleTable"
>
<el-table-column
width="50"
align="center"
type="selection"
></el-table-column>
<!-- 序号 -->
<el-table-column
type="index"
width="90"
align="center"
:index="indexMethod"
label="序号"
></el-table-column>
<el-table-column
label="人员编码"
align="center"
key="itemCode"
prop="userName"
v-if="columns[0].visible"
>
</el-table-column>
<el-table-column
label="人员名称"
align="left"
key="itemName"
prop="nickName"
v-if="columns[1].visible"
:show-overflow-tooltip="true"
/>
<el-table-column
label="人员联系方式"
align="left"
prop="phonenumber"
v-if="columns[2].visible"
:show-overflow-tooltip="true"
/>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm" :disabled="multiple"
> </el-button
>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { getRepairPersonList } from "@/api/device/faultReport";
import { Message } from "element-ui";
export default {
name: "MdItemSingle",
data() {
return {
treeData1: [],
showFlag: false,
//
selectedItemId: undefined,
selectedRows: undefined,
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
itemList: null,
//
queryParams: {
pageNum: 1,
pageSize: 10,
itemName: null,
itemCodeGet: "",
itemCode: null,
nickName: null,
userName: null,
},
//
columns: [
{ key: 0, label: `人员编码`, visible: true },
{ key: 1, label: `人员名称`, visible: true },
{ key: 1, label: `联系方式`, visible: true },
],
};
},
created() {
this.getList();
},
methods: {
//
cancel() {
this.showFlag = false;
this.reset();
},
//
reset() {
this.form = {
itemId: null,
itemCode: this.processId,
itemType: null,
};
this.resetForm("form");
},
handleSelectionChange(val) {
this.itemList = val;
},
//
indexMethod(index) {
return index + 1;
},
/** 查询设备编码列表*/
getList() {
this.loading = true;
this.queryParams.userName = this.queryParams.itemCode;
this.queryParams.nickName = this.queryParams.itemName;
getRepairPersonList(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.equipmentTypeCode = null;
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.userId);
this.userCodes = selection.map((item) => item.userName);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
submitForm() {
if (this.$refs.multipleTable.selection.length > 1) {
Message.warning("只能选择一个报修人,请勿选择多个!");
} else {
this.$emit("onSelected", this.$refs.multipleTable.selection);
this.showFlag = false;
this.getList();
}
},
},
};
</script>

@ -4,7 +4,7 @@
v-if="showFlag"
:visible.sync="showFlag"
:modal="false"
width="1100px"
width="1200px"
center
:before-close="cancelEquipmentForm"
>
@ -15,7 +15,7 @@
<span>请选择设备类型</span>
<div class="head-container" style="text-align: center">
<el-tree
:data="treeData1"
:data="treeData"
:props="{ id: 'equipmentTypeCode', label: 'equipmentTypeName' }"
node-key="id"
:expand-on-click-node="false"
@ -43,7 +43,7 @@
v-model="queryParams.itemCode"
placeholder="请输入设备编码"
clearable
style="width: 240px"
style="width: 160px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -52,10 +52,28 @@
v-model="queryParams.itemName"
placeholder="请输入设备名称"
clearable
style="width: 240px"
style="width: 160px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="组线" prop="groupLine">
<template>
<el-select
v-model="queryParams.groupLine"
filterable
placeholder="请选择组线"
style="width: 160px"
>
<el-option
v-for="item in options"
:key="item.equipmentCode"
:label="item.equipmentName"
:value="item.equipmentCode"
>
</el-option>
</el-select>
</template>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@ -134,15 +152,18 @@
import {
getEquipmentList,
getEquipmentTypeList,
getGroupLineList,
} from "@/api/device/faultReport";
import {getEquList} from "@/api/device/plan";
import { treeselect } from "@/api/wms/equipment";
import { Message } from "element-ui";
export default {
name: "MdItemSingle",
// components: { Treeselect },
data() {
return {
treeData1: [],
treeData: [],
showFlag: false,
//
selectedItemId: undefined,
@ -165,13 +186,14 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
itemName: null,
equipmentTypeCode: null,
itemName: undefined,
equipmentTypeCode: undefined,
itemTypeId: 0,
itemCodeGet: "",
itemCode: null,
itemCode: undefined,
equipmentCode: null,
equipmentName: null,
groupLine: null,
},
//
columns: [
@ -191,8 +213,9 @@ export default {
reset() {
this.form = {
itemId: null,
itemCode: this.processId,
itemCode: null,
itemType: null,
groupLine :null,
};
this.resetForm("form");
},
@ -216,14 +239,29 @@ export default {
this.total = response.total;
this.loading = false;
});
//线
getGroupLineList().then((response) => {
this.options = response.rows;
});
},
//
getEquList() {
this.loading = true;
this.queryParams.equipmentCode = this.queryParams.itemCode;
this.queryParams.equipmentName = this.queryParams.itemName;
getEquList(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查询分类下拉树结构 */
getEquipmentType() {
getEquipmentTypeList().then((response) => {
console.log(response.rows);
this.treeData1 = response.rows;
console.log(this.treeData1);
this.treeData = response.rows;
});
},
@ -236,23 +274,24 @@ export default {
//
handleNodeClick(data) {
console.log("id", data.id);
this.queryParams.equipmentTypeCode = data.equipmentTypeCode;
console.log(this.equipmentTypeCode);
this.handleQuery();
console.log(this.queryParams.equipmentTypeCode);
this.queryParams.pageNum = 1;
this.getList();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.getEquList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.equipmentTypeCode = null;
this.resetForm("queryForm");
this.handleQuery();
this.queryParams.pageNum = 1;
this.getList()
},
//
@ -279,7 +318,6 @@ export default {
this.$emit("onSelected", this.selectedRows);
this.queryParams.equipmentTypeCode = null;
this.getList();
console.log("111111", this.queryParams.equipmentTypeCode);
this.showFlag = false;
this.queryParams.itemCodeGet = "";
}
@ -288,7 +326,6 @@ export default {
cancelEquipmentForm() {
this.queryParams.equipmentTypeCode = null;
this.getList();
console.log("111111", this.queryParams.equipmentTypeCode);
this.showFlag = false;
},
},

@ -539,11 +539,21 @@
<el-dialog
title="选择设备"
:visible.sync="selectEqu"
width="50%"
width="1100px"
append-to-body
>
<el-form :model="equipmentQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="组线" prop="groupLine">
<el-select v-model="equipmentQuery.groupLine" placeholder="请选择组线">
<el-option
v-for="group in groupLineList"
:key="group.equipmentCode"
:label="group.equipmentName"
:value="group.equipmentCode"
/>
</el-select>
</el-form-item>
<el-form-item label="设备编码">
<el-input
v-model="equipmentQuery.equipmentCode"
@ -645,7 +655,7 @@ import {
updatePlan,
getEquList,
formatEquItem,
getPersonList, getWorkCenter, initUpdatePlanInfo
getPersonList, getWorkCenter, initUpdatePlanInfo, getGroupLine
} from "@/api/device/plan";
import plan from "@/views/plan/plan/index.vue";
@ -654,6 +664,8 @@ export default {
dicts: ['device_loop_type', 'sys_normal_disable'],
data() {
return {
// 线
groupLineList:[],
//
planLoading:false,
// list
@ -678,6 +690,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
},
@ -903,7 +916,21 @@ export default {
},
//
selectEquBtn() {
this.getEquList();
this.equipmentQuery = {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
};
// 线
getGroupLine().then(response => {
this.groupLineList = response.data;
this.equipmentQuery.groupLine = response.data[0].equipmentCode;
this.getEquList();
})
this.selectEqu = true;
},
//
@ -1032,6 +1059,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:this.groupLineList[0].equipmentCode,
pageNum: 1,
pageSize: 10,
};

@ -310,14 +310,14 @@
</el-form-item>
</el-col>
<el-col :span="2">
<el-select v-model="form.itemLoopType" placeholder="周期">
<el-option
v-for="dict in dict.type.device_loop_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<el-select v-model="form.itemLoopType" placeholder="周期">
<el-option
v-for="dict in dict.type.device_loop_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-col>
</el-row>
<!-- 动态表单 -->

@ -0,0 +1,547 @@
<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="workshop">
<el-input
v-model="queryParams.workshop"
placeholder="请输入车间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="组线" prop="groupLine">
<el-input
v-model="queryParams.groupLine"
placeholder="请输入组线"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备" prop="equipmentName">
<el-input
v-model="queryParams.equipmentName"
placeholder="请输入设备"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备编码" prop="equipmentCode">
<el-input
v-model="queryParams.equipmentCode"
placeholder="请输入设备编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="故障时间" prop="faultTime">
<el-input
v-model="queryParams.faultTime"
placeholder="请输入故障时间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="实际运行时间;运行时间-故障时间" prop="actualOperationTime">
<el-input
v-model="queryParams.actualOperationTime"
placeholder="请输入实际运行时间;运行时间-故障时间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="运行时间" prop="operationTime">
<el-input
v-model="queryParams.operationTime"
placeholder="请输入运行时间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="故障率" prop="failureRate">
<el-input
v-model="queryParams.failureRate"
placeholder="请输入故障率"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="故障描述" prop="failureDescription">
<el-input
v-model="queryParams.failureDescription"
placeholder="请输入故障描述"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="原因分析" prop="reasonAnalyze">
<el-input
v-model="queryParams.reasonAnalyze"
placeholder="请输入原因分析"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="处理方式" prop="handlingMethod">
<el-input
v-model="queryParams.handlingMethod"
placeholder="请输入处理方式"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="维修人" prop="repairPerson">
<el-input
v-model="queryParams.repairPerson"
placeholder="请输入维修人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="设备状态描述" prop="equStatusDes">
<el-input
v-model="queryParams.equStatusDes"
placeholder="请输入设备状态描述"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="更换备件" prop="replaceSpare">
<el-input
v-model="queryParams.replaceSpare"
placeholder="请输入更换备件"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="工厂" prop="factoryCode">
<el-input
v-model="queryParams.factoryCode"
placeholder="请输入工厂"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="备用字段1" prop="attr1">
<el-input
v-model="queryParams.attr1"
placeholder="请输入备用字段1"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="备用字段2" prop="attr2">
<el-input
v-model="queryParams.attr2"
placeholder="请输入备用字段2"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-if="false" label="备用字段3" prop="attr3">
<el-input
v-model="queryParams.attr3"
placeholder="请输入备用字段3"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="日期" prop="createTime">
<el-date-picker
v-model="queryParams.createTimeArray"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
: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-form-item>
</el-form>
<el-row v-if="false" :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['device:operation:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:operation: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="['device:operation: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="['device:operation:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<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 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>
</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="120" label="设备" align="center" 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="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">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:operation:edit']"
>修改</el-button>
<el-button
v-if="false"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:operation: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"
/>
<!-- 添加或修改设备运行记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item v-if="false" label="车间" prop="workshop">
<el-input v-model="form.workshop" placeholder="请输入车间" />
</el-form-item>
<el-form-item v-if="false" label="组线" prop="groupLine">
<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-form-item>
<el-form-item v-if="false" label="设备编码" prop="equipmentCode">
<el-input v-model="form.equipmentCode" placeholder="请输入设备编码" />
</el-form-item>
<el-form-item label="故障时间" prop="faultTime">
<el-input v-model="form.faultTime" placeholder="请输入故障时间" />
</el-form-item>
<el-form-item label="实际运行时间" prop="actualOperationTime">
<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-form-item>
<el-form-item label="故障描述" prop="failureDescription">
<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-form-item>
<el-form-item label="处理方式" prop="handlingMethod">
<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-form-item>
<el-form-item label="设备状态描述" prop="equStatusDes">
<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-form-item>
<el-form-item v-if="false" label="工厂" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂" />
</el-form-item>
<el-form-item v-if="false" label="备用字段1" prop="attr1">
<el-input v-model="form.attr1" placeholder="请输入备用字段1" />
</el-form-item>
<el-form-item v-if="false" label="备用字段2" prop="attr2">
<el-input v-model="form.attr2" placeholder="请输入备用字段2" />
</el-form-item>
<el-form-item v-if="false" label="备用字段3" prop="attr3">
<el-input v-model="form.attr3" placeholder="请输入备用字段3" />
</el-form-item>
<el-form-item v-if="false" label="删除标识" prop="delFlag">
<el-input v-model="form.delFlag" 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>
</template>
<script>
import { listOperation, getOperation, delOperation, addOperation, updateOperation } from "@/api/device/operation";
import {parseTime} from "../../../utils/ruoyi";
export default {
name: "Operation",
data() {
return {
//
pickerOptions: {
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: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
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]);
}
}]
},
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
operationList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
workshop: null,
groupLine: null,
equipmentName: null,
equipmentCode: null,
faultTime: null,
actualOperationTime: null,
operationTime: null,
failureRate: null,
failureDescription: null,
reasonAnalyze: null,
handlingMethod: null,
repairPerson: null,
equStatusDes: null,
replaceSpare: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
createTimeArray: [],
},
//
form: {},
//
rules: {
delFlag: [
{ required: true, message: "删除标识不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
parseTime,
/** 查询设备运行记录列表 */
getList() {
this.loading = true;
listOperation(this.queryParams).then(response => {
this.operationList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
workshop: null,
groupLine: null,
equipmentName: null,
equipmentCode: null,
faultTime: null,
actualOperationTime: null,
operationTime: null,
failureRate: null,
failureDescription: null,
reasonAnalyze: null,
handlingMethod: null,
repairPerson: null,
equStatusDes: null,
replaceSpare: null,
factoryCode: null,
attr1: null,
attr2: null,
attr3: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
//
this.queryParams.createTimeArray = [];
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加设备运行记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getOperation(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改设备运行记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOperation(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOperation(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除设备运行记录编号为"' + ids + '"的数据项?').then(function() {
return delOperation(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('device/operation/export', {
...this.queryParams
}, `operation_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -799,7 +799,7 @@
<el-dialog
:title="title"
:visible.sync="openWrite"
width="1200px"
width="1500px"
append-to-body
v-if="openWrite"
>
@ -807,10 +807,10 @@
<el-tabs type="border-card">
<el-tab-pane label="维修基本信息">
<el-descriptions
:column="2"
:column="3"
border
:contentStyle="CS"
:label-style="LS"
:contentStyle="CS1"
:label-style="LS1"
>
<el-descriptions-item label="维修工单号">{{
form.workCode
@ -876,8 +876,8 @@
<el-descriptions :column="1" border>
<el-descriptions-item
label="维修前故障图片"
:contentStyle="CS"
:label-style="LSP"
:contentStyle="CS1"
:label-style="LSP1"
>
<el-image
v-for="(item, index) in urlBeforeLists"
@ -889,8 +889,8 @@
<el-descriptions :column="1" border>
<el-descriptions-item
label="维修后故障图片"
:contentStyle="CS"
:label-style="LSP"
:contentStyle="CS1"
:label-style="LSP1"
>
<el-image
v-for="(item, index) in urlAfterLists"
@ -900,6 +900,7 @@
></el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="检查项信息">
<el-table
:data="detailList"
@ -967,24 +968,9 @@
</el-table-column>
<el-table-column prop="detailUnit" label="单位" width="40">
</el-table-column>
<el-table-column prop="picturePath" label="维修后图片" width="60">
<el-table-column prop="picturePath" label="提交图片">
<template slot-scope="scope">
<el-popover placement="right" width="300" trigger="hover">
<div class="standardUrl_body">
<div
v-for="(url, index) in scope.row.standardUrlLists"
:key="index"
>
<el-image :src="url"></el-image>
</div>
</div>
<el-button
slot="reference"
type="primary"
icon="el-icon-picture"
circle
></el-button>
</el-popover>
<FileUpload v-model="scope.row.picturePath" />
</template>
</el-table-column>
</el-table>
@ -1069,7 +1055,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="维修用时" prop="workCostTime">
<el-input v-model="form.workCostTime" style="width: 195px">
<el-input v-model="form.workCostTime" style="width: 195px" disabled>
</el-input>
</el-form-item>
</el-col>
@ -1083,7 +1069,7 @@
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item label="故障类型" prop="faultType">
<el-cascader
:options="faultTypeOption"
@ -1092,7 +1078,7 @@
clearable
></el-cascader>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="24">
@ -1126,7 +1112,6 @@
></ItemSelectSpareParts>
</el-tab-pane>
</el-tabs>
</el-tabs>
</el-form>
<div slot="footer" class="dialog-footer">
@ -1290,6 +1275,7 @@
<template slot-scope="scope">
<el-input
size="small"
disabled
v-model="scope.row.repairValue"
v-if="scope.row.standardType == 'quantify'"
></el-input>
@ -1412,7 +1398,7 @@
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item label="故障类型" prop="faultType">
<el-cascader
disabled
@ -1422,7 +1408,7 @@
clearable
></el-cascader>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="24">
@ -1444,6 +1430,7 @@
:optType="optType"
:workCode="form.workCode"
:equipmentCode="form.equipmentCode"
:workStatus="form.workStatus"
v-if="form.workCode != null"
></ItemSelectSpareParts>
</el-tab-pane>
@ -1491,15 +1478,28 @@ export default {
CS: {
"text-align": "center",
},
CS1: {
"text-align": "center",
width: "250px",
},
LS: {
"text-align": "center",
width: "225px",
},
LS1: {
"text-align": "center",
width: "250px",
},
//
LSP: {
"text-align": "center",
width: "225px",
},
//
LSP1: {
"text-align": "center",
width: "250px",
},
//
detailList: [],
//
@ -1819,6 +1819,7 @@ export default {
this.openAdd = true;
this.title = "快速工单";
},
/** 填写按钮操作 */
handleWrite(row) {
this.reset();
@ -1895,7 +1896,18 @@ export default {
standard.repairValue = item.repairValue;
standard.repairReach = item.repairReach;
standard.standardType = item.standardType;
//
if (item.picturePaths != null) {
var newFiles = [];
item.picturePaths.forEach((item) => {
var newFile = {};
newFile.name = item.fileName;
newFile.url = item.fileAddress;
newFiles.push(newFile);
});
standard.picturePath = newFiles;
}
//
var standardUrlLists = [];
if (item.picturePaths != null) {
item.picturePaths.forEach((item2) => {
@ -1981,24 +1993,51 @@ export default {
},
/** 提交填写维修记录按钮 */
submitWriteForm() {
if (Array.isArray(this.form.afterRepairFile)) {
this.form.afterRepairFile = this.listToString(
this.form.afterRepairFile
);
}
this.form.faultType = this.form.faultType.join(",");
console.log(this.form.faultType);
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.workId != null) {
this.form.standardList = this.detailList;
console.log(this.form.standardList);
writeRepairOrder(this.form).then((response) => {
this.openWrite = false;
this.$modal.msgSuccess("填写维修记录成功!");
this.queryParams.workStatus = null;
this.getList();
});
if (this.form.workStatus == null || this.form.workStatus == "") {
Message.warning("维修状态不能为空");
} else if (
this.form.workPerson == null ||
this.form.workPerson == ""
) {
Message.warning("维修人员不能为空");
} else if (
this.form.workStartTime == null ||
this.form.workStartTime == ""
) {
Message.warning("维修开始时间不能为空");
} else if (
this.form.workEndTime == null ||
this.form.workEndTime == ""
) {
Message.warning("维修结束时间不能为空");
} else {
if (Array.isArray(this.form.afterRepairFile)) {
this.form.afterRepairFile = this.listToString(
this.form.afterRepairFile
);
}
if (this.form.faultType != null) {
this.form.faultType = this.form.faultType.join(",");
}
this.form.standardList = this.detailList;
//
this.form.standardList.forEach((item) => {
if (Array.isArray(item.picturePath)) {
item.picturePath = this.listToString(item.picturePath);
}
});
writeRepairOrder(this.form).then((response) => {
this.openWrite = false;
this.$modal.msgSuccess("填写维修记录成功!");
this.queryParams.workStatus = null;
this.getList();
});
}
}
}
});
@ -2119,10 +2158,6 @@ export default {
margin-left: 452px;
}
.step-body {
margin-top: 30px;
}
.standardUrl_body {
height: 400px;
overflow-y: auto;

@ -4,7 +4,7 @@
v-if="showFlag"
:visible.sync="showFlag"
:modal="false"
width="1100px"
width="1200px"
center
:before-close="cancelEquipmentForm"
>
@ -15,7 +15,7 @@
<span>请选择设备类型</span>
<div class="head-container" style="text-align: center">
<el-tree
:data="treeData1"
:data="treeData"
:props="{ id: 'equipmentTypeCode', label: 'equipmentTypeName' }"
node-key="id"
:expand-on-click-node="false"
@ -43,7 +43,7 @@
v-model="queryParams.itemCode"
placeholder="请输入设备编码"
clearable
style="width: 240px"
style="width: 160px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -52,10 +52,28 @@
v-model="queryParams.itemName"
placeholder="请输入设备名称"
clearable
style="width: 240px"
style="width: 160px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="组线" prop="groupLine">
<template>
<el-select
v-model="queryParams.groupLine"
filterable
placeholder="请选择组线"
style="width: 160px"
>
<el-option
v-for="item in options"
:key="item.equipmentCode"
:label="item.equipmentName"
:value="item.equipmentCode"
>
</el-option>
</el-select>
</template>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@ -134,16 +152,18 @@
import {
getEquipmentList,
getEquipmentTypeList,
getGroupLineList,
} from "@/api/device/faultReport";
import {getEquList} from "@/api/device/plan";
import { treeselect } from "@/api/wms/equipment";
import { Message } from "element-ui";
export default {
name: "MdItemSingle",
// components: { Treeselect },
data() {
return {
treeData1: [],
treeData: [],
showFlag: false,
//
selectedItemId: undefined,
@ -173,6 +193,7 @@ export default {
itemCode: undefined,
equipmentCode: null,
equipmentName: null,
groupLine: null,
},
//
columns: [
@ -192,8 +213,9 @@ export default {
reset() {
this.form = {
itemId: null,
itemCode: this.processId,
itemCode: null,
itemType: null,
groupLine :null,
};
this.resetForm("form");
},
@ -217,14 +239,29 @@ export default {
this.total = response.total;
this.loading = false;
});
//线
getGroupLineList().then((response) => {
this.options = response.rows;
});
},
//
getEquList() {
this.loading = true;
this.queryParams.equipmentCode = this.queryParams.itemCode;
this.queryParams.equipmentName = this.queryParams.itemName;
getEquList(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查询分类下拉树结构 */
getEquipmentType() {
getEquipmentTypeList().then((response) => {
console.log(response.rows);
this.treeData1 = response.rows;
console.log(this.treeData1);
this.treeData = response.rows;
});
},
@ -237,23 +274,24 @@ export default {
//
handleNodeClick(data) {
console.log("id", data.id);
this.queryParams.equipmentTypeCode = data.equipmentTypeCode;
console.log(this.equipmentTypeCode);
this.handleQuery();
console.log(this.queryParams.equipmentTypeCode);
this.queryParams.pageNum = 1;
this.getList();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.getEquList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.equipmentTypeCode = null;
this.resetForm("queryForm");
this.handleQuery();
this.queryParams.pageNum = 1;
this.getList()
},
//
@ -267,7 +305,7 @@ export default {
submitEquipmentForm() {
const data = this.ids;
if (data.length > 1) {
Message.warning("只能选择一个修机器,请勿选择多个!");
Message.warning("只能选择一个修机器,请勿选择多个!");
} else {
const equipmentCode = data.toString();
if (this.queryParams.itemCodeGet == "") {
@ -280,7 +318,6 @@ export default {
this.$emit("onSelected", this.selectedRows);
this.queryParams.equipmentTypeCode = null;
this.getList();
console.log("111111", this.queryParams.equipmentTypeCode);
this.showFlag = false;
this.queryParams.itemCodeGet = "";
}
@ -289,7 +326,6 @@ export default {
cancelEquipmentForm() {
this.queryParams.equipmentTypeCode = null;
this.getList();
console.log("111111", this.queryParams.equipmentTypeCode);
this.showFlag = false;
},
},

@ -8,6 +8,7 @@
icon="el-icon-plus"
size="mini"
@click="handleSelectSparePartsLedger"
v-if = "this.queryParams.workStatus != '1' "
v-hasPermi="['device:sparePartsApplicationRecord:add']"
>新增</el-button
>
@ -24,11 +25,13 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-if = "this.queryParams.workStatus != '1' "
v-hasPermi="['device:sparePartsApplicationRecord:remove']"
>删除</el-button
>
</el-col>
<right-toolbar
v-if = "this.queryParams.workStatus != '1' "
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
@ -169,6 +172,7 @@ export default {
pageSize: 10,
workCode: this.workCode,
equipmentCode: this.equipmentCode,
workStatus:this.workStatus,
applyType: null,
applyCode: null,
spareCode: null,
@ -196,6 +200,7 @@ export default {
equipmentCode: undefined,
workCode: undefined,
optType: undefined,
workStatus: undefined,
},
created() {
this.getList();

@ -6,7 +6,7 @@
:modal="false"
width="1100px"
center
:before-close="cancel"
:before-close = "cancel"
>
<el-form
:model="queryParams"
@ -247,6 +247,8 @@ export default {
},
/** 查询备品备件台账管理列表 */
getList() {
this.sparePartsLedgerList = null;
this.total = 0;
this.loading = true;
listSparePartsLedger(this.queryParams).then((response) => {
this.sparePartsLedgerList = response.rows;

@ -306,15 +306,15 @@
<el-form-item label="备品备件名称" prop="spareName">
<el-input
v-model="form.spareName"
placeholder="请选择备品备件名称"
style="width: 280px"
disabled
/>
</el-form-item>
<el-form-item label="规格型号" prop="spareModel">
<el-input
v-model="form.spareModel"
placeholder="请选择规格型号"
style="width: 280px"
disabled
/>
</el-form-item>
<el-form-item label="库存总数量" prop="amount">
@ -486,9 +486,6 @@ export default {
spareName: [
{ required: true, message: "备品备件名称不能为空", trigger: "blur" },
],
spareModel: [
{ required: true, message: "规格型号不能为空", trigger: "blur" },
],
spareQuantity: [
{ required: true, message: "数量不能为空", trigger: "blur" },
],
@ -517,6 +514,7 @@ export default {
this.form.amount = obj[0].amount;
this.form.storageAmount = obj[0].storageAmount;
this.form.availableQuantity = obj[0].amount - obj[0].storageAmount;
this.form.spareQuantity = obj[0].spareQuantity;
},
//
handleSelectEquipment() {

@ -84,18 +84,6 @@
v-if="columns[1].visible"
:show-overflow-tooltip="true"
/>
<el-table-column
label="部门编码"
align="center"
prop="postCode"
v-if="columns[2].visible"
></el-table-column>
<el-table-column
label="部门名称"
align="center"
prop="postName"
v-if="columns[3].visible"
></el-table-column>
</el-table>
<pagination
@ -149,8 +137,6 @@ export default {
columns: [
{ key: 0, label: `人员编码`, visible: true },
{ key: 1, label: `人员名称`, visible: true },
{ key: 2, label: `部门编码`, visible: true },
{ key: 3, label: `部门名称`, visible: true },
],
};
},

@ -55,13 +55,6 @@
>
</el-form-item>
<el-row :gutter="10" class="mb8">
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="sparePartsLedgerList"
@ -136,7 +129,7 @@
</div>
</el-dialog>
</template>
<script>
import {
listSparePartsLedger,
@ -252,6 +245,8 @@ export default {
},
/** 查询备品备件台账管理列表 */
getList() {
this.sparePartsLedgerList = null;
this.total = 0;
this.loading = true;
listSparePartsLedger(this.queryParams).then((response) => {
this.sparePartsLedgerList = response.rows;
@ -340,22 +335,12 @@ export default {
message: "请勿选择多种备件!",
type: "warning",
});
// const number =
// this.$refs.multipleTable.selection.amount -
// this.$refs.multipleTable.selection.storageAmount;
// console.log("number", number);
// if (this.$refs.multipleTable.selection.spareQuantity > number) {
// this.$message({
// message: "",
// type: "warning",
// });
// }
} else {
this.$emit("onSelected", this.$refs.multipleTable.selection);
this.showFlag = false;
this.getList();
}
},
},
};
</script>

@ -26,7 +26,25 @@
style="width: 150px"
/>
</el-form-item>
<el-form-item label="备件类型" prop="spareType">
<el-form-item label="设备厂家" prop="spareSupplier">
<el-input
v-model="queryParams.spareSupplier"
placeholder="请输入设备厂家"
clearable
@keyup.enter.native="handleQuery"
style="width: 150px"
/>
</el-form-item>
<el-form-item label="所属设备名称" prop="ownEquipmentName">
<el-input
v-model="queryParams.ownEquipmentName"
placeholder="请输入所属设备名称"
clearable
@keyup.enter.native="handleQuery"
style="width: 150px"
/>
</el-form-item>
<!-- <el-form-item label="备件类型" prop="spareType">
<el-select
v-model="queryParams.spareType"
placeholder="请选择备件类型"
@ -42,7 +60,7 @@
:value="item.spareType"
></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
@ -110,47 +128,39 @@
<el-table
v-loading="loading"
:data="sparePartsLedgerList"
@selection-change="handleSelectionChange"
border
>
<el-table-column type="selection" width="55" align="center" />
<!-- 序号 -->
<el-table-column
type="index"
width="90"
align="center"
:index="indexMethod"
label="序号"
/>
<el-table-column
label="备品备件号"
align="center"
prop="materialCode"
width="120"
/>
<el-table-column
label="备品备件描述"
align="center"
prop="materialDesc"
width="120"
/>
<el-table-column
<el-table-column type="index" width="90" align="center" :index="indexMethod" label="序号"/>
<!-- 缺了所属设备编码设备数量所在产线 -->
<el-table-column label="所属设备名称" align="center" prop="ownEquipmentName" width="120"/>
<!-- 供应商字段里 设备厂家 -->
<el-table-column label="设备厂家" align="center" prop="spareSupplier" width="200"/>
<el-table-column label="备品备件号" align="center" prop="materialCode" width="120"/>
<el-table-column label="备品备件名称" align="center" prop="materialDesc" width="120"/>
<el-table-column label="规格型号" align="center" prop="spareMode" width="200"/>
<el-table-column label="单机装配数量" align="center" prop="unitQuantity" width="50"/>
<el-table-column label="单价" align="center" prop="unitPrice" width="50"/>
<el-table-column label="单位" align="center" prop="userDefined1" width="50"/>
<el-table-column label="代用件" align="center" prop="substituteParts" width="50"/>
<el-table-column label="安全库存" align="center" prop="safeStock" width="50"/>
<el-table-column label="现有库存" align="center" prop="amount" width="50"/>
<el-table-column label="采购方式" align="center" prop="procurementMethod" width="150"/>
<!-- 生产厂商暂时没有用 -->
<!-- <el-table-column label="生产厂商" align="center" prop="spareManufacturer" width="200"/> -->
<el-table-column label="更换周期(月)" align="center" prop="spareReplacementCycle"/>
<el-table-column label="采购周期(天)" align="center" prop="procurementCycle"/>
<el-table-column label="期初结存" align="center" prop="openingBalance"/>
<el-table-column label="入库记录" align="center" prop="inputRecords"/>
<el-table-column label="出库记录" align="center" prop="outputRecords"/>
<el-table-column label="期末盘点" align="center" prop="endInventory"/>
<el-table-column label="期末金额" align="center" prop="endMoney"/>
<!-- <el-table-column
label="备品备件类型"
align="center"
prop="spareType"
width="120"
/>
<el-table-column label="规格型号" align="center" prop="spareMode" />
<el-table-column
label="生产厂商"
align="center"
prop="spareManufacturer"
/>
<el-table-column label="供应商" align="center" prop="spareSupplier" />
<el-table-column
label="循环周期"
align="center"
prop="spareReplacementCycle"
/>
<el-table-column
label="计量单位"
align="center"
@ -175,7 +185,7 @@
label="库存下限"
align="center"
prop="spareInventoryUpper"
/>
/> -->
<el-table-column
v-if="false"
label="工厂号"
@ -183,28 +193,13 @@
prop="factoryCode"
/>
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column
label="创建时间"
align="center"
prop="gmtCreate"
width="180"
>
<el-table-column label="创建时间" align="center" prop="gmtCreate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.gmtCreate, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="最后更新人"
align="center"
prop="lastModifiedBy"
width="100"
/>
<el-table-column
label="最后更新时间"
align="center"
prop="gmtModified"
width="200"
>
<el-table-column label="最后更新人" align="center" prop="lastModifiedBy" width="100"/>
<el-table-column label="最后更新时间" align="center" prop="gmtModified" width="200">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.gmtModified, "{y}-{m}-{d}") }}</span>
</template>
@ -476,6 +471,7 @@ export default {
spareConversionRatio: null,
spareInventoryFloor: null,
spareInventoryUpper: null,
ownEquipmentName : null,
},
options: [
{
@ -648,6 +644,7 @@ export default {
`sparePartsLedger_${new Date().getTime()}.xlsx`
);
},
},
};
</script>

@ -567,11 +567,21 @@
border
title="选择设备"
:visible.sync="selectEqu"
width="50%"
width="1100px"
append-to-body
>
<el-form :model="equipmentQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="组线" prop="groupLine">
<el-select v-model="equipmentQuery.groupLine" placeholder="请选择组线">
<el-option
v-for="group in groupLineList"
:key="group.equipmentCode"
:label="group.equipmentName"
:value="group.equipmentCode"
/>
</el-select>
</el-form-item>
<el-form-item label="设备编码">
<el-input
v-model="equipmentQuery.equipmentCode"
@ -676,7 +686,7 @@ import {
import {
addPlan,
delPlan,
getEquList,
getEquList, getGroupLine,
getPersonList,
getWorkCenter,
initUpdatePlanInfo, listPlan,
@ -688,6 +698,8 @@ export default {
dicts: ['device_loop_type', 'sys_normal_disable','device_yes_no'],
data() {
return {
// 线
groupLineList:[],
//
rules: {},
//
@ -742,6 +754,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
},
@ -948,7 +961,21 @@ export default {
},
//
selectEquBtn() {
this.getEquList();
this.equipmentQuery = {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
};
// 线
getGroupLine().then(response => {
this.groupLineList = response.data;
this.equipmentQuery.groupLine = response.data[0].equipmentCode;
this.getEquList();
})
this.selectEqu = true;
},
//
@ -1077,6 +1104,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:this.groupLineList[0].equipmentCode,
pageNum: 1,
pageSize: 10,
};

@ -0,0 +1,665 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryParams"
size="small"
:inline="true"
v-show="showSearch"
>
<!-- <el-form-item label="所属工作中心" prop="workCenter">
<template>
<el-select
v-model="queryParams.workCenter"
filterable
placeholder="请选择"
style="width: 195px"
>
<el-option
v-for="item in workCenterOptions"
:key="item.factoryCode"
:label="item.factoryName"
:value="item.factoryCode"
>
</el-option>
</el-select>
</template>
</el-form-item> -->
<el-form-item label="设备编码" prop="equipmentCode">
<el-input
v-model="queryParams.equipmentCode"
placeholder="请选择设备编码"
style="width: 200px"
>
<el-button
slot="append"
@click="handleSelectEquipment"
icon="el-icon-search"
></el-button>
</el-input>
<ItemSelect ref="itemSelect" @onSelected="onItemSelectedEquipment">
</ItemSelect>
</el-form-item>
<el-form-item prop="orderEnd" label="月份">
<el-date-picker
v-model="queryParams.orderEnd"
type="month"
value-format="yyyy-MM"
placeholder="选择月"
>
</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-form-item>
</el-form>
<el-table :data="checkList" border :span-method="objectSpanMethod">
<el-table-column prop="itemTypeName" label="维护类型" width="100" fixed>
</el-table-column>
<el-table-column prop="itemName" label="检查项名称" width="150">
</el-table-column>
<el-table-column prop="itemMethod" label="检查项方法" width="150">
</el-table-column>
<el-table-column prop="itemTools" label="工具" width="150">
</el-table-column>
<el-table-column prop="standardName" label="标准名称" width="500">
</el-table-column>
<el-table-column prop="itemLoop" label="次" width="55"> </el-table-column>
<el-table-column prop="itemLoopType" label="周期" width="60">
</el-table-column>
<el-table-column prop="head" label="责任人" width="70"> </el-table-column>
<el-table-column prop="one" label="1" width="40">
<template slot-scope="scope">
{{ scope.row.one == "1" ? "√" : scope.row.one == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="two" label="2" width="40">
<template slot-scope="scope">
{{ scope.row.two == "1" ? "√" : scope.row.two == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="three" label="3" width="40">
<template slot-scope="scope">
{{ scope.row.three == "1" ? "√" : scope.row.three == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="four" label="4" width="40">
<template slot-scope="scope">
{{ scope.row.four == "1" ? "√" : scope.row.four == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="five" label="5" width="40">
<template slot-scope="scope">
{{ scope.row.five == "1" ? "√" : scope.row.five == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="six" label="6" width="40">
<template slot-scope="scope">
{{ scope.row.six == "1" ? "√" : scope.row.six == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="seven" label="7" width="40">
<template slot-scope="scope">
{{ scope.row.seven == "1" ? "√" : scope.row.seven == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="eight" label="8" width="40">
<template slot-scope="scope">
{{ scope.row.eight == "1" ? "√" : scope.row.eight == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="nine" label="9" width="40">
<template slot-scope="scope">
{{ scope.row.nine == "1" ? "√" : scope.row.nine == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="ten" label="10" width="40">
<template slot-scope="scope">
{{ scope.row.ten == "1" ? "√" : scope.row.ten == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="eleven" label="11" width="40">
<template slot-scope="scope">
{{ scope.row.eleven == "1" ? "√" : scope.row.eleven == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twelve" label="12" width="40">
<template slot-scope="scope">
{{ scope.row.twelve == "1" ? "√" : scope.row.twelve == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="thirteen" label="13" width="40">
<template slot-scope="scope">
{{ scope.row.thirteen == "1" ? "√" : scope.row.thirteen == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="fourteen" label="14" width="40">
<template slot-scope="scope">
{{ scope.row.fourteen == "1" ? "√" : scope.row.fourteen == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="fifteen" label="15" width="40">
<template slot-scope="scope">
{{ scope.row.fifteen == "1" ? "√" : scope.row.fifteen == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="sixteen" label="16" width="40">
<template slot-scope="scope">
{{ scope.row.sixteen == "1" ? "√" : scope.row.sixteen == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="seventeen" label="17" width="40">
<template slot-scope="scope">
{{ scope.row.seventeen == "1" ? "√" : scope.row.seventeen == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="eighteen" label="18" width="40">
<template slot-scope="scope">
{{ scope.row.eighteen == "1" ? "√" : scope.row.eighteen == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="nineteen" label="19" width="40">
<template slot-scope="scope">
{{ scope.row.nineteen == "1" ? "√" : scope.row.nineteen == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twenty" label="20" width="40">
<template slot-scope="scope">
{{ scope.row.twenty == "1" ? "√" : scope.row.twenty == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentyOne" label="21" width="40">
<template slot-scope="scope">
{{ scope.row.twentyOne == "1" ? "√" : scope.row.twentyOne == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentyTwo" label="22" width="40">
<template slot-scope="scope">
{{ scope.row.twentyTwo == "1" ? "√" : scope.row.twentyTwo == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentyThree" label="23" width="40">
<template slot-scope="scope">
{{ scope.row.twentyThree == "1" ? "√" : scope.row.twentyThree == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentyFour" label="24" width="40">
<template slot-scope="scope">
{{ scope.row.twentyFour == "1" ? "√" : scope.row.twentyFour == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentyFive" label="30" width="40">
<template slot-scope="scope">
{{ scope.row.twentyFive == "1" ? "√" : scope.row.twentyFive == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentySix" label="26" width="40">
<template slot-scope="scope">
{{ scope.row.twentySix == "1" ? "√" : scope.row.twentySix == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentySeven" label="27" width="40">
<template slot-scope="scope">
{{ scope.row.twentySeven == "1" ? "√" : scope.row.twentySeven == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentyEight" label="28" width="40">
<template slot-scope="scope">
{{ scope.row.twentyEight == "1" ? "√" : scope.row.twentyEight == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="twentyNine" label="29" width="40">
<template slot-scope="scope">
{{ scope.row.twentyNine == "1" ? "√" : scope.row.twentyNine == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="thirty" label="30" width="40">
<template slot-scope="scope">
{{ scope.row.thirty == "1" ? "√" : scope.row.thirty == "0" ? "X" : ""}}
</template>
</el-table-column>
<el-table-column prop="thirtyOne" label="31" width="40">
<template slot-scope="scope">
{{ scope.row.thirtyOne == "1" ? "√" : scope.row.thirtyOne == "0" ? "X" : ""}}
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { Message } from "element-ui";
import ItemSelect from "./selectSingleEquipment.vue";
import {
getSummaryReport,
getWorkCenter,
selectMatchList,
} from "@/api/device/item";
export default {
name: "SummaryReport",
components: { ItemSelect },
dicts: ["device_repair_status"],
data() {
return {
//
CS: {
"text-align": "center",
},
LS: {
"text-align": "center",
width: "200px",
},
//
workCenterOptions: [],
//
checkList: [],
//
matchList: [],
optType: undefined,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
repairOrderList: [],
//
title: "",
//
openView: false,
//
queryParams: {
//
equipmentCode: null,
//
orderEnd: null,
//
workCenter: null,
},
//
form: {},
//
rules: {},
};
},
created() {
this.getList();
},
methods: {
//
indexMethod(index) {
return index + 1;
},
/** 查询维修工单列表 */
getList() {
this.loading = true;
getWorkCenter().then((response) => {
this.workCenterOptions = response.data;
});
getSummaryReport(this.queryParams).then((response) => {
this.checkList = response.data;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
if (
this.queryParams.equipmentCode == null ||
this.queryParams.orderEnd == null
) {
this.$message({
message: "设备编码或者年月不能为空!",
type: "warning",
});
} else {
this.loading = true;
console.log("查询参数", this.queryParams);
selectMatchList(this.queryParams).then((response) => {
this.matchList = response.data;
console.log("this.matchList", this.matchList);
//
var i = 0;
var j = 0;
console.log("this.matchList", this.matchList);
console.log("this.checkList", this.checkList);
for (i = 0; i < this.checkList.length; i++) {
for (j = 0; j < this.matchList.length; j++) {
if (
this.checkList[i].itemName == this.matchList[j].itemName &&
this.checkList[i].standardName == this.matchList[j].standardName
) {
var str = this.matchList[j].orderEnd.substr(8);
if (str == "01") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].one = this.matchList[j].repairReach;
}else{
this.checkList[i].one = this.matchList[j].detailReach;
}
} else if (str == "02") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].two = this.matchList[j].repairReach;
}else{
this.checkList[i].two = this.matchList[j].detailReach;
}
} else if (str == "03") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].three = this.matchList[j].repairReach;
}else{
this.checkList[i].three = this.matchList[j].detailReach;
}
} else if (str == "04") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].four = this.matchList[j].repairReach;
}else{
this.checkList[i].four = this.matchList[j].detailReach;
}
} else if (str == "05") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].five = this.matchList[j].repairReach;
}else{
this.checkList[i].five = this.matchList[j].detailReach;
}
} else if (str == "06") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].six = this.matchList[j].repairReach;
}else{
this.checkList[i].six = this.matchList[j].detailReach;
}
} else if (str == "07") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].seven = this.matchList[j].repairReach;
}else{
this.checkList[i].seven = this.matchList[j].detailReach;
}
} else if (str == "08") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].eight = this.matchList[j].repairReach;
}else{
this.checkList[i].eight = this.matchList[j].detailReach;
}
} else if (str == "09") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].nine = this.matchList[j].repairReach;
}else{
this.checkList[i].nine = this.matchList[j].detailReach;
}
} else if (str == "10") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].ten = this.matchList[j].repairReach;
}else{
this.checkList[i].ten = this.matchList[j].detailReach;
}
} else if (str == "11") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].eleven = this.matchList[j].repairReach;
}else{
this.checkList[i].eleven = this.matchList[j].detailReach;
}
} else if (str == "12") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twelve = this.matchList[j].repairReach;
}else{
this.checkList[i].twelve = this.matchList[j].detailReach;
}
} else if (str == "13") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].thirteen = this.matchList[j].repairReach;
}else{
this.checkList[i].thirteen = this.matchList[j].detailReach;
}
} else if (str == "14") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].fourteen = this.matchList[j].repairReach;
}else{
this.checkList[i].fourteen = this.matchList[j].detailReach;
}
} else if (str == "15") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].fifteen = this.matchList[j].repairReach;
}else{
this.checkList[i].fifteen = this.matchList[j].detailReach;
}
} else if (str == "16") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].sixteen = this.matchList[j].repairReach;
}else{
this.checkList[i].sixteen = this.matchList[j].detailReach;
}
} else if (str == "17") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].seventeen = this.matchList[j].repairReach;
}else{
this.checkList[i].seventeen = this.matchList[j].detailReach;
}
} else if (str == "18") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].eighteen = this.matchList[j].repairReach;
}else{
this.checkList[i].eighteen = this.matchList[j].detailReach;
}
} else if (str == "19") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].nineteen = this.matchList[j].repairReach;
}else{
this.checkList[i].nineteen = this.matchList[j].detailReach;
}
} else if (str == "20") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twenty = this.matchList[j].repairReach;
}else{
this.checkList[i].twenty = this.matchList[j].detailReach;
}
} else if (str == "21") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentyOne = this.matchList[j].repairReach;
}else{
this.checkList[i].twentyOne = this.matchList[j].detailReach;
}
} else if (str == "22") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentyTwo = this.matchList[j].repairReach;
}else{
this.checkList[i].twentyTwo = this.matchList[j].detailReach;
}
} else if (str == "23") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentyThree = this.matchList[j].repairReach;
}else{
this.checkList[i].twentyThree = this.matchList[j].detailReach;
}
} else if (str == "24") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentyFour = this.matchList[j].repairReach;
}else{
this.checkList[i].twentyFour = this.matchList[j].detailReach;
}
} else if (str == "25") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentyFive = this.matchList[j].repairReach;
}else{
this.checkList[i].twentyFive = this.matchList[j].detailReach;
}
} else if (str == "26") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentySix = this.matchList[j].repairReach;
}else{
this.checkList[i].twentySix = this.matchList[j].detailReach;
}
} else if (str == "27") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentySeven = this.matchList[j].repairReach;
}else{
this.checkList[i].twentySeven = this.matchList[j].detailReach;
}
} else if (str == "28") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentyEight = this.matchList[j].repairReach;
}else{
this.checkList[i].twentyEight = this.matchList[j].detailReach;
}
} else if (str == "29") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].twentyNine = this.matchList[j].repairReach;
}else{
this.checkList[i].twentyNine = this.matchList[j].detailReach;
}
} else if (str == "30") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].thirty = this.matchList[j].repairReach;
}else{
this.checkList[i].thirty = this.matchList[j].detailReach;
}
} else if (str == "31") {
if(this.matchList[j].repairReach == 1){
this.checkList[i].thirtyOne = this.matchList[j].repairReach;
}else{
this.checkList[i].thirtyOne = this.matchList[j].detailReach;
}
}
console.log("this.checkList[i].one", this.checkList[i].one);
} else {
}
}
}
});
}
},
//
reset() {
this.form = {
workId: null,
orderId: null,
orderCode: null,
workHandle: null,
workPlanTime: null,
workPlanDownTime: null,
orderRelevance: null,
workPerson: null,
workTeam: null,
workOutsource: null,
workDownMachine: null,
equipmentCode: null,
workReason: null,
workFaultDesc: null,
workCostTime: null,
workCost: null,
outWorkId: null,
outWorkCode: null,
attr1: null,
attr2: null,
attr3: null,
createBy: null,
createTime: null,
updateTime: null,
updateBy: null,
delFlag: null,
factoryCode: null,
};
this.resetForm("form");
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.equipmentCode = null;
this.queryParams.year = null;
this.queryParams.mouth = null;
this.queryParams.workCenter = null;
this.queryParams.equipmentCode = null;
this.handleQuery();
},
//
onItemSelectedEquipment(obj) {
this.queryParams.equipmentCode = obj;
},
//
handleSelectEquipment() {
this.$refs.itemSelect.showFlag = true;
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
//
const currentValue = row[column.property];
//
const preRow = this.checkList[rowIndex - 1];
const preValue = preRow ? preRow[column.property] : null;
//
if (currentValue === preValue) {
return { rowspan: 0, colspan: 0 };
} else {
//
let rowspan = 1;
for (let i = rowIndex + 1; i < this.checkList.length; i++) {
const nextRow = this.checkList[i];
const nextValue = nextRow[column.property];
if (nextValue === currentValue) {
rowspan++;
} else {
break;
}
}
return { rowspan, colspan: 1 };
}
}
if (columnIndex === 1) {
//
const currentValue = row[column.property];
//
const preRow = this.checkList[rowIndex - 1];
const preValue = preRow ? preRow[column.property] : null;
//
if (currentValue === preValue) {
return { rowspan: 0, colspan: 0 };
} else {
//
let rowspan = 1;
for (let i = rowIndex + 1; i < this.checkList.length; i++) {
const nextRow = this.checkList[i];
const nextValue = nextRow[column.property];
if (nextValue === currentValue) {
rowspan++;
} else {
break;
}
}
return { rowspan, colspan: 1 };
}
}
},
},
};
</script>
<style>
.standardUrl_body {
height: 400px;
overflow-y: auto;
}
</style>

@ -0,0 +1,296 @@
<template>
<el-dialog
title="设备选择"
v-if="showFlag"
:visible.sync="showFlag"
:modal="false"
width="1100px"
center
:before-close="cancelEquipmentForm"
>
<el-row :gutter="20">
<!--分类数据-->
<el-col :span="5" :xs="24">
<el-card>
<span>请选择设备类型</span>
<div class="head-container" style="text-align: center">
<el-tree
:data="treeData1"
:props="{ id: 'equipmentTypeCode', label: 'equipmentTypeName' }"
node-key="id"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
default-expand-all
@node-click="handleNodeClick"
/>
</div>
</el-card>
</el-col>
<!--设备数据-->
<el-col :span="19" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="设备编码" prop="itemCode">
<el-input
v-model="queryParams.itemCode"
placeholder="请输入设备编码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备名称" prop="itemName">
<el-input
v-model="queryParams.itemName"
placeholder="请输入设备名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</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-table
v-loading="loading"
:data="itemList"
@selection-change="handleEquipmentSelectionChange"
ref="myTable"
>
<el-table-column width="50" align="center" type="selection">
<!-- <template v-slot="scope">
<el-radio v-model="selectedItemId" :label="scope.row.itemId" @change="handleRowChange(scope.row)">{{""}}</el-radio>
</template> -->
</el-table-column>
<!-- 序号 -->
<el-table-column
type="index"
width="90"
align="center"
:index="indexMethod"
label="序号"
></el-table-column>
<el-table-column
label="设备编码"
align="center"
key="itemCode"
prop="equipmentCode"
v-if="columns[0].visible"
>
</el-table-column>
<el-table-column
label="设备类型编码"
align="center"
key="itemTypeCode"
prop="equipmentTypeCode"
v-if="columns[2].visible"
>
</el-table-column>
<el-table-column
label="设备名称"
align="left"
key="itemName"
prop="equipmentName"
v-if="columns[1].visible"
:show-overflow-tooltip="true"
/>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitEquipmentForm"> </el-button>
<el-button @click="cancelEquipmentForm"> </el-button>
</div>
</el-dialog>
</template>
<script>
import {
getEquipmentList,
getEquipmentTypeList,
} from "@/api/device/faultReport";
import { Message } from "element-ui";
export default {
name: "MdItemSingle",
// components: { Treeselect },
data() {
return {
treeData1: [],
showFlag: false,
//
selectedItemId: undefined,
selectedRows: undefined,
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
itemList: null,
//
itemTypeOptions: undefined,
//
equipmentTypeCode: undefined,
//
queryParams: {
pageNum: 1,
pageSize: 10,
itemName: null,
equipmentTypeCode: null,
itemTypeId: 0,
itemCodeGet: "",
itemCode: null,
equipmentCode: null,
equipmentName: null,
},
//
columns: [
{ key: 0, label: `设备编码`, visible: true },
{ key: 1, label: `设备名称`, visible: true },
{ key: 2, label: `设备类型`, visible: true },
],
};
},
created() {
this.getList();
this.getEquipmentType();
},
methods: {
//
reset() {
this.form = {
itemId: null,
itemCode: this.processId,
itemType: null,
};
this.resetForm("form");
},
handleEquipmentSelectionChange(val) {
this.itemList = val;
},
//
indexMethod(index) {
return index + 1;
},
/** 查询设备编码列表*/
getList() {
this.loading = true;
this.queryParams.equipmentCode = this.queryParams.itemCode;
this.queryParams.equipmentName = this.queryParams.itemName;
getEquipmentList(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查询分类下拉树结构 */
getEquipmentType() {
getEquipmentTypeList().then((response) => {
console.log(response.rows);
this.treeData1 = response.rows;
console.log(this.treeData1);
});
},
//
filterNode(value, data) {
console.log(value, data);
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
//
handleNodeClick(data) {
console.log("id", data.id);
this.queryParams.equipmentTypeCode = data.equipmentTypeCode;
console.log(this.equipmentTypeCode);
this.handleQuery();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.equipmentTypeCode = null;
this.resetForm("queryForm");
this.handleQuery();
},
//
handleEquipmentSelectionChange(selection) {
this.ids = selection.map((item) => item.equipmentCode);
this.single = selection.length !== 1;
this.multiple = !selection.length;
console.log("多选框", this.ids);
},
submitEquipmentForm() {
const data = this.ids;
if (data.length > 1) {
Message.warning("只能选择一个报修机器,请勿选择多个!");
} else {
const equipmentCode = data.toString();
if (this.queryParams.itemCodeGet == "") {
this.queryParams.itemCodeGet = equipmentCode;
} else {
this.queryParams.itemCodeGet =
this.queryParams.itemCodeGet + "," + equipmentCode;
}
this.selectedRows = this.queryParams.itemCodeGet;
this.$emit("onSelected", this.selectedRows);
this.queryParams.equipmentTypeCode = null;
this.getList();
console.log("111111", this.queryParams.equipmentTypeCode);
this.showFlag = false;
this.queryParams.itemCodeGet = "";
}
},
cancelEquipmentForm() {
this.queryParams.equipmentTypeCode = null;
this.getList();
console.log("111111", this.queryParams.equipmentTypeCode);
this.showFlag = false;
},
},
};
</script>

@ -43,7 +43,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工单状态" prop="orderStatus">
<el-form-item label="工单状态" prop="planStatus">
<el-select v-model="queryParams.planStatus" placeholder="请选择工单状态" clearable>
<el-option
v-for="dict in dict.type.device_order_status"
@ -53,7 +53,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="循环周期" prop="planLoop">
<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"
@ -111,7 +111,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备名称" prop="equipmentCode">
<el-form-item v-if="false" label="设备名称" prop="equipmentName">
<el-input
v-model="queryParams.equipmentName"
placeholder="请输入设备名称"
@ -127,7 +127,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="点检人" prop="planPerson">
<el-form-item label="保养人" prop="planPerson">
<el-input
v-model="queryParams.planPerson"
placeholder="请输入点检人"
@ -617,11 +617,21 @@
<el-dialog
title="选择设备"
:visible.sync="selectEqu"
width="800px"
width="1100px"
append-to-body
>
<el-form :model="equipmentQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="组线" prop="groupLine">
<el-select v-model="equipmentQuery.groupLine" placeholder="请选择组线">
<el-option
v-for="group in groupLineList"
:key="group.equipmentCode"
:label="group.equipmentName"
:value="group.equipmentCode"
/>
</el-select>
</el-form-item>
<el-form-item label="设备编码">
<el-input
v-model="equipmentQuery.equipmentCode"
@ -1169,8 +1179,8 @@ import {
addUpkeepOrder,
updateUpkeepOrder, subInspect
} from "@/api/device/upkeepOrder";
import {formatEquItem, querySpareList} from "@/api/device/upkeepPlan";
import {getEquList, getPersonList, getWorkCenter} from "@/api/device/plan";
import {formatEquItem, formatEquItemNoCondition, querySpareList} from "@/api/device/upkeepPlan";
import {getEquList, getGroupLine, getPersonList, getWorkCenter} from "@/api/device/plan";
import {delDeviceOrder, getDeviceOrder, listDeviceOrder, updateDeviceOrder} from "@/api/device/deviceOrder";
import {getInspectionWork, updateInspectionWork} from "@/api/device/inspectionWork";
@ -1179,6 +1189,8 @@ export default {
dicts: ['device_order_status', 'device_loop_type','device_reach_standard','device_upkeep_type','device_inspect_status'],
data() {
return {
// 线
groupLineList:[],
// list
spareOnList:[],
//
@ -1291,6 +1303,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
},
@ -1320,6 +1333,7 @@ export default {
open: false,
//
queryParams: {
orderInspect:null,
pageNum: 1,
pageSize: 10,
planId: null,
@ -1413,6 +1427,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:this.groupLineList[0].equipmentCode,
pageNum: 1,
pageSize: 10,
};
@ -1636,7 +1651,7 @@ export default {
this.form.equipmentItem = [];
//
formatEquItem(this.selectEquList).then(response => {
formatEquItemNoCondition(this.selectEquList).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.form.equipmentItem.push(response.data[i]);
@ -1662,7 +1677,21 @@ export default {
},
//
selectEquBtn() {
this.getEquList();
this.equipmentQuery = {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
};
// 线
getGroupLine().then(response => {
this.groupLineList = response.data;
this.equipmentQuery.groupLine = response.data[0].equipmentCode;
this.getEquList();
})
this.selectEqu = true;
},
//
@ -1778,6 +1807,7 @@ export default {
//
reset() {
this.form = {
queryParams:null,
orderId: null,
planId: null,
planCode: null,

@ -597,11 +597,21 @@
<el-dialog
title="选择设备"
:visible.sync="selectEqu"
width="50%"
width="1100px"
append-to-body
>
<el-form :model="equipmentQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="组线" prop="groupLine">
<el-select v-model="equipmentQuery.groupLine" placeholder="请选择组线">
<el-option
v-for="group in groupLineList"
:key="group.equipmentCode"
:label="group.equipmentName"
:value="group.equipmentCode"
/>
</el-select>
</el-form-item>
<el-form-item label="设备编码">
<el-input
v-model="equipmentQuery.equipmentCode"
@ -873,12 +883,12 @@ import {
delUpkeepPlan,
addUpkeepPlan,
updateUpkeepPlan,
formatEquItem, setSpareList, querySpareList
formatEquItem, setSpareList, querySpareList, formatEquItemNoCondition
} from "@/api/device/upkeepPlan";
import {
addPlan,
delPlan,
getEquList,
getEquList, getGroupLine,
getPersonList,
getWorkCenter,
initUpdatePlanInfo,
@ -890,6 +900,8 @@ export default {
dicts: ['device_loop_type', 'sys_normal_disable','device_upkeep_type'],
data() {
return {
// 线
groupLineList:[],
// list
spareOnList:[],
//
@ -969,6 +981,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
},
@ -1401,14 +1414,25 @@ export default {
}
//
formatEquItem(this.selectEquList).then(response => {
if (this.form.calculationRule == "2"){
formatEquItem(this.selectEquList).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.form.equipmentItem.push(response.data[i]);
}
for (let i = 0; i < response.data.length; i++) {
this.form.equipmentItem.push(response.data[i]);
}
this.selectEqu = false;
})
this.selectEqu = false;
})
}else {
formatEquItemNoCondition(this.selectEquList).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.form.equipmentItem.push(response.data[i]);
}
this.selectEqu = false;
})
}
},
//
@ -1427,7 +1451,21 @@ export default {
},
//
selectEquBtn() {
this.getEquList();
this.equipmentQuery = {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:null,
pageNum: 1,
pageSize: 10,
};
// 线
getGroupLine().then(response => {
this.groupLineList = response.data;
this.equipmentQuery.groupLine = response.data[0].equipmentCode;
this.getEquList();
})
this.selectEqu = true;
},
//
@ -1550,6 +1588,7 @@ export default {
equipmentCode: null,
equipmentName: null,
workshopCode: null,
groupLine:this.groupLineList[0].equipmentCode,
pageNum: 1,
pageSize: 10,
};

@ -9,9 +9,9 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订单编码" prop="orderCode">
<el-form-item label="订单编码" prop="workorderCodeSap">
<el-input
v-model="queryParams.orderCode"
v-model="queryParams.workorderCodeSap"
placeholder="请输入订单编码"
clearable
@keyup.enter.native="handleQuery"
@ -51,17 +51,18 @@
>
</el-date-picker>
</el-form-item>
<!--
<el-form-item label="单据状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择单据状态"
@change="$forceUpdate()"
clearable
style="width:205px"
@keyup.enter.native="handleQuery">
<el-option v-for="item in options" :key="item.status" :label="item.label" :value="item.status"></el-option>
</el-select>
</el-form-item>
<el-select
v-model="queryParams.status"
placeholder="请选择单据状态"
@change="$forceUpdate()"
clearable
style="width:205px"
@keyup.enter.native="handleQuery">
<el-option v-for="item in options" :key="item.status" :label="item.label" :value="item.status"></el-option>
</el-select>
</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>
@ -128,41 +129,24 @@
<el-table v-loading="loading" :data="prepareList" @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="工单编码" align="center" prop="workorderCode" width="220" fixed/>
<!-- <el-table-column label="父工单" align="center" prop="parentOrder" /> -->
<el-table-column label="订单编码" align="center" prop="orderCode" width="220"/>
<el-table-column type="index" align="center" :index="indexMethod" label="序号" fixed/>
<el-table-column label="工单编码" align="center" prop="workorderCode" width="200" fixed/>
<el-table-column label="订单编码" align="center" prop="workorderCodeSap" width="200" fixed/>
<el-table-column label="产品编号" align="center" prop="productCode" width="180"/>
<!-- <el-table-column label="产品类型" align="center" prop="prodType" /> -->
<el-table-column label="产品名称" align="center" prop="productName" width="180"/>
<!-- <el-table-column label="规格型号" align="center" prop="productSpc" /> -->
<el-table-column label="产品名称" align="center" prop="productName" width="180" :show-overflow-tooltip="true"/>
<el-table-column label="工单生产日期" align="center" prop="productDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.productDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="班次" align="center" prop="shiftId" /> -->
<!--
<el-table-column label="单据状态" align="center" prop="status">
<template slot-scope="scope">
{{ scope.row.status == "L0" ? "待确认" : "已确认" }}
</template>
</el-table-column>
<el-table-column label="物料编号" align="center" prop="materialCode" width="180"/>
<el-table-column label="物料名称" align="center" prop="materialName" width="250"/>
<el-table-column label="物料规格型号" align="center" prop="materialSpc" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="生产数量" align="center" prop="quantity" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handlePrepareDetail(scope.row)"
v-hasPermi="['mes:prepareDetail:list']"
>查看备料单</el-button>
<Detail ref="detail"> </Detail>
{{ scope.row.status == "L0" ? "待确认" : "已确认" }}
</template>
</el-table-column> -->
</el-table-column>-->
<el-table-column label="生产数量" align="center" prop="quantity" />
<el-table-column label="单位" align="center" prop="unit" />
</el-table>
<pagination
@ -263,19 +247,21 @@
<el-table-column
prop="materialCode"
label="料号"
width="180">
width="170">
</el-table-column>
<el-table-column
prop="materailName"
prop="materialName"
label="物料描述"
width="300">
width="240">
</el-table-column>
<el-table-column
prop="unit"
width="50"
label="单位">
</el-table-column>
<el-table-column
prop="orderCode"
prop="workorderCode"
width="120"
label="生产订单">
</el-table-column>
<el-table-column
@ -288,7 +274,12 @@
</el-table-column>
<el-table-column
prop="routeCode"
width="80"
label="实发数量">
</el-table-column>
<el-table-column
prop="recoil"
label="反冲物料">
</el-table-column>
</el-table>
@ -454,7 +445,7 @@ export default {
printPrepareByCode(this.selectPrepare[0].workorderCode).then(response => {
console.log(response.data)
this.printData.factory = response.data.mesPrepareDetailList[0].factoryCode
this.printData.productDate = response.data.mesPrepare.productDate
this.printData.productDate = response.data.mesPrepareDetailList[0].productDate
this.printData.printDate = moment(new Date()).format('YYYY-MM-DD')
this.printData.workTable = response.data.mesPrepareDetailList
this.refreshNewWorkerTable = true // refreshProTabletrue

@ -34,7 +34,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="报工时间" prop="feedbackTimeArray">
<el-form-item label="生产时间" prop="feedbackTimeArray">
<el-date-picker
v-model="queryParams.feedbackTimeArray"
format="yyyy-MM-dd"
@ -150,6 +150,7 @@
>{{scope.row.workorderCode}}</el-button>
</template>
</el-table-column>
<el-table-column label="sap工单编码" align="center" prop="workorderCodeSap" width="130"/>
<el-table-column label="产品编码" align="center" prop="productCode" width="130"
:formatter="productCodeFormate"
/>
@ -161,7 +162,7 @@
<el-table-column label="累计报工数量" align="center" prop="quantityFeedback" width="100"/>
<el-table-column label="累计用人数" align="center" prop="useMan" width="100"/>
<el-table-column label="累计工时" align="center" prop="workTime" />
<el-table-column label="报工时间" align="center" prop="feedbackTimeStr" width="100"/><!--加时分秒生成报工单的逻辑要变切记-->
<el-table-column label="生产时间" align="center" prop="productDate" width="100"/>
<el-table-column label="SAP报工状态" align="center" prop="uploadStatus" width="150"/>
<el-table-column label="SAP报工时间" align="center" prop="uploadTime" width="150"/>
@ -724,7 +725,7 @@ export default {
var y = dd.getFullYear();
var m = dd.getMonth() + 1;//
var d = dd.getDate();
return y + "-" + m + "-" + d+" 00:00:00";
return y + "-" + m + "-" + d;
},
/** 查询报工报表列表 */
@ -736,8 +737,8 @@ export default {
}**/
if(this.queryParams.feedbackTimeArray !=null && this.queryParams.feedbackTimeArray.length>0){
this.queryParams.feedbackTimeStart = moment(this.queryParams.feedbackTimeArray[0]).format('YYYY-MM-DD 00:00:00');
this.queryParams.feedbackTimeEnd = moment(this.queryParams.feedbackTimeArray[1]).format('YYYY-MM-DD 23:59:59');
this.queryParams.feedbackTimeStart = moment(this.queryParams.feedbackTimeArray[0]).format('YYYY-MM-DD');
this.queryParams.feedbackTimeEnd = moment(this.queryParams.feedbackTimeArray[1]).format('YYYY-MM-DD');
}
this.loading = true;
listReportWork(this.queryParams).then(response => {
@ -773,7 +774,7 @@ export default {
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
if (!values.every(value => isNaN(value))&& column.label!='用人数') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
@ -934,7 +935,7 @@ export default {
return reportSap(code);
}).then(() => {
this.getList();
this.$modal.msgSuccess("报工成功");
//this.$modal.msgSuccess("");
}).catch(() => {});
},
/** 报工详情按钮操作 */

@ -105,8 +105,8 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="检验规则名称" align="center" prop="ruleName" />
<el-table-column label="标准值" align="left" prop="standardValue" :show-overflow-tooltip="true" width="200"/>
<el-table-column label="检验规则名称" align="center" prop="ruleName" :show-overflow-tooltip="true" width="250"/>
<el-table-column label="标准值" align="left" prop="standardValue" :show-overflow-tooltip="true" width="250"/>
<el-table-column label="上差值" align="left" prop="upperDiff" />
<el-table-column label="下差值" align="left" prop="downDiff" />
<el-table-column label="单位" align="center" prop="unit" />
@ -221,6 +221,11 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 选择检测项目 -->
<SelectProject ref="child"
:workorderCode="form.workorderCode"
@onSelected="onSelectProjects"
></SelectProject>
</div>
</template>
@ -231,16 +236,17 @@ import {
delCheckTypeProject,
addCheckTypeProject,
updateCheckTypeProject,
changeStatus
changeStatus,
submitProjects
} from "@/api/quality/checkTypeProject";
import MaterialGroupAdd from "./MaterialGroupAdd.vue";
import {listCheckType} from "@/api/quality/checkType";
import {getProjectList} from "@/api/quality/project";
import SelectProject from "./selectProject.vue";
export default {
name: "CheckTypeProject",
dicts: ["qc_rule_prop",'unit'],
components: {MaterialGroupAdd,},
components: {MaterialGroupAdd,SelectProject},
data() {
return {
//
@ -355,6 +361,7 @@ export default {
groupId: null,
materialCode: null,
projectNo: null,
projectInfos:[]
};
this.resetForm("form");
},
@ -414,12 +421,17 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加物料检验项目维护";
this.form.groupId = this.groupId;
this.form.materialCode = this.materialCode;
this.form.typeId = this.editableTabsValue;
if(this.groupId==null||this.materialCode){
this.$modal.msgError("请点击左侧节点");
return
};
if(this.queryParams.typeId==null){
this.$modal.msgError("请选择头部节点");
retrun
};
this.$refs.child.showFlag = true;
this.$refs.child.init(this.groupId,this.materialCode,this.queryParams.typeId);
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -525,6 +537,25 @@ export default {
row.status = row.status === "0" ? "1" : "0";
});
},
//
onSelectProjects(objs) {
let _this = this;
objs.forEach(function(item,index,arr){
item.projectId = item.id;
item.projectNo = item.orderNum;
item.unit = item.unitCode;
item.standardValue = item.checkStandard;
item.typeId = _this.queryParams.typeId;
item.groupId = _this.groupId;
item.materialCode = _this.materialCode;
});
submitProjects(objs).then(response => {
this.$modal.msgSuccess("提交成功");
this.open = false;
this.getList();
});
},
},
};
</script>

@ -0,0 +1,170 @@
<template>
<el-dialog title="检测项选择"
v-if="showFlag"
:visible.sync="showFlag"
:modal= false
width="1000px"
>
<el-row :gutter="20">
<el-col :span="24" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="105px" align="left">
<el-form-item label="检测项目名称">
<el-input
v-model="queryParams.ruleName"
placeholder="检测项目名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</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-table v-loading="loading" :data="itemList" @selection-change="handleBomSelectionChange" ref="myTable" >
<el-table-column width="50" align="center" type="selection">
</el-table-column>
<!-- 序号 -->
<el-table-column label="检测项目Id" align="left" key="id" prop="id" v-if="false" />
<el-table-column label="检测项目编号" align="left" key="orderNum" prop="orderNum" width="110"/>
<el-table-column label="检测项目名称" align="left" key="ruleName" prop="ruleName" width="250" :show-overflow-tooltip="true" />
<el-table-column label="规则属性" align="left" prop="propertyCode">
<template slot-scope="scope">
<dict-tag
:options="dict.type.qc_rule_prop"
:value="scope.row.propertyCode"
/>
</template>
</el-table-column>
<el-table-column label="检测标准" align="left" prop="checkStandard" width="250" :show-overflow-tooltip="true"/>
<el-table-column label="上差值" align="center" prop="upperDiff" width="100">
<template slot-scope="scope">
<el-input type="number" size="small" v-model="scope.row.upperDiff" @change="handleEdit(scope.$index,scope.row)"
:disabled='scope.row.propertyCode=="0"'></el-input>
</template>
</el-table-column>
<el-table-column label="下差值" align="center" prop="downDiff" width="100">
<template slot-scope="scope">
<el-input type="number" size="small" v-model="scope.row.downDiff" @change="handleEdit(scope.$index,scope.row)"
:disabled='scope.row.propertyCode=="0"'
></el-input>
</template>
</el-table-column>
<el-table-column label="测量单位" align="left" prop="unitCode" width="90"/>
<el-table-column label="抽样方案" align="left" prop="samplePlan" width="100"/>
<el-table-column label="合格判定" align="left" prop="judge"/ width="100">
<el-table-column label="缺陷等级" align="left" prop="defectLevel" width="90"/>
<el-table-column label="检验方式" align="left" prop="checkMode" width="90"/>
<el-table-column label="检验工具" align="left" prop="checkTool" width="90"/>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</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>
</div>
</el-dialog>
</template>
<script>
import { getProjectInfoList } from "@/api/quality/checkTypeProject";
export default {
name: "itemSelectUser",
dicts: ["qc_rule_prop"],
data() {
return {
showFlag:false,
//
selectedRows: {},
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// BOM
itemList: null,
//
bomCode: undefined,
defaultProps: {
id: "id",
label: "label"
},
selectionRows:[],
//
queryParams: {
pageNum: 1,
pageSize: 10,
groupId:null,
materialCode:null,
typeCode:null
}
};
},
created() {
//this.getList();
},
methods: {
init(groupId,materialCode,typeId){
this.queryParams.groupId = groupId;
this.queryParams.materialCode = materialCode;
this.queryParams.typeCode = typeId;
this.getList();
},
/** 查询表格列表*/
getList() {
this.loading = true;
getProjectInfoList(this.queryParams).then(response => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleBomSelectionChange(selection) {
this.selectionRows = selection
},
handleEdit(index, row) {
console.log('row:',index, row);
},
submitProjectItems() {
if ( this.selectionRows==0) {
this.$modal.msgError(`请选择数据`);
return false;
}
this.$emit('onSelected', this.$refs.myTable.selection);
this.showFlag = false;
},
}
};
</script>

@ -92,8 +92,8 @@
<el-table v-loading="loading" :data="projectList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="检验规则编号" align="center" prop="orderNum" width="100"/>
<el-table-column label="检验规则名称" align="center" prop="ruleName" width="100"/>
<el-table-column label="检验规则编号" align="center" prop="orderNum" width="110"/>
<el-table-column label="检验规则名称" align="center" prop="ruleName" width="200" :show-overflow-tooltip="true"/>
<el-table-column label="检验规则属性" align="center" prop="propertyCode" width="100">
<template slot-scope="scope">
<dict-tag
@ -206,6 +206,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="缺陷等级" prop="defectLevel">
<el-input type='textarea' v-model="form.defectLevel" placeholder="请输入检验标准" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="合格判定" prop="judge">

@ -253,17 +253,22 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="收货数量" prop="quality">
<el-input type="number" v-model="form.quality" placeholder="请输入收货数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="抽样数量" prop="sampleQuality">
<el-input type="number" v-model="form.sampleQuality" placeholder="请输入抽样数量" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="不合格数量" prop="noOkQuality">
<el-input type="number" v-model="form.noOkQuality" placeholder="请输入不合格数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="单位" prop="unit" >
<el-select v-model="form.unit" placeholder="请选择单位" style="width: 100%;">
<el-option

@ -27,6 +27,7 @@
<el-table-column width="50" align="center" type="selection"/>
<el-table-column label="id" align="left" prop="recordId" width="100" v-if="false"/>
<el-table-column label="入库单号" align="left" prop="orderNo" width="180"/>
<el-table-column label="质检状态" align="left" prop="qualityStatus" width="100"/>
<el-table-column label="批次号" align="left" prop="incomeBatchNo" width="120"/>
<el-table-column label="产品编码" align="left" prop="materialCode" width="180" />
<el-table-column label="产品名称" align="left" prop="materialName" width="180"/>

@ -150,7 +150,6 @@ export default {
this.selectedRows.name = this.idsName;
this.$emit('onSelected', this.selectedRows);
this.showFlag = false;
this.queryParams.itemCodeGet = "";
}
}
};

@ -62,7 +62,7 @@
</el-date-picker>
</el-form-item>
<!--
<el-form-item label="检测地点" prop="checkLoc">
<el-input
v-model="queryParams.checkLoc"
@ -78,7 +78,7 @@
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<el-form-item label="检验时间" prop="checkTimeArray">
<el-date-picker
v-model="queryParams.checkTimeArray"
@ -162,7 +162,7 @@
<el-table-column label="id" align="center" prop="recordId" v-if="false"/>
<el-table-column label="checkType" align="center" prop="checkType" v-if="false"/>
<el-table-column label="任务编号" align="center" prop="checkNo" width="120"/>
<el-table-column label="批次号" align="center" prop="incomeBatchNo" width="200" />
<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="materialCode" width="170"/>
<el-table-column label="物料名称" align="center" prop="materialName" width="250" :show-overflow-tooltip="true" />
@ -242,7 +242,6 @@
<el-input v-model="form.checkNo" placeholder="请输入检验任务编号" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类型" prop="checkType" >
<el-select v-model="form.checkType" placeholder="请选择检验类型" style="width: 100%;">
@ -320,17 +319,22 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="抽样数量" prop="sampleQuality">
<el-input type="number" v-model="form.sampleQuality" placeholder="请输入抽样数量" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="A类不良数量" prop="aNoOkquality">
<el-input type="number" v-model="form.aNoOkquality" placeholder="请输入不良数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="B类不良数量" prop="bNoOkquality">
<el-input type="number" v-model="form.bNoOkquality" placeholder="请输入不良数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="C类不良数量" prop="cNoOkquality">
<el-input type="number" v-model="form.cNoOkquality" placeholder="请输入不良数量" />
</el-form-item>

@ -25,12 +25,13 @@
</el-form>
<el-table v-loading="loading" :data="itemList" @selection-change="handleBomSelectionChange" ref="myTable" >
<el-table-column width="50" align="center" type="selection"/>
<el-table-column label="订单号" align="left" prop="orderNo" width="180"/>
<el-table-column label="工单号" align="left" prop="workorderCode" width="180"/>
<el-table-column label="订单号" align="left" prop="orderNo" width="120"/>
<el-table-column label="订单状态" align="left" prop="status" width="90"/>
<el-table-column label="工单号" align="left" prop="workorderCode" width="130"/>
<el-table-column label="产品编码" align="left" prop="materialCode" width="180" />
<el-table-column label="产品名称" align="left" prop="materialName" width="180"/>
<el-table-column label="排产数量" align="left" prop="quality" width="100" />
<el-table-column label="单位" align="left" prop="unit" :show-overflow-tooltip="true" />
<el-table-column label="单位" align="left" prop="unit" :show-overflow-tooltip="true" width="80"/>
<el-table-column label="生产日期" align="left" prop="incomeTime" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.incomeTime, '{y}-{m}-{d}') }}</span>

@ -9,6 +9,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="批次号" prop="incomeBatchNo">
<el-input
v-model="queryParams.incomeBatchNo"
@ -17,6 +18,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!--
<el-form-item label="订单号" prop="orderNo">
<el-input
v-model="queryParams.orderNo"
@ -24,7 +26,7 @@
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<el-form-item label="物料号" prop="materialCode">
<el-input
v-model="queryParams.materialCode"
@ -33,6 +35,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!--
<el-form-item label="物料名称" prop="materialName">
<el-input
v-model="queryParams.materialName"
@ -40,7 +43,7 @@
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<el-form-item label="仓库名称" prop="supplierName">
<el-input
v-model="queryParams.supplierName"
@ -59,6 +62,7 @@
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<!--
<el-form-item label="检测地点" prop="checkLoc">
<el-input
v-model="queryParams.checkLoc"
@ -74,7 +78,7 @@
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<el-form-item label="检验时间" prop="checkTime">
<el-date-picker
v-model="queryParams.checkTimeArray"
@ -157,10 +161,10 @@
<el-table-column label="id" align="center" prop="recordId" v-if="false"/>
<el-table-column label="checkType" align="center" prop="checkType" v-if="false"/>
<el-table-column label="检验任务编号" align="center" prop="checkNo" width="120"/>
<el-table-column label="批次号" align="center" prop="incomeBatchNo" 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="120"/>
<el-table-column label="物料号" align="center" prop="materialCode" width="170"/>
<el-table-column label="物料名称" align="center" prop="materialName" width="150"/>
<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" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="仓库编码" align="center" prop="supplierCode" width="120"/>
@ -235,33 +239,6 @@
<el-input v-model="form.checkNo" placeholder="请输入检验任务编号" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库批次号" prop="incomeBatchNo">
<el-input v-model="form.incomeBatchNo" placeholder="请输入入库批次号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入订单号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="form.materialName" placeholder="请选择物料名称">
<el-button slot="append" @click="handleSelectMaterial" icon="el-icon-search"></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料号" prop="materialCode">
<el-input v-model="form.materialCode" placeholder="请输入物料号" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="检验类型" prop="checkType" >
<el-select v-model="form.checkType" placeholder="请选择检验类型" style="width: 100%;">
@ -274,12 +251,56 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请选择订单号" >
<el-button slot="append" @click="handleSelectWorkOrder" icon="el-icon-search"></el-button>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="form.materialName" placeholder="请选择物料名称">
<el-button slot="append" @click="handleSelectMaterial" icon="el-icon-search"></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料号" prop="materialCode">
<el-input v-model="form.materialCode" placeholder="请输入物料号" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库数量" prop="quality">
<el-input type="number" v-model="form.quality" placeholder="请输入收货数量" />
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="入库时间" prop="incomeTime">
<el-date-picker clearable style="width: 100%;"
v-model="form.incomeTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择入库时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="抽样数量" prop="sampleQuality">
<el-input type="number" v-model="form.sampleQuality" placeholder="请输入抽样数量" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="不合格数量" prop="noOkQuality">
<el-input type="number" v-model="form.noOkQuality" placeholder="请输入不合格数量" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="单位" prop="unit" >
<el-select v-model="form.unit" placeholder="请选择单位" style="width: 100%;">
<el-option
@ -291,8 +312,20 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="批次号" prop="incomeBatchNo">
<el-select v-model="form.incomeBatchNo" class="selectItem" placeholder="请选择批次" clearable>
<el-option v-for="(item,index) in batchList"
:key="index"
:label="item.batchCode"
:value="item.batchCode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="仓库名称" prop="supplierName">
<el-input v-model="form.supplierName" placeholder="请选择仓库名称">
@ -305,16 +338,7 @@
<el-input v-model="form.supplierCode" placeholder="请输入仓库编码" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库时间" prop="incomeTime">
<el-date-picker clearable
v-model="form.incomeTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择入库时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
@ -341,6 +365,11 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--订单选择弹窗-->
<ItemSelectWorkOrder
ref="itemSelectWorkOrder"
@onSelected="onSelectWorkOrder"
></ItemSelectWorkOrder>
<!--产品物料选择弹窗-->
<ItemSelectMaterial
ref="itemSelectMaterial"
@ -366,7 +395,9 @@
<script>
import { listWarehousing, getWarehousing, delWarehousing, addWarehousing, updateWarehousing } from "@/api/quality/warehousing";
import { getBatchList} from "@/api/quality/qcProduce";
import { getCheckTypes } from "@/api/quality/qcProduce";
import ItemSelectWorkOrder from "./selectWorkOrder.vue";
import ItemSelectMaterial from "../qcIncome/selectMaterial.vue";
import ItemSelectLoc from "./selectLoc.vue";
import ItemSelectUser from "../qcIncome/selectUser.vue";
@ -374,7 +405,7 @@ import ItemSelectProject from "../qcIncome/checkProjectType.vue";
import moment from 'moment';
export default {
name: "Warehousing",
components: { ItemSelectMaterial,ItemSelectLoc,ItemSelectUser,ItemSelectProject},
components: { ItemSelectMaterial,ItemSelectLoc,ItemSelectUser,ItemSelectProject,ItemSelectWorkOrder},
dicts: ["unit","check_status","check_result"],
data() {
return {
@ -627,6 +658,22 @@ export default {
});
},
/**工单选择弹出框**/
handleSelectWorkOrder() {
this.$refs.itemSelectWorkOrder.showFlag = true;
},
//
onSelectWorkOrder(obj) {
this.form.orderNo = obj.orderNo;
this.form.materialName = obj.materialName;
this.form.materialCode = obj.materialCode;
this.form.quality = obj.quality;
this.form.unit = obj.unit;
this.form.incomeTime = obj.incomeTime;
getBatchList(obj.workorderCode).then(response => {
this.batchList = response;
});
},
/**物料选择弹出框**/
handleSelectMaterial() {
this.$refs.itemSelectMaterial.showFlag = true;

@ -0,0 +1,140 @@
<template>
<el-dialog title="生产订单号选择"
v-if="showFlag"
:visible.sync="showFlag"
:modal= false
width="1000px"
>
<el-row :gutter="20">
<el-col :span="24" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="105px" align="left">
<el-form-item label="订单号">
<el-input
v-model="queryParams.orderNo"
placeholder="订单号"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</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-table v-loading="loading" :data="itemList" @selection-change="handleBomSelectionChange" ref="myTable" >
<el-table-column width="50" align="center" type="selection"/>
<el-table-column label="订单号" align="left" prop="orderNo" width="120"/>
<el-table-column label="订单状态" align="left" prop="status" width="90"/>
<el-table-column label="工单号" align="left" prop="workorderCode" width="130"/>
<el-table-column label="产品编码" align="left" prop="materialCode" width="180" />
<el-table-column label="产品名称" align="left" prop="materialName" width="180"/>
<el-table-column label="排产数量" align="left" prop="quality" width="100" />
<el-table-column label="单位" align="left" prop="unit" :show-overflow-tooltip="true" />
<el-table-column label="生产日期" align="left" prop="incomeTime" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.incomeTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitLLOrderForm"> </el-button>
<el-button @click="showFlag=false"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { getWorkOrder } from "@/api/quality/income";
export default {
name: "itemSelectWorkOrder",
data() {
return {
showFlag:false,
//
selectedRows: {},
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// BOM
itemList: null,
//
bomCode: undefined,
defaultProps: {
id: "id",
label: "label"
},
//
queryParams: {
pageNum: 1,
pageSize: 10,
workorderCode: ''
},
selectionRow:{}
};
},
created() {
this.getList();
},
methods: {
/** 查询表格列表*/
getList() {
this.loading = true;
getWorkOrder(this.queryParams).then(response => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleBomSelectionChange(selection) {
if(selection.length>1){
this.$modal.msgSuccess("只能选一个");
}
this.selectionRow = selection[0]
},
submitLLOrderForm() {
this.$emit('onSelected', this.selectionRow);
this.showFlag = false;
}
}
};
</script>

@ -116,7 +116,7 @@
>{{scope.row.routeCode}}</el-button>
</template>
</el-table-column>
<el-table-column label="产品编码" align="center" prop="productCode" width="250"/>
<el-table-column label="产品编码" align="center" prop="productCode" width="250" v-if="false"/>
<el-table-column label="工艺路线名称" align="center" prop="routeName" width="250"/>
<el-table-column label="工艺路线说明" align="center" prop="routeDesc" width="250"/>
<el-table-column label="工艺路线版本" align="center" prop="routeVersion" width="100"/>

@ -12,7 +12,7 @@
<el-input
v-model="queryParams.equipmentCode"
placeholder="请输入设备编码"
style="width: 180px"
style="width: 200px"
clearable
@keyup.enter.native="handleQuery"
/>
@ -22,7 +22,7 @@
v-model="queryParams.equipmentName"
placeholder="请输入设备名称"
clearable
style="width: 180px"
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -33,7 +33,7 @@
@change="$forceUpdate()"
clearable
filterable
style="width: 180px"
style="width: 200px"
@keyup.enter.native="handleQuery"
>
<el-option
@ -48,7 +48,7 @@
<el-select
v-model="queryParams.equipmentStatus"
placeholder="设备状态"
style="width: 180px"
style="width: 200px"
clearable
>
<el-option
@ -59,6 +59,22 @@
/>
</el-select>
</el-form-item>
<el-form-item label="设备类别" prop="equipmentCategory">
<el-select
v-model="queryParams.equipmentCategory"
placeholder="设备类别(组线/设备)"
style="width: 200px"
clearable
>
<el-option
v-for="dict in dict.type.equipment_category"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@ -184,7 +200,7 @@
></el-switch>
</template>
</el-table-column>
<el-table-column prop="equipmentStatus" label="设备状态" width="80">
<el-table-column prop="equipmentStatus" label="设备状态" width="100" align="center">
<template slot-scope="scope">
<dict-tag
:options="dict.type.equipment_status"
@ -192,6 +208,19 @@
/>
</template>
</el-table-column>
<el-table-column
align="center"
prop="equipmentCategory"
label="设备类别(组线/设备)"
width="150"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.equipment_category"
:value="scope.row.equipmentCategory"
/>
</template>
</el-table-column>
<el-table-column
label="设备类型编码"
align="center"
@ -328,7 +357,7 @@
<el-step title="设备使用状况"></el-step>
<el-step title="设备资产信息"></el-step>
<el-step title="设备绑定备件"></el-step>
<el-step title="设备绑定辅助设备"></el-step>
<el-step title="设备绑定辅助设备" v-if="this.form.equipmentCategory == '1' "></el-step>
</el-steps>
</div>
<!-- 维修基本信息 -->
@ -460,6 +489,24 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="8">
<el-form-item label="设备类别" prop="equipmentCategory">
<el-select
v-model="form.equipmentCategory"
placeholder="请选择设备类别"
style="width: 195px"
>
<el-option
v-for="dict in dict.type.equipment_category"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="24">
<el-form-item label="设备二维码" prop="qrFileList">
@ -514,22 +561,22 @@
</el-col>
<el-col :span="8">
<el-form-item label="设备负责人" prop="equipmentHead">
<el-input
v-model="form.equipmentHead"
placeholder="请选择设备负责人"
>
<el-button
slot="append"
@click="handleSelectPerson"
icon="el-icon-search"
></el-button>
</el-input>
<ItemSelectPerson
ref="itemSelectPerson"
@onSelected="onItemSelectedPerson"
>
</ItemSelectPerson>
</el-form-item>
<el-input
v-model="form.equipmentHead"
placeholder="请选择设备负责人"
>
<el-button
slot="append"
@click="handleSelectPerson"
icon="el-icon-search"
></el-button>
</el-input>
<ItemSelectPerson
ref="itemSelectPerson"
@onSelected="onItemSelectedPerson"
>
</ItemSelectPerson>
</el-form-item>
</el-col>
</el-row>
</div>
@ -618,7 +665,7 @@
</div>
<!-- 设备绑定备件 -->
<div v-if="this.repairRecordSteps == 3" class="step-body">
<div v-if="this.repairRecordSteps == 3 " class="step-body">
<template>
<el-transfer
filterable
@ -633,7 +680,7 @@
</div>
<!-- 设备绑定辅助设备 -->
<div v-if="this.repairRecordSteps == 4" class="step-body">
<div v-if="this.repairRecordSteps == 4 && this.form.equipmentCategory == '1' " class="step-body">
<template>
<el-transfer
filterable
@ -646,17 +693,25 @@
</el-transfer>
</template>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="this.repairRecordSteps > 0" @click="stepLast"
>上一步</el-button
>
<el-button v-if="this.repairRecordSteps < 4" @click="stepNext"
<el-button v-if="this.repairRecordSteps < 4 && this.form.equipmentCategory == '1' " @click="stepNext"
>下一步</el-button
>
<el-button v-if="this.repairRecordSteps < 3 && this.form.equipmentCategory == '0' " @click="stepNext"
>下一步</el-button
>
<el-button
v-if="this.repairRecordSteps == 4"
v-if=" this.repairRecordSteps == 4 && this.form.equipmentCategory == '1' "
type="primary"
@click="submitForm"
> </el-button
>
<el-button
v-if=" this.repairRecordSteps == 3 && this.form.equipmentCategory == '0' "
type="primary"
@click="submitForm"
> </el-button
@ -776,7 +831,12 @@
}}</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="辅助设备" >
<ItemEquipment
:optType="optType"
:equipmentCode="form.equipmentCode"
></ItemEquipment>
</el-tab-pane>
<el-tab-pane label="设备相关图片">
<el-descriptions
:column="1"
@ -903,15 +963,20 @@ import {
} from "@/api/wms/equipment";
import { getWorkCenterList, listFactory } from "@/api/wms/factory";
import { listTeamMembers } from "@/api/wms/team";
import EquipmentSpareParts from "./single.vue";
import { Message } from "element-ui";
import { getToken } from "@/utils/auth";
import ItemSelectPerson from "./single.vue";
import ItemSelectPerson from "./itemPerson.vue";
import ItemEquipment from "./itemEquipment.vue";
export default {
name: "Equipment",
dicts: ["sys_normal_disable", "equ_type", "equipment_status"],
components: { EquipmentSpareParts ,ItemSelectPerson},
dicts: [
"sys_normal_disable",
"equ_type",
"equipment_status",
"equipment_category",
],
components: { ItemSelectPerson, ItemEquipment },
data() {
return {
CS: {
@ -987,8 +1052,8 @@ export default {
leftList: [],
rightList: [],
//
auxiliaryEquipmentRightList:[],
auxiliaryEquipmentLeftList:[],
auxiliaryEquipmentRightList: [],
auxiliaryEquipmentLeftList: [],
bind: undefined,
imageFileList: [],
qrFileList: [],
@ -1041,11 +1106,17 @@ export default {
workshopSection: null,
equipmentLocation: null,
hourlyUnitPrice: null,
equipmentCategory : null,
},
queryEquipmentHeadParams: {
pageNum: 1,
pageSize: 10,
},
queryAuxiliaryEquipmentParams: {
pageNum: 1,
pageSize: 1000,
equipmentCategory : null,
},
options: [
{
status: "1",
@ -1102,6 +1173,9 @@ export default {
status: [
{ required: true, message: "设备状态不能为空", trigger: "blur" },
],
equipmentCategory: [
{ required: true, message: "设备类别不能为空", trigger: "blur" },
],
},
};
},
@ -1160,21 +1234,11 @@ export default {
indexMethod(index) {
return index + 1;
},
/** 查询设备管理列表 */
getList() {
this.loading = true;
listEquipment(this.queryParams).then((response) => {
for (let i in response.rows) {
// 穿
this.auxiliaryEquipmentLeftList.push({
key: response.rows[i].equipmentCode,
label: response.rows[i].equipmentName,
});
}
for (let i in response.selected) {
this.auxiliaryEquipmentLeftList.push(response.selected[i].key);
this.form.auxiliaryEquipmentRightData = this.auxiliaryEquipmentRightList;
}
this.equipmentList = response.rows;
this.total = response.total;
this.loading = false;
@ -1222,7 +1286,8 @@ export default {
workshopSection: null,
equipmentLocation: null,
hourlyUnitPrice: null,
equipmentHead : null,
equipmentHead: null,
equipmentCategory : null,
};
this.resetForm("form");
},
@ -1277,6 +1342,19 @@ export default {
this.options1 = response.rows;
});
this.repairRecordSteps = 0;
this.rightList = [];
this.auxiliaryEquipmentLeftList = [];
this.auxiliaryEquipmentRightList = [];
this.queryAuxiliaryEquipmentParams.equipmentCategory = '0';
listEquipment(this.queryAuxiliaryEquipmentParams).then((response) => {
for (let i in response.rows) {
// 穿
this.auxiliaryEquipmentLeftList.push({
key: response.rows[i].equipmentCode,
label: response.rows[i].equipmentName,
});
}
});
this.open = true;
this.title = "添加设备管理";
},
@ -1288,15 +1366,35 @@ export default {
getWorkCenterList().then((response) => {
this.options1 = response.rows;
});
this.queryAuxiliaryEquipmentParams.equipmentCategory = '0';
listEquipment(this.queryAuxiliaryEquipmentParams).then((response) => {
this.auxiliaryEquipmentLeftList = [];
this.auxiliaryEquipmentRightList = [];
for (let i in response.rows) {
// 穿
this.auxiliaryEquipmentLeftList.push({
key: response.rows[i].equipmentCode,
label: response.rows[i].equipmentName,
});
}
for (let i in response.selected) {
this.auxiliaryEquipmentRightList.push(response.selected[i].key);
this.form.auxiliaryEquipmentRightData = this.auxiliaryEquipmentRightList;
}
});
getEquipment(equipmentId).then((response) => {
this.form = response.data;
this.rightList = [];
for (let i in response.data.selectedData) {
// 穿
this.rightList.push(response.data.selectedData[i].spareCode);
}
this.auxiliaryEquipmentRightList = [];
for (let i in response.data.selectedEquipmentData) {
// 穿
this.auxiliaryEquipmentRightList.push(response.data.selectedEquipmentData[i].auxiliaryEquipmentCode);
this.auxiliaryEquipmentRightList.push(
response.data.selectedEquipmentData[i].auxiliaryEquipmentCode
);
}
if (response.data.imageFiles != null) {
@ -1340,8 +1438,6 @@ export default {
handleView(row) {
this.reset();
const equipmentId = row.equipmentId || this.ids;
getWorkCenterList().then((response) => {
});
getEquipment(equipmentId).then((response) => {
this.form = response.data;
//
@ -1368,7 +1464,6 @@ export default {
});
this.form.barCodeFileList = newFiles;
}
this.queryOpen = true;
this.title = "查看设备信息";
this.optType = "view";
@ -1392,7 +1487,8 @@ export default {
if (valid) {
if (this.form.equipmentId != null) {
this.form.rightData = this.rightList;
this.form.auxiliaryEquipmentRightData = this.auxiliaryEquipmentRightList;
this.form.auxiliaryEquipmentRightData =
this.auxiliaryEquipmentRightList;
updateEquipment(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
@ -1415,8 +1511,13 @@ export default {
this.$message.error(
"【设备基础信息】设备类型为空,请选择设备类型!"
);
} else if (this.form.equipmentCategory == null) {
this.$message.error(
"【设备基础信息】设备类别为空,请选择设备类别!"
);
} else {
this.form.auxiliaryEquipmentRightData = this.auxiliaryEquipmentRightList;
this.form.auxiliaryEquipmentRightData =
this.auxiliaryEquipmentRightList;
this.form.rightData = this.rightList;
addEquipment(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
@ -1510,7 +1611,11 @@ export default {
//
onItemSelectedPerson(obj) {
this.$set(this.form,"equipmentHead",obj[0].nickName + "(" + obj[0].userName+")" );
this.$set(
this.form,
"equipmentHead",
obj[0].nickName + "(" + obj[0].userName + ")"
);
console.log(this.form.equipmentHead);
},

@ -0,0 +1,123 @@
<template>
<div class="app-container">
<el-table
:data="itemList"
border
>
<!-- 序号 -->
<el-table-column
type="index"
width="90"
align="center"
:index="indexMethod"
label="序号"
fixed
/>
<el-table-column
label="设备编码"
align="center"
prop="equipmentCode"
fixed
/>
<el-table-column
label="设备名称"
align="center"
prop="equipmentName"
/>
<el-table-column
label="设备状态"
align="center"
prop="equipmentStatus"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.equipment_status"
:value="scope.row.equipmentStatus"
/>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { getAuxiliaryEquipmentList } from "@/api/wms/equipment";
import { Message } from "element-ui";
export default {
name: "MdItemSingle",
dicts: ["equipment_status"],
data() {
return {
showFlag: false,
//
selectedItemId: undefined,
selectedRows: undefined,
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
queryParams: {
pageNum: 1,
pageSize: 10,
equipmentCode: this.equipmentCode,
},
};
},
props: {
equipmentCode: undefined,
optType: undefined,
workStatus: undefined,
},
created() {
this.getList();
},
methods: {
//
cancel() {
this.showFlag = false;
this.reset();
},
//
reset() {
this.form = {
itemId: null,
itemCode: this.processId,
itemType: null,
};
this.resetForm("form");
},
//
indexMethod(index) {
return index + 1;
},
/** 查询设备编码列表*/
getList() {
getAuxiliaryEquipmentList(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
});
},
},
};
</script>
Loading…
Cancel
Save