LAPTOP-R6EHHS26\86155 2 years ago
commit e7d1eea248

@ -70,4 +70,13 @@ export function getMaintenancePersonList(query) {
}); });
} }
// 传故障类型
export function queryEquFaultTypeTree(query) {
return request({
url: '/device/repairOrder/queryEquFaultTypeTree',
method: 'get',
params: query
});
}

@ -120,11 +120,12 @@ export function commitActualValue(recordId, actualValues) {
} }
//审核结果提交 //审核结果提交
export function commitCheckResult(recordId,typeCode,checkType) { export function commitCheckResult(recordId,typeCode,checkType,orderNo) {
const data = { const data = {
recordId, recordId,
typeCode, typeCode,
checkType checkType,
orderNo
} }
return request({ return request({
url: '/quality/qcIncome/commitCheckResult', url: '/quality/qcIncome/commitCheckResult',
@ -142,4 +143,22 @@ export function getDefectList(defectType) {
method: 'put', method: 'put',
data: data data: data
}); });
} }
// 查询来料单列表
export function getLLWorkOrder(query) {
return request({
url: '/quality/qcIncome/getLLWorkOrder',
method: 'get',
params: query
});
}
// 查询生产过程-工单列表
export function getWorkOrder(query) {
return request({
url: '/quality/qcIncome/getWorkOrder',
method: 'get',
params: query
});
}

@ -9,6 +9,16 @@ export function listProject(query) {
}); });
} }
// 查询检验项目维护列表
export function getProjectList(query) {
return request({
url: '/quality/project/getProjectList',
method: 'get',
params: query
});
}
// 查询检验项目维护详细 // 查询检验项目维护详细
export function getProject(id) { export function getProject(id) {
return request({ return request({

@ -77,3 +77,15 @@ export function changeProduceStatus(recordId, status) {
data: data data: data
}) })
} }
//获取批次
export function getBatchList(workorderCode) {
const data = {
workorderCode
}
return request({
url: '/quality/qcIncome/getBatchList',
method: 'put',
data: data
});
}

@ -96,3 +96,12 @@ export function changeEquipmentStatus(equipmentId, status) {
data: data data: data
}) })
} }
// 查询人员列表
export function getPersonList(query) {
return request({
url: '/wms/equipment/getPersonList',
method: 'get',
params: query
});
}

@ -637,8 +637,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="workDetail = false"> </el-button> <el-button @click="workDetail = false"> </el-button>
<el-button type="primary" @click="workDetail = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>

@ -892,7 +892,7 @@ export default {
for (let i = 0; i < response.data.length; i++) { for (let i = 0; i < response.data.length; i++) {
this.personList.push({ this.personList.push({
label: response.data[i].nickName + '(' + response.data[i].userName + ')', label: response.data[i].nickName + '(' + response.data[i].userName + ')',
key: response.data[i].userId, key: response.data[i].userName,
}) })
} }
}); });
@ -1231,7 +1231,11 @@ export default {
} }
this.planLoading = true; this.planLoading = true;
if (this.form.planId != null) { if (this.form.planId != null) {
this.form.personList = this.selectPersonList; this.form.personList = this.selectPersonList.map(item => {
return{
userName: item.toString()
}
});
updatePlan(this.form).then(response => { updatePlan(this.form).then(response => {
this.planLoading = false; this.planLoading = false;
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
@ -1239,7 +1243,11 @@ export default {
this.getList(); this.getList();
}); });
} else { } else {
this.form.personList = this.selectPersonList; this.form.personList = this.selectPersonList.map(item => {
return{
userName: item.toString()
}
});
addPlan(this.form).then(response => { addPlan(this.form).then(response => {
this.planLoading = false; this.planLoading = false;
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");

@ -512,8 +512,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="workDetail = false"> </el-button> <el-button @click="workDetail = false"> </el-button>
<el-button type="primary" @click="workDetail = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>

@ -20,7 +20,7 @@
<el-form-item label-width="120px" label="检查项方法" prop="itemMethod"> <el-form-item label-width="120px" label="检查项方法" prop="itemMethod">
<el-input <el-input
v-model="queryParams.itemMethod" v-model="queryParams.itemMethod"
placeholder="请输入检查项方法/工具" placeholder="请输入检查项方法"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -616,6 +616,7 @@ export default {
// //
this.queryParams.createTimeArray = []; this.queryParams.createTimeArray = [];
this.queryParams.updateTimeArray = []; this.queryParams.updateTimeArray = [];
this.queryParams.itemTools = null;
this.handleQuery(); this.handleQuery();
}, },
// //

@ -591,8 +591,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="workDetail = false"> </el-button> <el-button @click="workDetail = false"> </el-button>
<el-button type="primary" @click="workDetail = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>

@ -751,7 +751,12 @@
append-to-body append-to-body
> >
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-descriptions :column="2" border :contentStyle="WCS" :label-style="WLS"> <el-descriptions
:column="2"
border
:contentStyle="WCS"
:label-style="WLS"
>
<el-descriptions-item label="设备编号">{{ <el-descriptions-item label="设备编号">{{
form.equipmentCode form.equipmentCode
}}</el-descriptions-item> }}</el-descriptions-item>
@ -801,7 +806,12 @@
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-tabs type="border-card"> <el-tabs type="border-card">
<el-tab-pane label="维修基本信息"> <el-tab-pane label="维修基本信息">
<el-descriptions :column="2" border :contentStyle="CS" :label-style="LS"> <el-descriptions
:column="2"
border
:contentStyle="CS"
:label-style="LS"
>
<el-descriptions-item label="维修工单号">{{ <el-descriptions-item label="维修工单号">{{
form.workCode form.workCode
}}</el-descriptions-item> }}</el-descriptions-item>
@ -864,7 +874,11 @@
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="1" border> <el-descriptions :column="1" border>
<el-descriptions-item label="维修前故障图片" :contentStyle="CS" :label-style="LSP"> <el-descriptions-item
label="维修前故障图片"
:contentStyle="CS"
:label-style="LSP"
>
<el-image <el-image
v-for="(item, index) in urlBeforeLists" v-for="(item, index) in urlBeforeLists"
:key="index" :key="index"
@ -873,7 +887,11 @@
></el-descriptions-item> ></el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="1" border> <el-descriptions :column="1" border>
<el-descriptions-item label="维修后故障图片" :contentStyle="CS" :label-style="LSP"> <el-descriptions-item
label="维修后故障图片"
:contentStyle="CS"
:label-style="LSP"
>
<el-image <el-image
v-for="(item, index) in urlAfterLists" v-for="(item, index) in urlAfterLists"
:key="index" :key="index"
@ -883,7 +901,13 @@
</el-descriptions> </el-descriptions>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="检查项信息"> <el-tab-pane label="检查项信息">
<el-table :data="detailList" border :contentStyle="CS" :label-style="LS" :span-method="objectSpanMethod"> <el-table
:data="detailList"
border
:contentStyle="CS"
:label-style="LS"
:span-method="objectSpanMethod"
>
<el-table-column prop="itemTypeName" label="检查类型" width="100"> <el-table-column prop="itemTypeName" label="检查类型" width="100">
</el-table-column> </el-table-column>
<el-table-column prop="itemName" label="检查项名称" width="150"> <el-table-column prop="itemName" label="检查项名称" width="150">
@ -909,7 +933,10 @@
width="110" width="110"
> >
<template scope="scope"> <template scope="scope">
<el-radio-group v-model="scope.row.repairReach" v-if="scope.row.standardType != 'quantify'"> <el-radio-group
v-model="scope.row.repairReach"
v-if="scope.row.standardType != 'quantify'"
>
<el-radio label="1">达标</el-radio> <el-radio label="1">达标</el-radio>
<el-radio label="0">不达标</el-radio> <el-radio label="0">不达标</el-radio>
</el-radio-group> </el-radio-group>
@ -1023,7 +1050,7 @@
style="width: 195px" style="width: 195px"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
@change="listening" @change="listening"
placeholder="请选择开始维修时间" placeholder="请输入开始时间"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -1036,13 +1063,13 @@
style="width: 195px" style="width: 195px"
@change="listeningTime" @change="listeningTime"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择结束维修时间" placeholder="请输入结束时间"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="维修用时" prop="workCostTime"> <el-form-item label="维修用时" prop="workCostTime">
<el-input v-model="form.workCostTime" style="width: 195px" disabled> <el-input v-model="form.workCostTime" style="width: 195px">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -1056,9 +1083,14 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="故障类型" prop="faultType"> <el-form-item label="故障类型" prop="faultType">
<el-cascader :options="faultTypeOption" v-model="form.faultType" style="width: 195px" clearable></el-cascader> <el-cascader
:options="faultTypeOption"
v-model="form.faultType"
style="width: 195px"
clearable
></el-cascader>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -1067,10 +1099,10 @@
<el-form-item label="原因分析" prop="workReason"> <el-form-item label="原因分析" prop="workReason">
<el-input <el-input
v-model="form.workReason" v-model="form.workReason"
placeholder="请输入故障原因分析" placeholder="请输入原因分析"
type="textarea" type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }" :autosize="{ minRows: 2, maxRows: 4 }"
style="width: 840px" style="width: 940px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -1083,7 +1115,330 @@
</el-col> </el-col>
</el-row> </el-row>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="填写备件申领记录">
<el-tab-pane label="提交备件申领记录">
<!-- 使用备件领用记录 -->
<ItemSelectSpareParts
:optType="optType"
:workCode="form.workCode"
:equipmentCode="form.equipmentCode"
v-if="form.workCode != null"
></ItemSelectSpareParts>
</el-tab-pane>
</el-tabs>
</el-tabs>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitWriteForm"> </el-button>
<el-button @click="cancelWriteForm"> </el-button>
</div>
</el-dialog>
<!-- 查看维修记录对话框 -->
<el-dialog
:title="title"
:visible.sync="queryWrite"
width="1200px"
append-to-body
v-if="queryWrite"
>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-tabs type="border-card">
<el-tab-pane label="维修基本信息">
<el-descriptions
:column="2"
border
:contentStyle="CS"
:label-style="LS"
>
<el-descriptions-item label="维修工单号">{{
form.workCode
}}</el-descriptions-item>
<el-descriptions-item label="报修单号">{{
form.workCode
}}</el-descriptions-item>
<el-descriptions-item label="设备编号">{{
form.equipmentCode
}}</el-descriptions-item>
<el-descriptions-item label="设备名称">{{
form.equipmentName
}}</el-descriptions-item>
<el-descriptions-item label="设备类型">{{
form.equipmentTypeName
}}</el-descriptions-item>
<el-descriptions-item label="设备位置">{{
form.equipmentLocation
}}</el-descriptions-item>
<el-descriptions-item label="工作中心编码">{{
form.workshopCode
}}</el-descriptions-item>
<el-descriptions-item label="工作中心名称">{{
form.workshopName
}}</el-descriptions-item>
<el-descriptions-item label="报修来源">{{
form.orderSource
}}</el-descriptions-item>
<el-descriptions-item label="报修时间">{{
form.orderTime
}}</el-descriptions-item>
<el-descriptions-item label="报修人名字">{{
form.orderRepairmanName
}}</el-descriptions-item>
<el-descriptions-item label="联系方式">{{
form.orderConnection
}}</el-descriptions-item>
<el-descriptions-item label="是否立即处理">{{
form.workHandle ? "否" : "是"
}}</el-descriptions-item>
<el-descriptions-item label="计划维修时间">{{
form.workPlanTime
}}</el-descriptions-item>
<el-descriptions-item label="是否停机维修">{{
form.workDownMachine ? "否" : "是"
}}</el-descriptions-item>
<el-descriptions-item label="计划停机时间">{{
form.workPlanDownTime
}}</el-descriptions-item>
<el-descriptions-item label="是否委外">{{
form.workOutsource ? "否" : "是"
}}</el-descriptions-item>
<el-descriptions-item label="维修班组">{{
form.workTeam
}}</el-descriptions-item>
<el-descriptions-item label="维修班组人员">{{
form.workTeamPerson
}}</el-descriptions-item>
<el-descriptions-item label="故障描述">{{
form.orderDesc
}}</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border>
<el-descriptions-item
label="维修前故障图片"
:contentStyle="CS"
:label-style="LSP"
>
<el-image
v-for="(item, index) in urlBeforeLists"
:key="index"
:src="item"
></el-image
></el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border>
<el-descriptions-item
label="维修后故障图片"
:contentStyle="CS"
:label-style="LSP"
>
<el-image
v-for="(item, index) in urlAfterLists"
:key="index"
:src="item"
></el-image
></el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="查看检查项信息">
<el-table
:data="detailList"
border
:contentStyle="CS"
:label-style="LS"
:span-method="objectSpanMethod"
>
<el-table-column prop="itemTypeName" label="检查类型" width="100">
</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="50">
</el-table-column>
<el-table-column prop="standardName" label="标准名称" width="150">
</el-table-column>
<el-table-column
prop="detailReach"
label="维修前是否达标"
width="67"
>
<template slot-scope="scope">
{{ scope.row.detailReach == "1" ? "达标" : "不达标" }}
</template>
</el-table-column>
<el-table-column
prop="repairReach"
label="维修后是否达标"
width="110"
>
<template slot-scope="scope">
{{ scope.row.repairReach == "1" ? "达标" : "不达标" }}
</template>
</el-table-column>
<el-table-column
prop="actualValue"
label="维修前实际值"
width="75"
>
</el-table-column>
<el-table-column
prop="repairValue"
label="维修后实际值"
width="75"
>
<template slot-scope="scope">
<el-input
size="small"
v-model="scope.row.repairValue"
v-if="scope.row.standardType == 'quantify'"
></el-input>
</template>
</el-table-column>
<el-table-column prop="detailUpLimit" label="上限" width="50">
</el-table-column>
<el-table-column prop="detailDownLimit" label="下限" width="50">
</el-table-column>
<el-table-column prop="detailUnit" label="单位" width="40">
</el-table-column>
<el-table-column prop="picturePath" label="维修后图片" width="60">
<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>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="查看维修记录">
<el-row :gutter="10" class="mb8">
<el-col :span="8">
<el-form-item label="维修人" prop="workPerson">
<el-input
v-model="form.workPerson"
style="width: 195px"
disabled
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="维修状态" prop="workStatus">
<el-select
v-model="form.workStatus"
disabled
style="width: 195px"
>
<el-option
v-for="dict in dict.type.device_repair_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="维修费用" prop="workCost">
<el-input-number
:min="0"
:step="1"
disabled
v-model="form.workCost"
style="width: 175px"
/>
<span> </span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="8">
<el-form-item label="开始时间" prop="workStartTime">
<el-date-picker
clearable
v-model="form.workStartTime"
type="datetime"
style="width: 195px"
value-format="yyyy-MM-dd HH:mm:ss"
@change="listening"
disabled
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="workEndTime">
<el-date-picker
clearable
v-model="form.workEndTime"
type="datetime"
style="width: 195px"
@change="listeningTime"
disabled
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="维修用时" prop="workCostTime">
<el-input
v-model="form.workCostTime"
style="width: 195px"
disabled
>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="8">
<el-form-item label="是否停机" prop="workDownMachine">
<el-radio-group v-model="form.workDownMachine" disabled>
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="故障类型" prop="faultType">
<el-cascader
disabled
:options="faultTypeOption"
v-model="form.faultType"
style="width: 195px"
clearable
></el-cascader>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="24">
<el-form-item label="原因分析" prop="workReason">
<el-input
disabled
v-model="form.workReason"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
style="width: 940px"
/>
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label="查看备件申领记录">
<!-- 使用备件领用记录 --> <!-- 使用备件领用记录 -->
<ItemSelectSpareParts <ItemSelectSpareParts
:optType="optType" :optType="optType"
@ -1094,10 +1449,8 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitWriteForm"> </el-button> <el-button @click="cancelQueryWriteForm"> </el-button>
<el-button @click="cancelWriteForm"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -1184,6 +1537,8 @@ export default {
openApplyView: false, openApplyView: false,
// //
openWrite: false, openWrite: false,
//
queryWrite: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -1395,6 +1750,11 @@ export default {
this.openWrite = false; this.openWrite = false;
this.reset(); this.reset();
}, },
// -
cancelQueryWriteForm() {
this.openWrite = false;
this.reset();
},
// //
reset() { reset() {
this.form = { this.form = {
@ -1467,7 +1827,9 @@ export default {
getRepairOrder(workId).then((response) => { getRepairOrder(workId).then((response) => {
this.form = response.data; this.form = response.data;
//list //list
this.form.faultType = response.data.faultType.split(","); if (response.data.faultType != null) {
this.form.faultType = response.data.faultType.split(",");
}
//response.data.beforeRepairFiles //response.data.beforeRepairFiles
if (response.data.beforeRepairFiles != null) { if (response.data.beforeRepairFiles != null) {
var beforeNewFiles = []; var beforeNewFiles = [];
@ -1516,6 +1878,7 @@ export default {
if (item1 != null) { if (item1 != null) {
item1.standardList.forEach((item) => { item1.standardList.forEach((item) => {
var standard = {}; var standard = {};
standard.id = item.id;
standard.itemTypeName = item1.itemTypeName; standard.itemTypeName = item1.itemTypeName;
standard.itemName = item1.itemName; standard.itemName = item1.itemName;
standard.itemMethod = item1.itemMethod; standard.itemMethod = item1.itemMethod;
@ -1550,8 +1913,13 @@ export default {
this.detailList = standards; this.detailList = standards;
console.log("111111111111", this.detailList); console.log("111111111111", this.detailList);
} }
this.openWrite = true; if (this.form.workStatus == "1") {
this.title = "填写维修记录"; this.queryWrite = true;
this.title = "查看维修记录";
} else {
this.openWrite = true;
this.title = "填写维修记录";
}
}); });
}, },
/** 委外申请按钮操作 */ /** 委外申请按钮操作 */
@ -1618,12 +1986,13 @@ export default {
this.form.afterRepairFile this.form.afterRepairFile
); );
} }
this.form.faultType = this.form.faultType.join(','); this.form.faultType = this.form.faultType.join(",");
console.log(this.form.faultType); console.log(this.form.faultType);
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.workId != null) { if (this.form.workId != null) {
this.form.standardList = this.detailList; this.form.standardList = this.detailList;
console.log(this.form.standardList);
writeRepairOrder(this.form).then((response) => { writeRepairOrder(this.form).then((response) => {
this.openWrite = false; this.openWrite = false;
this.$modal.msgSuccess("填写维修记录成功!"); this.$modal.msgSuccess("填写维修记录成功!");
@ -1737,7 +2106,6 @@ export default {
} }
return strs != "" ? strs.substr(0, strs.length - 1) : ""; return strs != "" ? strs.substr(0, strs.length - 1) : "";
}, },
}, },
}; };
</script> </script>

@ -937,7 +937,7 @@ export default {
for (let i = 0; i < response.data.length; i++) { for (let i = 0; i < response.data.length; i++) {
this.personList.push({ this.personList.push({
label: response.data[i].nickName + '(' + response.data[i].userName + ')', label: response.data[i].nickName + '(' + response.data[i].userName + ')',
key: response.data[i].userId, key: response.data[i].userName,
}) })
} }
}); });
@ -1265,7 +1265,11 @@ export default {
} }
this.planLoading = true; this.planLoading = true;
if (this.form.planId != null) { if (this.form.planId != null) {
this.form.personList = this.selectPersonList; this.form.personList = this.selectPersonList.map(item => {
return{
userName: item.toString()
}
});
updatePlan(this.form).then(response => { updatePlan(this.form).then(response => {
this.planLoading = false; this.planLoading = false;
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
@ -1273,7 +1277,11 @@ export default {
this.getList(); this.getList();
}); });
} else { } else {
this.form.personList = this.selectPersonList; this.form.personList = this.selectPersonList.map(item => {
return{
userName: item.toString()
}
});
addPlan(this.form).then(response => { addPlan(this.form).then(response => {
this.planLoading = false; this.planLoading = false;
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");

@ -628,8 +628,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="workDetail = false"> </el-button> <el-button @click="workDetail = false"> </el-button>
<el-button type="primary" @click="workDetail = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>

@ -501,8 +501,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="workDetail = false"> </el-button> <el-button @click="workDetail = false"> </el-button>
<el-button type="primary" @click="workDetail = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>

@ -692,158 +692,138 @@
<el-dialog <el-dialog
title="备件领用" title="备件领用"
:visible.sync="spareDialog" :visible.sync="spareDialog"
width="900px" width="50%"
append-to-body append-to-body
> >
<el-tabs type="border-card"> <!-- 备件申领 -->
<el-tab-pane label="备件选择"> <el-row>
<el-form :model="spareQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch" <el-col class="my-step-mar" :span="1.5">
label-width="68px"> <el-button
<el-form-item label="备件编码"> type="primary"
<el-input plain
v-model="spareQuery.materialCode" size="mini"
placeholder="请输入备件编码" @click="choseSpareBtn">
clearable 选择备件
/> </el-button>
</el-form-item> </el-col>
<el-form-item label="备件名称"> </el-row>
<el-input <el-table
v-model="spareQuery.materialDesc" border
placeholder="请输入备件名称" :data="chooseSpareList"
clearable v-loading="spareLoading"
/> stripe
</el-form-item> style="width: 100%">
<el-form-item v-if="false" label="备件类型"> <el-table-column
<el-input prop="materialCode"
v-model="spareQuery.spareType" label="备件号">
placeholder="请输入备件类型" </el-table-column>
clearable <el-table-column
/> prop="materialDesc"
</el-form-item> label="备件名称">
<el-form-item> </el-table-column>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getSpareList"></el-button> <el-table-column
<el-button icon="el-icon-refresh" size="mini" @click="resetSpare"></el-button> prop="spareType"
</el-form-item> label="备件类型">
</el-form> </el-table-column>
<!-- 搜索-备件列表 --> <el-table-column
<el-table prop="applyNum"
:data="spareList" label="领用数量">
v-loading="spareLoading" </el-table-column>
stripe <el-table-column
@selection-change="selectChangeSpare" fixed="right"
style="width: 100%"> label="操作"
<el-table-column v-if="false" type="selection" width="55" align="center"/> >
<el-table-column <template slot-scope="scope">
prop="materialCode" <el-button @click="delSpareList(scope.row)" type="text" size="small">删除</el-button>
label="备件号"> </template>
</el-table-column> </el-table-column>
<el-table-column </el-table>
prop="materialDesc"
label="备件名称">
</el-table-column>
<el-table-column
prop="spareType"
label="备件类型">
</el-table-column>
<el-table-column
prop="amount"
label="库存数量">
</el-table-column>
<el-table-column
width="150"
fixed="right"
label="操作"
>
<template slot-scope="scope">
<el-button @click="addSpareList(scope.row)" type="text" size="small">添加</el-button>
</template>
</el-table-column>
</el-table>
<pagination <!-- 选择备件 -->
v-show="spareTotal>0" <el-dialog
:total="spareTotal" title="选择备件"
:page.sync="spareQuery.pageNum" :visible.sync="selectSpareDialog"
:limit.sync="spareQuery.pageSize" width="60%"
@pagination="getSpareList" append-to-body
/> >
<el-form :model="spareQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="备件编码">
<el-input
v-model="spareQuery.materialCode"
placeholder="请输入备件编码"
clearable
/>
</el-form-item>
<el-form-item label="备件名称">
<el-input
v-model="spareQuery.materialDesc"
placeholder="请输入备件名称"
clearable
/>
</el-form-item>
<el-form-item v-if="false" label="备件类型">
<el-input
v-model="spareQuery.spareType"
placeholder="请输入备件类型"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getSpareList"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetSpare"></el-button>
</el-form-item>
</el-form>
<!-- 搜索-备件列表 -->
<el-table
:data="spareList"
v-loading="spareLoading"
stripe
@selection-change="selectChangeSpare"
style="width: 100%">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column
prop="materialCode"
label="备件号">
</el-table-column>
<el-table-column
prop="materialDesc"
label="备件名称">
</el-table-column>
<el-table-column
prop="spareType"
label="备件类型">
</el-table-column>
<el-table-column
prop="amount"
label="库存数量">
</el-table-column>
<el-table-column
prop="storageAmount"
label="冻结数量">
</el-table-column>
<el-table-column
prop="applyNum"
label="领用数量">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.applyNum" @change="handleEdit(scope.$index,scope.row)"></el-input>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer"> <pagination
<el-button @click="spareDialog = false"> </el-button> v-show="spareTotal>0"
:total="spareTotal"
:page.sync="spareQuery.pageNum"
:limit.sync="spareQuery.pageSize"
@pagination="getSpareList"
/>
<span slot="footer" class="dialog-footer">
<el-button @click="selectSpareDialog = false"> </el-button>
<el-button type="primary" @click="confirmSelectSpareBtn"> </el-button> <el-button type="primary" @click="confirmSelectSpareBtn"> </el-button>
</span> </span>
</el-tab-pane> </el-dialog>
<el-tab-pane label="备件数量">
<el-row>
<el-col class="my-step-mar" :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="applyNumDialog = true , applyNum = null">
领用数量
</el-button>
</el-col>
</el-row>
<el-table
:data="chooseSpareList"
v-loading="spareLoading"
stripe
@selection-change="selectChangeSpare"
style="width: 100%">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column
prop="materialCode"
label="备件号">
</el-table-column>
<el-table-column
prop="materialDesc"
label="备件名称">
</el-table-column>
<el-table-column
prop="spareType"
label="备件类型">
</el-table-column>
<el-table-column
prop="amount"
label="库存数量">
</el-table-column>
<el-table-column
prop="applyNum"
label="领用数量">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.applyNum" @change="handleEdit(scope.$index,scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column
width="150"
fixed="right"
label="操作"
>
<template slot-scope="scope">
<el-button @click="delSpareList(scope.row)" type="text" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="申领数量"
:visible.sync="applyNumDialog"
width="30%"
append-to-body
>
<el-row>
<el-col :span="8" :offset="7">
<el-input-number v-model="applyNum" @change="changeApplySpareNum" :min="1" label="描述文字"></el-input-number>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button v-if="false" @click="applyNumDialog = false"> </el-button>
<el-button type="primary" @click="applyNumDialog = false"> </el-button>
</span>
</el-dialog>
</el-tab-pane>
<el-button type="primary" class="dialog-footer" @click="spareChangeCom"></el-button>
</el-tabs>
</el-dialog> </el-dialog>
</el-tab-pane> </el-tab-pane>
@ -1175,8 +1155,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="workDetail = false"> </el-button> <el-button @click="workDetail = false"> </el-button>
<el-button type="primary" @click="workDetail = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -1200,6 +1179,10 @@ export default {
dicts: ['device_order_status', 'device_loop_type','device_reach_standard','device_upkeep_type','device_inspect_status'], dicts: ['device_order_status', 'device_loop_type','device_reach_standard','device_upkeep_type','device_inspect_status'],
data() { data() {
return { return {
// list
spareOnList:[],
//
selectSpareDialog:false,
standardListVo:[], standardListVo:[],
workDetail:false, workDetail:false,
// VO // VO
@ -1398,6 +1381,32 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
//
setSpareList() {
querySpareList(this.spareQuery).then(response => {
this.spareTotal = response.total;
this.spareList = response.rows;
this.spareLoading = false;
})
},
// btn
choseSpareBtn(){
//
this.spareOnList = [];
//
this.selectSpareDialog = true;
},
//
handleEdit(index, row) {
// -
if ((Number(row.amount)-Number(row.storageAmount)) < Number(row.applyNum)) {
this.$message({
message: '领用最大数量为:'+(Number(row.amount)-Number(row.storageAmount)),
type: 'warning'
})
row.applyNum = (Number(row.amount)-Number(row.storageAmount));
}
},
// //
resetEqu() { resetEqu() {
this.equipmentQuery = { this.equipmentQuery = {
@ -1409,14 +1418,16 @@ export default {
}; };
this.getEquList(); this.getEquList();
}, },
// // -
handleEdit(index, row) { delSpareList(e) {
if (row.amount < Number(row.applyNum)) { for (let i = 0; i < this.chooseSpareList.length; i++){
this.$message({ if (this.chooseSpareList[i].materialCode == e.materialCode) {
message: '超过库存数量!', this.chooseSpareList.splice(i,1);
type: 'warning' this.$message({
}) message: '删除成功!',
row.applyNum = row.amount; type: 'success'
})
}
} }
}, },
// //
@ -1664,17 +1675,48 @@ export default {
this.selOnSpare[i].applyNum = e; this.selOnSpare[i].applyNum = e;
} }
}, },
// - //
delSpareList(e) { confirmSelectSpareBtn() {
if (this.spareOnList.length == 0) {
this.$message({
message: "请勾选要申领的备件!",
type: "warning"
})
return
}
for (let i = 0; i < this.chooseSpareList.length; i++){ for (let i = 0; i < this.chooseSpareList.length; i++){
if (this.chooseSpareList[i].materialCode == e.materialCode) { for (let j = 0; j < this.spareOnList.length; j++) {
this.chooseSpareList.splice(i,1); if (this.chooseSpareList[i].materialCode == this.spareOnList[j].materialCode) {
this.$message({ this.$message({
message: '删除成功!', message: '不可重复添加!',
type: 'success' type: 'warning'
}) })
return;
}
} }
} }
for (let j = 0; j < this.spareOnList.length; j++) {
if (this.spareOnList[j].applyNum == null) {
this.spareOnList[j].applyNum=1;
}
this.chooseSpareList.push(this.spareOnList[j]);
}
this.$message({
message: '添加成功!',
type: 'success'
})
//
this.selectSpareDialog = false;
},
//
selectChangeSpare(e) {
//
this.spareOnList = [];
//
this.spareOnList = e;
}, },
// - // -
addSpareList(e) { addSpareList(e) {
@ -1696,13 +1738,6 @@ export default {
// //
changeArray(e) { changeArray(e) {
}, },
//
confirmSelectSpareBtn() {
},
//
selectChangeSpare(e) {
this.selOnSpare = e;
},
// //
resetSpare() { resetSpare() {
this.spareQuery = { this.spareQuery = {
@ -1713,18 +1748,6 @@ export default {
}; };
this.setSpareList(); this.setSpareList();
}, },
//
setSpareList() {
querySpareList(this.spareQuery).then(response => {
this.spareTotal = response.total;
this.spareList = response.rows;
// -
for (let i = 0; i < this.spareList.length; i++) {
this.spareList[i].amount = Number(this.spareList[i].amount) - Number(this.spareList[i].storageAmount)
}
this.spareLoading = false;
})
},
// //
getSpareList() { getSpareList() {
this.setSpareList() this.setSpareList()

@ -675,155 +675,135 @@
width="50%" width="50%"
append-to-body append-to-body
> >
<el-tabs type="border-card"> <!-- 备件申领 -->
<el-tab-pane label="备件选择"> <el-row>
<el-form :model="spareQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch" <el-col class="my-step-mar" :span="1.5">
label-width="68px"> <el-button
<el-form-item label="备件编码"> type="primary"
<el-input plain
v-model="spareQuery.materialCode" size="mini"
placeholder="请输入备件编码" @click="choseSpareBtn">
clearable 选择备件
/> </el-button>
</el-form-item> </el-col>
<el-form-item label="备件名称"> </el-row>
<el-input <el-table
v-model="spareQuery.materialDesc" border
placeholder="请输入备件名称" :data="chooseSpareList"
clearable v-loading="spareLoading"
/> stripe
</el-form-item> style="width: 100%">
<el-form-item v-if="false" label="备件类型"> <el-table-column
<el-input prop="materialCode"
v-model="spareQuery.spareType" label="备件号">
placeholder="请输入备件类型" </el-table-column>
clearable <el-table-column
/> prop="materialDesc"
</el-form-item> label="备件名称">
<el-form-item> </el-table-column>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getSpareList"></el-button> <el-table-column
<el-button icon="el-icon-refresh" size="mini" @click="resetSpare"></el-button> prop="spareType"
</el-form-item> label="备件类型">
</el-form> </el-table-column>
<!-- 搜索-备件列表 --> <el-table-column
<el-table prop="applyNum"
:data="spareList" label="领用数量">
v-loading="spareLoading" </el-table-column>
stripe <el-table-column
@selection-change="selectChangeSpare" fixed="right"
style="width: 100%"> label="操作"
<el-table-column v-if="false" type="selection" width="55" align="center"/> >
<el-table-column <template slot-scope="scope">
prop="materialCode" <el-button @click="delSpareList(scope.row)" type="text" size="small">删除</el-button>
label="备件号"> </template>
</el-table-column> </el-table-column>
<el-table-column </el-table>
prop="materialDesc"
label="备件名称">
</el-table-column>
<el-table-column
prop="spareType"
label="备件类型">
</el-table-column>
<el-table-column
prop="amount"
label="库存数量">
</el-table-column>
<el-table-column
width="150"
fixed="right"
label="操作"
>
<template slot-scope="scope">
<el-button @click="addSpareList(scope.row)" type="text" size="small">添加</el-button>
</template>
</el-table-column>
</el-table>
<pagination <!-- 选择备件 -->
v-show="spareTotal>0" <el-dialog
:total="spareTotal" title="选择备件"
:page.sync="spareQuery.pageNum" :visible.sync="selectSpareDialog"
:limit.sync="spareQuery.pageSize" width="60%"
@pagination="getSpareList" append-to-body
/> >
<el-form :model="spareQuery" ref="queryBPForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="备件编码">
<el-input
v-model="spareQuery.materialCode"
placeholder="请输入备件编码"
clearable
/>
</el-form-item>
<el-form-item label="备件名称">
<el-input
v-model="spareQuery.materialDesc"
placeholder="请输入备件名称"
clearable
/>
</el-form-item>
<el-form-item v-if="false" label="备件类型">
<el-input
v-model="spareQuery.spareType"
placeholder="请输入备件类型"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getSpareList"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetSpare"></el-button>
</el-form-item>
</el-form>
<!-- 搜索-备件列表 -->
<el-table
:data="spareList"
v-loading="spareLoading"
stripe
@selection-change="selectChangeSpare"
style="width: 100%">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column
prop="materialCode"
label="备件号">
</el-table-column>
<el-table-column
prop="materialDesc"
label="备件名称">
</el-table-column>
<el-table-column
prop="spareType"
label="备件类型">
</el-table-column>
<el-table-column
prop="amount"
label="库存数量">
</el-table-column>
<el-table-column
prop="storageAmount"
label="冻结数量">
</el-table-column>
<el-table-column
prop="applyNum"
label="领用数量">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.applyNum" @change="handleEdit(scope.$index,scope.row)"></el-input>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer"> <pagination
<el-button @click="spareDialog = false"> </el-button> v-show="spareTotal>0"
:total="spareTotal"
:page.sync="spareQuery.pageNum"
:limit.sync="spareQuery.pageSize"
@pagination="getSpareList"
/>
<span slot="footer" class="dialog-footer">
<el-button @click="selectSpareDialog = false"> </el-button>
<el-button type="primary" @click="confirmSelectSpareBtn"> </el-button> <el-button type="primary" @click="confirmSelectSpareBtn"> </el-button>
</span> </span>
</el-tab-pane> </el-dialog>
<el-tab-pane label="备件数量">
<el-row>
<el-col class="my-step-mar" :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="applyNumDialog = true , applyNum = null">
领用数量
</el-button>
</el-col>
</el-row>
<el-table
:data="chooseSpareList"
v-loading="spareLoading"
stripe
@selection-change="selectChangeSpare"
style="width: 100%">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column
prop="materialCode"
label="备件号">
</el-table-column>
<el-table-column
prop="materialDesc"
label="备件名称">
</el-table-column>
<el-table-column
prop="spareType"
label="备件类型">
</el-table-column>
<el-table-column
prop="amount"
label="库存数量">
</el-table-column>
<el-table-column
prop="applyNum"
label="领用数量">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.applyNum" @change="handleEdit(scope.$index,scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column
width="150"
fixed="right"
label="操作"
>
<template slot-scope="scope">
<el-button @click="delSpareList(scope.row)" type="text" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="申领数量"
:visible.sync="applyNumDialog"
width="30%"
append-to-body
>
<el-row>
<el-col :span="8" :offset="7">
<el-input-number v-model="applyNum" @change="changeApplySpareNum" :min="1" label="描述文字"></el-input-number>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button v-if="false" @click="applyNumDialog = false"> </el-button>
<el-button type="primary" @click="applyNumDialog = false"> </el-button>
</span>
</el-dialog>
</el-tab-pane>
<el-button type="primary" class="dialog-footer" @click="spareChangeCom"></el-button>
</el-tabs>
</el-dialog> </el-dialog>
@ -895,13 +875,25 @@ import {
updateUpkeepPlan, updateUpkeepPlan,
formatEquItem, setSpareList, querySpareList formatEquItem, setSpareList, querySpareList
} from "@/api/device/upkeepPlan"; } from "@/api/device/upkeepPlan";
import {delPlan, getEquList, getPersonList, getWorkCenter, initUpdatePlanInfo, listPlan} from "@/api/device/plan"; import {
addPlan,
delPlan,
getEquList,
getPersonList,
getWorkCenter,
initUpdatePlanInfo,
listPlan, updatePlan
} from "@/api/device/plan";
export default { export default {
name: "UpkeepPlan", name: "UpkeepPlan",
dicts: ['device_loop_type', 'sys_normal_disable','device_upkeep_type'], dicts: ['device_loop_type', 'sys_normal_disable','device_upkeep_type'],
data() { data() {
return { return {
// list
spareOnList:[],
//
selectSpareDialog:false,
// //
pickerOptions: { pickerOptions: {
shortcuts: [{ shortcuts: [{
@ -1061,14 +1053,22 @@ export default {
this.setWorkCenter(); this.setWorkCenter();
}, },
methods: { methods: {
// btn
choseSpareBtn(){
//
this.spareOnList = [];
//
this.selectSpareDialog = true;
},
// //
handleEdit(index, row) { handleEdit(index, row) {
if (row.amount < Number(row.applyNum)) { // -
if ((Number(row.amount)-Number(row.storageAmount)) < Number(row.applyNum)) {
this.$message({ this.$message({
message: '超过库存数量!', message: '领用最大数量为:'+(Number(row.amount)-Number(row.storageAmount)),
type: 'warning' type: 'warning'
}) })
row.applyNum = row.amount; row.applyNum = (Number(row.amount)-Number(row.storageAmount));
} }
}, },
// //
@ -1212,10 +1212,46 @@ export default {
}, },
// //
confirmSelectSpareBtn() { confirmSelectSpareBtn() {
if (this.spareOnList.length == 0) {
this.$message({
message: "请勾选要申领的备件!",
type: "warning"
})
return
}
for (let i = 0; i < this.chooseSpareList.length; i++){
for (let j = 0; j < this.spareOnList.length; j++) {
if (this.chooseSpareList[i].materialCode == this.spareOnList[j].materialCode) {
this.$message({
message: '不可重复添加!',
type: 'warning'
})
return;
}
}
}
for (let j = 0; j < this.spareOnList.length; j++) {
if (this.spareOnList[j].applyNum == null) {
this.spareOnList[j].applyNum=1;
}
this.chooseSpareList.push(this.spareOnList[j]);
}
this.$message({
message: '添加成功!',
type: 'success'
})
//
this.selectSpareDialog = false;
}, },
// //
selectChangeSpare(e) { selectChangeSpare(e) {
this.selOnSpare = e; //
this.spareOnList = [];
//
this.spareOnList = e;
}, },
// //
resetSpare() { resetSpare() {
@ -1232,10 +1268,6 @@ export default {
querySpareList(this.spareQuery).then(response => { querySpareList(this.spareQuery).then(response => {
this.spareTotal = response.total; this.spareTotal = response.total;
this.spareList = response.rows; this.spareList = response.rows;
// -
for (let i = 0; i < this.spareList.length; i++) {
this.spareList[i].amount = Number(this.spareList[i].amount) - Number(this.spareList[i].storageAmount)
}
this.spareLoading = false; this.spareLoading = false;
}) })
}, },
@ -1258,7 +1290,7 @@ export default {
for (let i = 0; i < response.data.length; i++) { for (let i = 0; i < response.data.length; i++) {
this.personList.push({ this.personList.push({
label: response.data[i].nickName + '(' + response.data[i].userName + ')', label: response.data[i].nickName + '(' + response.data[i].userName + ')',
key: response.data[i].userId, key: response.data[i].userName,
}) })
} }
}); });
@ -1628,16 +1660,24 @@ export default {
} }
this.planLoading = true; this.planLoading = true;
if (this.form.planId != null) { if (this.form.planId != null) {
this.form.personList = this.selectPersonList; this.form.personList = this.selectPersonList.map(item => {
updateUpkeepPlan(this.form).then(response => { return{
userName: item.toString()
}
});
updatePlan(this.form).then(response => {
this.planLoading = false; this.planLoading = false;
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
this.form.personList = this.selectPersonList; this.form.personList = this.selectPersonList.map(item => {
addUpkeepPlan(this.form).then(response => { return{
userName: item.toString()
}
});
addPlan(this.form).then(response => {
this.planLoading = false; this.planLoading = false;
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;

@ -166,7 +166,7 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <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 ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="规则名称" prop="projectId"> <el-form-item label="规则名称" prop="projectId">
<el-select v-model="form.projectId" @change="handleChange" placeholder="请选择检验规则属性" > <el-select filterable v-model="form.projectId" @change="handleChange" placeholder="请选择检验规则属性" >
<el-option <el-option
v-for="item in checkRuleList" v-for="item in checkRuleList"
:key="item.id" :key="item.id"
@ -235,7 +235,7 @@ import {
} from "@/api/quality/checkTypeProject"; } from "@/api/quality/checkTypeProject";
import MaterialGroupAdd from "./MaterialGroupAdd.vue"; import MaterialGroupAdd from "./MaterialGroupAdd.vue";
import {listCheckType} from "@/api/quality/checkType"; import {listCheckType} from "@/api/quality/checkType";
import {listProject} from "@/api/quality/project"; import {getProjectList} from "@/api/quality/project";
export default { export default {
name: "CheckTypeProject", name: "CheckTypeProject",
@ -310,8 +310,8 @@ export default {
methods: { methods: {
/**获取检测项目列表**/ /**获取检测项目列表**/
getProjectList(){ getProjectList(){
listProject().then((response) => { getProjectList().then((response) => {
this.checkRuleList = response.rows; this.checkRuleList = response;
}); });
}, },
/** 查询物料检验项目维护列表 */ /** 查询物料检验项目维护列表 */

@ -108,7 +108,6 @@
<el-table-column label="单位" align="center" prop="unitCode" > <el-table-column label="单位" align="center" prop="unitCode" >
<template slot-scope="scope"><dict-tag :options="dict.type.unit" :value="scope.row.unitCode"/></template> <template slot-scope="scope"><dict-tag :options="dict.type.unit" :value="scope.row.unitCode"/></template>
</el-table-column> </el-table-column>
<el-table-column label="检验标准" align="center" prop="checkStandard" :show-overflow-tooltip="true" width="200"/>
<el-table-column label="抽样方案" align="center" prop="samplePlan" :show-overflow-tooltip="true" width="200"/> <el-table-column label="抽样方案" align="center" prop="samplePlan" :show-overflow-tooltip="true" width="200"/>
<el-table-column label="合格判定" align="center" prop="judge" :show-overflow-tooltip="true" width="200"/> <el-table-column label="合格判定" align="center" prop="judge" :show-overflow-tooltip="true" width="200"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">

@ -16,7 +16,14 @@
<el-table-column label="检测规则Id" align="left" prop="recordId" :show-overflow-tooltip="true" v-if="false"/> <el-table-column label="检测规则Id" align="left" prop="recordId" :show-overflow-tooltip="true" v-if="false"/>
<el-table-column label="检测规则编码" align="left" prop="projectNo" :show-overflow-tooltip="true" width="120"/> <el-table-column label="检测规则编码" align="left" prop="projectNo" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="检验规则名称" align="left" prop="ruleName" :show-overflow-tooltip="true" width="120"/> <el-table-column label="检验规则名称" align="left" prop="ruleName" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="检验规则属性" align="left" prop="propertyCode" :show-overflow-tooltip="true" width="120"/> <el-table-column label="检验规则属性" align="left" prop="propertyCode" :show-overflow-tooltip="true" width="120">
<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="checkMode" :show-overflow-tooltip="true" /> <el-table-column label="检验方式" align="left" prop="checkMode" :show-overflow-tooltip="true" />
<el-table-column label="检验工具" align="left" prop="checkTool" :show-overflow-tooltip="true" /> <el-table-column label="检验工具" align="left" prop="checkTool" :show-overflow-tooltip="true" />
<el-table-column label="检验标准" align="left" prop="checkStandard" :show-overflow-tooltip="true" /> <el-table-column label="检验标准" align="left" prop="checkStandard" :show-overflow-tooltip="true" />
@ -98,7 +105,7 @@
import { getCkeckProjectList,changeCheckDetailStatus,commitActualValue,commitCheckResult,getDefectList } from "@/api/quality/income"; import { getCkeckProjectList,changeCheckDetailStatus,commitActualValue,commitCheckResult,getDefectList } from "@/api/quality/income";
export default { export default {
name: "itemSelectUser", name: "itemSelectUser",
dicts: ["check_result"], dicts: ["check_result","qc_rule_prop"],
data() { data() {
return { return {
showFlag:false, showFlag:false,
@ -150,7 +157,7 @@ export default {
methods: { methods: {
getDefect(){ getDefect(){
getDefectList('defect_produce').then(response => { getDefectList('defect_in').then(response => {
this.defectList = response; this.defectList = response;
}); });
}, },
@ -160,6 +167,7 @@ export default {
this.queryParams.belongTo = this.data.recordId; this.queryParams.belongTo = this.data.recordId;
this.typeCode = typeCode; this.typeCode = typeCode;
this.checkType = this.data.checkType; this.checkType = this.data.checkType;
this.orderNo = this.data.orderNo;
this.getList(); this.getList();
}, },
@ -188,7 +196,7 @@ export default {
// //
submitBomForm() { submitBomForm() {
commitCheckResult(this.queryParams.belongTo,this.typeCode,this.checkType).then(response => { commitCheckResult(this.queryParams.belongTo,this.typeCode,this.checkType,this.orderNo).then(response => {
this.$modal.msgSuccess("检测完成"); this.$modal.msgSuccess("检测完成");
this.$emit('saveCheck'); this.$emit('saveCheck');
this.showFlag = false; this.showFlag = false;

@ -138,7 +138,7 @@
<el-table-column label="物料号" align="center" prop="materialCode" width="170"/> <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="materialName" width="150"/>
<el-table-column label="收货数量" align="center" prop="quality" /> <el-table-column label="收货数量" align="center" prop="quality" />
<el-table-column label="不合格数量" align="center" prop="noOkQuality" /> <el-table-column label="不合格数量" align="center" prop="noOkQuality" width="120"/>
<el-table-column label="单位" align="center" prop="unit" /> <el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="供应商编码" align="center" prop="supplierCode" width="120"/> <el-table-column label="供应商编码" align="center" prop="supplierCode" width="120"/>
<el-table-column label="供应商名称" align="center" prop="supplierName" width="240"/> <el-table-column label="供应商名称" align="center" prop="supplierName" width="240"/>
@ -214,31 +214,6 @@
<el-input v-model="form.checkNo" placeholder="请输入检验任务编号" disabled/> <el-input v-model="form.checkNo" placeholder="请输入检验任务编号" disabled/>
</el-form-item> </el-form-item>
</el-col> </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="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-col :span="8">
<el-form-item label="检验类型" prop="checkType" > <el-form-item label="检验类型" prop="checkType" >
<el-select v-model="form.checkType" placeholder="请选择检验类型" style="width: 100%;"> <el-select v-model="form.checkType" placeholder="请选择检验类型" style="width: 100%;">
@ -251,6 +226,31 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </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-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="incomeBatchNo">
<el-input v-model="form.incomeBatchNo" placeholder="请输入来料批次号" />
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
@ -325,11 +325,11 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!--产品物料选择弹窗--> <!--订单选择弹窗-->
<ItemSelectMaterial <ItemSelectWorkOrder
ref="itemSelectMaterial" ref="itemSelectWorkOrder"
@onSelected="onSelectMaterial" @onSelected="onSelectWorkOrder"
></ItemSelectMaterial> ></ItemSelectWorkOrder>
<!--供应商选择弹窗--> <!--供应商选择弹窗-->
<ItemSelectSupplier <ItemSelectSupplier
ref="itemSelectSupplier" ref="itemSelectSupplier"
@ -351,14 +351,14 @@
<script> <script>
import { listIncome, getIncome, delIncome, addIncome, updateIncome ,changeIncomeStatus} from "@/api/quality/income"; import { listIncome, getIncome, delIncome, addIncome, updateIncome ,changeIncomeStatus} from "@/api/quality/income";
import { getCheckTypes } from "@/api/quality/qcProduce"; import { getCheckTypes } from "@/api/quality/qcProduce";
import ItemSelectMaterial from "./selectMaterial.vue"; import ItemSelectWorkOrder from "./selectLLWorkOrder.vue";
import ItemSelectSupplier from "./selectSupplier.vue"; import ItemSelectSupplier from "./selectSupplier.vue";
import ItemSelectUser from "./selectUser.vue"; import ItemSelectUser from "./selectUser.vue";
import ItemSelectProject from "./checkProjectType.vue"; import ItemSelectProject from "./checkProjectType.vue";
import moment from 'moment'; import moment from 'moment';
export default { export default {
name: "Income", name: "Income",
components: { ItemSelectMaterial,ItemSelectSupplier,ItemSelectUser,ItemSelectProject}, components: { ItemSelectWorkOrder,ItemSelectSupplier,ItemSelectUser,ItemSelectProject},
dicts: ["unit","check_status","check_result"], dicts: ["unit","check_status","check_result"],
data() { data() {
return { return {
@ -414,6 +414,9 @@ export default {
checkTypes:[], checkTypes:[],
// //
rules: { rules: {
checkType:[
{ required: true, message: "检验类型不能为空", trigger: "blur" }
],
incomeBatchNo: [ incomeBatchNo: [
{ required: true, message: "来料批次号不能为空", trigger: "blur" } { required: true, message: "来料批次号不能为空", trigger: "blur" }
], ],
@ -611,14 +614,21 @@ export default {
}); });
}, },
/**物料选择弹出框**/ /**工单选择弹出框**/
handleSelectMaterial() { handleSelectWorkOrder() {
this.$refs.itemSelectMaterial.showFlag = true; this.$refs.itemSelectWorkOrder.showFlag = true;
}, },
// //
onSelectMaterial(obj) { onSelectWorkOrder(obj) {
this.form.materialCode = obj.code; this.form.orderNo = obj.orderNo;
this.form.materialName = obj.name; this.form.materialName = obj.materialName;
this.form.materialCode = obj.materialCode;
this.form.quality = obj.quality;
this.form.incomeBatchNo = obj.incomeBatchNo;
this.form.unit = obj.unit;
this.form.supplierCode = obj.supplierCode;
this.form.supplierName = obj.supplierName;
this.form.incomeTime = obj.incomeTime;
}, },
/**供应商选择弹出框**/ /**供应商选择弹出框**/

@ -0,0 +1,137 @@
<template>
<el-dialog title="来料DN单号选择"
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="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="incomeBatchNo" width="120"/>
<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="supplierCode" :show-overflow-tooltip="true" />
<el-table-column label="供应商名称" align="left" prop="supplierName" :show-overflow-tooltip="true" />
<el-table-column label="排产数量" align="left" prop="quality" width="100" />
<el-table-column label="单位" align="left" prop="unit" :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="submitLLOrderForm"> </el-button>
<el-button @click="showFlag=false"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { getLLWorkOrder } 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;
getLLWorkOrder(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>

@ -162,10 +162,10 @@
<el-table-column label="id" align="center" prop="recordId" v-if="false"/> <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="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="checkNo" width="120"/>
<el-table-column label="批次号" align="center" prop="incomeBatchNo" width="120"/> <el-table-column label="批次号" align="center" prop="incomeBatchNo" width="200" />
<el-table-column label="订单号" align="center" prop="orderNo" width="120"/> <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="materialCode" width="170"/>
<el-table-column label="物料名称" align="center" prop="materialName" width="150"/> <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="quality" />
<el-table-column label="抽样数量" align="center" prop="sampleQuality" /> <el-table-column label="抽样数量" align="center" prop="sampleQuality" />
<el-table-column label="不合格数量" align="center" prop="noOkQuality" width="120"/> <el-table-column label="不合格数量" align="center" prop="noOkQuality" width="120"/>
@ -242,31 +242,6 @@
<el-input v-model="form.checkNo" placeholder="请输入检验任务编号" disabled/> <el-input v-model="form.checkNo" placeholder="请输入检验任务编号" disabled/>
</el-form-item> </el-form-item>
</el-col> </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="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-col :span="8">
<el-form-item label="检验类型" prop="checkType" > <el-form-item label="检验类型" prop="checkType" >
@ -280,18 +255,45 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </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-row> <el-row>
<el-col :span="8">
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="form.materialName" placeholder="请选择物料名称"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料号" prop="materialCode">
<el-input v-model="form.materialCode" placeholder="请输入物料号"/>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="生产数量" prop="quality"> <el-form-item label="生产数量" prop="quality">
<el-input type="number" v-model="form.quality" placeholder="请输入生产数量" /> <el-input type="number" v-model="form.quality" placeholder="请输入生产数量" disabled/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> </el-row>
<el-form-item label="抽样数量" prop="sampleQuality"> <el-row>
<el-input type="number" v-model="form.sampleQuality" placeholder="请输入抽样数量" /> <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-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="单位" prop="unit" > <el-form-item label="单位" prop="unit" >
<el-select v-model="form.unit" placeholder="请选择单位" style="width: 100%;"> <el-select v-model="form.unit" placeholder="请选择单位" style="width: 100%;">
@ -304,6 +306,18 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<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-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
@ -336,13 +350,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="生产时间" prop="incomeTime"> <el-form-item label="抽样数量" prop="sampleQuality">
<el-date-picker clearable <el-input type="number" v-model="form.sampleQuality" placeholder="请输入抽样数量" />
v-model="form.incomeTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择生产时间">
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -371,11 +380,11 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!--产品物料选择弹窗--> <!--订单选择弹窗-->
<ItemSelectMaterial <ItemSelectWorkOrder
ref="itemSelectMaterial" ref="itemSelectWorkOrder"
@onSelected="onSelectMaterial" @onSelected="onSelectWorkOrder"
></ItemSelectMaterial> ></ItemSelectWorkOrder>
<!--工作中心(车间)选择弹窗--> <!--工作中心(车间)选择弹窗-->
<ItemSelectWorkCenter <ItemSelectWorkCenter
ref="itemSelectWorkCenter" ref="itemSelectWorkCenter"
@ -395,15 +404,17 @@
</template> </template>
<script> <script>
import { listQcProduce, getQcProduce, delQcProduce, addQcProduce, updateQcProduce,getCheckTypes,changeProduceStatus } from "@/api/quality/qcProduce"; import { listQcProduce, getQcProduce, delQcProduce, addQcProduce, updateQcProduce,
getCheckTypes,changeProduceStatus,getBatchList
} from "@/api/quality/qcProduce";
import moment from 'moment'; import moment from 'moment';
import ItemSelectMaterial from "../qcIncome/selectMaterial.vue"; import ItemSelectWorkOrder from "./selectWorkOrder.vue";
import ItemSelectWorkCenter from "./selectWorkCenter.vue"; import ItemSelectWorkCenter from "./selectWorkCenter.vue";
import ItemSelectUser from "../qcIncome/selectUser.vue"; import ItemSelectUser from "../qcIncome/selectUser.vue";
import ItemSelectProject from "../qcIncome/checkProjectType.vue"; import ItemSelectProject from "../qcIncome/checkProjectType.vue";
export default { export default {
name: "QcProduce", name: "QcProduce",
components: { ItemSelectMaterial,ItemSelectWorkCenter,ItemSelectUser,ItemSelectProject}, components: { ItemSelectWorkCenter,ItemSelectUser,ItemSelectProject,ItemSelectWorkOrder},
dicts: ["unit","check_status","check_result"], dicts: ["unit","check_status","check_result"],
data() { data() {
return { return {
@ -458,7 +469,7 @@ export default {
form: {}, form: {},
checkTypes:[], checkTypes:[],
batchList:[],
// //
rules: { rules: {
incomeBatchNo: [ incomeBatchNo: [
@ -660,14 +671,21 @@ export default {
}); });
}, },
/**物料选择弹出框**/ /**工单选择弹出框**/
handleSelectMaterial() { handleSelectWorkOrder() {
this.$refs.itemSelectMaterial.showFlag = true; this.$refs.itemSelectWorkOrder.showFlag = true;
}, },
// //
onSelectMaterial(obj) { onSelectWorkOrder(obj) {
this.form.materialCode = obj.code; this.form.orderNo = obj.orderNo;
this.form.materialName = obj.name; 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;
});
}, },
/**工作中心选择弹出框**/ /**工作中心选择弹出框**/

@ -0,0 +1,139 @@
<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="180"/>
<el-table-column label="工单号" align="left" prop="workorderCode" width="180"/>
<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>

@ -328,6 +328,7 @@
<el-step title="设备使用状况"></el-step> <el-step title="设备使用状况"></el-step>
<el-step title="设备资产信息"></el-step> <el-step title="设备资产信息"></el-step>
<el-step title="设备绑定备件"></el-step> <el-step title="设备绑定备件"></el-step>
<el-step title="设备绑定辅助设备"></el-step>
</el-steps> </el-steps>
</div> </div>
<!-- 维修基本信息 --> <!-- 维修基本信息 -->
@ -512,24 +513,23 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="设备负责人" prop="equipmentHeadName"> <el-form-item label="设备负责人" prop="equipmentHead">
<el-select <el-input
v-model="queryParams.equipmentHeadName" v-model="form.equipmentHead"
placeholder="请选择设备负责人" placeholder="请选择设备负责人"
@change="$forceUpdate()" >
filterable <el-button
clearable slot="append"
style="width: 195px" @click="handleSelectPerson"
@keyup.enter.native="handleQuery" icon="el-icon-search"
> ></el-button>
<el-option </el-input>
v-for="item in equipmentHeadOption" <ItemSelectPerson
:key="item.userName" ref="itemSelectPerson"
:label="item.teamUserName" @onSelected="onItemSelectedPerson"
:value="item.userName" >
></el-option> </ItemSelectPerson>
</el-select> </el-form-item>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -617,7 +617,7 @@
</el-row> </el-row>
</div> </div>
<!-- 维修基本信息 --> <!-- 设备绑定备件 -->
<div v-if="this.repairRecordSteps == 3" class="step-body"> <div v-if="this.repairRecordSteps == 3" class="step-body">
<template> <template>
<el-transfer <el-transfer
@ -631,16 +631,32 @@
</el-transfer> </el-transfer>
</template> </template>
</div> </div>
<!-- 设备绑定辅助设备 -->
<div v-if="this.repairRecordSteps == 4" class="step-body">
<template>
<el-transfer
filterable
filter-placeholder="请输入辅助设备名称"
v-model="auxiliaryEquipmentRightList"
:titles="['未绑定辅助设备列表', '已绑定辅助设备列表']"
:button-texts="['取消', '绑定']"
:data="auxiliaryEquipmentLeftList"
>
</el-transfer>
</template>
</div>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button v-if="this.repairRecordSteps > 0" @click="stepLast" <el-button v-if="this.repairRecordSteps > 0" @click="stepLast"
>上一步</el-button >上一步</el-button
> >
<el-button v-if="this.repairRecordSteps < 3" @click="stepNext" <el-button v-if="this.repairRecordSteps < 4" @click="stepNext"
>下一步</el-button >下一步</el-button
> >
<el-button <el-button
v-if="this.repairRecordSteps == 3" v-if="this.repairRecordSteps == 4"
type="primary" type="primary"
@click="submitForm" @click="submitForm"
> </el-button > </el-button
@ -719,7 +735,7 @@
form.department form.department
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="设备负责人">{{ <el-descriptions-item label="设备负责人">{{
form.equipmentHeadName form.equipmentHead
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
@ -890,11 +906,12 @@ import { listTeamMembers } from "@/api/wms/team";
import EquipmentSpareParts from "./single.vue"; import EquipmentSpareParts from "./single.vue";
import { Message } from "element-ui"; import { Message } from "element-ui";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import ItemSelectPerson from "./single.vue";
export default { export default {
name: "Equipment", name: "Equipment",
dicts: ["sys_normal_disable", "equ_type", "equipment_status"], dicts: ["sys_normal_disable", "equ_type", "equipment_status"],
components: { EquipmentSpareParts }, components: { EquipmentSpareParts ,ItemSelectPerson},
data() { data() {
return { return {
CS: { CS: {
@ -969,6 +986,9 @@ export default {
repairRecordSteps: 0, repairRecordSteps: 0,
leftList: [], leftList: [],
rightList: [], rightList: [],
//
auxiliaryEquipmentRightList:[],
auxiliaryEquipmentLeftList:[],
bind: undefined, bind: undefined,
imageFileList: [], imageFileList: [],
qrFileList: [], qrFileList: [],
@ -1108,16 +1128,13 @@ export default {
this.queryEquipmentHeadParams.pageNum = 1; this.queryEquipmentHeadParams.pageNum = 1;
this.queryEquipmentHeadParams.pageSize = 2000; this.queryEquipmentHeadParams.pageSize = 2000;
listTeamMembers(this.queryHeadParams).then((response) => { listTeamMembers(this.queryHeadParams).then((response) => {
console.log(response.rows);
this.equipmentHeadOption = response.rows; this.equipmentHeadOption = response.rows;
}); });
}, },
/** 查询设备分类 */ /** 查询设备分类 */
getEquipmentType() { getEquipmentType() {
getEquipmentTypeList().then((response) => { getEquipmentTypeList().then((response) => {
console.log(response.rows);
this.equipmentTypeOption = response.rows; this.equipmentTypeOption = response.rows;
console.log(this.treeData1);
}); });
}, },
/** 查询设备备件 */ /** 查询设备备件 */
@ -1147,6 +1164,17 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
listEquipment(this.queryParams).then((response) => { 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.equipmentList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -1194,6 +1222,7 @@ export default {
workshopSection: null, workshopSection: null,
equipmentLocation: null, equipmentLocation: null,
hourlyUnitPrice: null, hourlyUnitPrice: null,
equipmentHead : null,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -1246,25 +1275,29 @@ export default {
this.reset(); this.reset();
getWorkCenterList().then((response) => { getWorkCenterList().then((response) => {
this.options1 = response.rows; this.options1 = response.rows;
console.log(this.options1);
}); });
this.repairRecordSteps = 0;
this.open = true; this.open = true;
this.title = "添加设备管理"; this.title = "添加设备管理";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const equipmentId = row.equipmentId || this.ids; const equipmentId = row.equipmentId || this.ids;
getWorkCenterList().then((response) => { getWorkCenterList().then((response) => {
this.options1 = response.rows; this.options1 = response.rows;
console.log(this.options1);
}); });
getEquipment(equipmentId).then((response) => { getEquipment(equipmentId).then((response) => {
this.form = response.data; this.form = response.data;
for (let i in response.data.selectedData) { for (let i in response.data.selectedData) {
// 穿 // 穿
this.rightList.push(response.data.selectedData[i].spareCode); this.rightList.push(response.data.selectedData[i].spareCode);
} }
for (let i in response.data.selectedEquipmentData) {
// 穿
this.auxiliaryEquipmentRightList.push(response.data.selectedEquipmentData[i].auxiliaryEquipmentCode);
}
if (response.data.imageFiles != null) { if (response.data.imageFiles != null) {
var newFiles = []; var newFiles = [];
@ -1275,7 +1308,6 @@ export default {
newFiles.push(newFile); newFiles.push(newFile);
}); });
this.form.imageFileList = newFiles; this.form.imageFileList = newFiles;
console.log("55555", this.form.imageFileList);
} }
if (response.data.qrFiles != null) { if (response.data.qrFiles != null) {
var newFiles = []; var newFiles = [];
@ -1298,16 +1330,17 @@ export default {
this.form.barCodeFileList = newFiles; this.form.barCodeFileList = newFiles;
} }
this.form.workCenter = this.form.workshopCode; this.form.workCenter = this.form.workshopCode;
this.repairRecordSteps = 0;
this.open = true; this.open = true;
this.title = "修改设备管理"; this.title = "修改设备管理";
}); });
}, },
// //
handleView(row) { handleView(row) {
this.reset(); this.reset();
const equipmentId = row.equipmentId || this.ids; const equipmentId = row.equipmentId || this.ids;
getWorkCenterList().then((response) => { getWorkCenterList().then((response) => {
console.log(this.options1);
}); });
getEquipment(equipmentId).then((response) => { getEquipment(equipmentId).then((response) => {
this.form = response.data; this.form = response.data;
@ -1341,6 +1374,7 @@ export default {
this.optType = "view"; this.optType = "view";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
if (Array.isArray(this.form.qrFileList)) { if (Array.isArray(this.form.qrFileList)) {
@ -1358,6 +1392,7 @@ export default {
if (valid) { if (valid) {
if (this.form.equipmentId != null) { if (this.form.equipmentId != null) {
this.form.rightData = this.rightList; this.form.rightData = this.rightList;
this.form.auxiliaryEquipmentRightData = this.auxiliaryEquipmentRightList;
updateEquipment(this.form).then((response) => { updateEquipment(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
@ -1381,6 +1416,7 @@ export default {
"【设备基础信息】设备类型为空,请选择设备类型!" "【设备基础信息】设备类型为空,请选择设备类型!"
); );
} else { } else {
this.form.auxiliaryEquipmentRightData = this.auxiliaryEquipmentRightList;
this.form.rightData = this.rightList; this.form.rightData = this.rightList;
addEquipment(this.form).then((response) => { addEquipment(this.form).then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
@ -1467,6 +1503,17 @@ export default {
); );
}, },
//
handleSelectPerson() {
this.$refs.itemSelectPerson.showFlag = true;
},
//
onItemSelectedPerson(obj) {
this.$set(this.form,"equipmentHead",obj[0].nickName + "(" + obj[0].userName+")" );
console.log(this.form.equipmentHead);
},
// //
handleStatusChange(row) { handleStatusChange(row) {
let text = row.status === "1" ? "启用" : "停用"; let text = row.status === "1" ? "启用" : "停用";
@ -1498,4 +1545,8 @@ export default {
.step-body { .step-body {
margin-top: 50px; margin-top: 50px;
} }
.el-transfer-panel {
width: 350px;
}
</style> </style>

@ -1,37 +1,130 @@
<template> <template>
<el-dialog <el-dialog
title="备品备件绑定" title="人员选择"
v-if="showFlag" v-if="showFlag"
:visible.sync="showFlag" :visible.sync="showFlag"
:modal="false" :modal="false"
width="1100px" width="800px"
center center
:before-close="cancel"
> >
<el-transfer <el-row :gutter="20">
filterable <!--人员数据-->
filter-placeholder="请输入班组人员名称" <el-col :span="24">
v-model="rightList" <el-form
:titles="['未绑定备件列表', '已绑定备件列表']" :model="queryParams"
:button-texts="['取消绑定', '绑定备件']" ref="queryForm"
:data="leftList" 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-transfer> <el-button @click="cancel"> </el-button>
<div slot="footer" class="dialog-footer"> </div>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click=""> </el-button>
</div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { getSparePartsList,bindSpareParts } from "@/api/wms/equipment"; import { getPersonList } from "@/api/wms/equipment";
import { Message } from "element-ui"; import { Message } from "element-ui";
export default { export default {
name: "MdItemSingle", name: "MdItemSingle",
data() { data() {
return { return {
treeData1: [],
showFlag: false, showFlag: false,
//
selectedItemId: undefined,
selectedRows: undefined,
// //
single: true, single: true,
// //
@ -40,59 +133,97 @@ export default {
showSearch: true, showSearch: true,
// //
total: 0, total: 0,
//
itemList: null,
//
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
itemName: null,
itemCodeGet: "",
itemCode: null,
nickName: null,
userName: null,
}, },
// //
form: {}, columns: [
leftList: [], { key: 0, label: `人员编码`, visible: true },
rightList: [], { key: 1, label: `人员名称`, visible: true },
{ key: 1, label: `联系方式`, visible: true },
],
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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() { getList() {
this.loading = true; this.loading = true;
getSparePartsList(this.queryParams).then((response) => { this.queryParams.userName = this.queryParams.itemCode;
for (let i in response.rows) { this.queryParams.nickName = this.queryParams.itemName;
// 穿 getPersonList(this.queryParams).then((response) => {
this.leftList.push({ this.itemList = response.rows;
key: response.rows[i].materialCode, this.total = response.total;
label: response.rows[i].materialDesc,
});
}
for (let i in response.selected) {
this.rightList.push(response.selected[i].key);
this.form.rightData = this.rightList;
}
this.loading = false; 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() { submitForm() {
this.form.rightData = this.rightList; if (this.$refs.multipleTable.selection.length > 1) {
bindSpareParts(this.form).then((response) => { Message.warning("只能选择一个人员,请勿选择多个!");
this.showFlag = false; } else {
this.$modal.msgSuccess("绑定成功"); this.$emit("onSelected", this.$refs.multipleTable.selection);
}); this.showFlag = false;
this.getList();
}
}, },
}, },
}; };
</script> </script>
<style>
.el-transfer-panel {
width: 350px;
}
.query {
display: flex;
justify-content: space-between;
padding-right: 4px;
}
</style>

Loading…
Cancel
Save