Merge remote-tracking branch 'origin/master'

yangwl
wws 1 year ago
commit 9ba845c490

@ -16,3 +16,11 @@ export function getMesBoardEquProductionToday(data) {
data: data
});
}
// 获取班次
export function getBoardShifts(data) {
return request({
url: '/mes/wcsInterface/getBoardShifts',
method: 'post',
data: data
});
}

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<el-row v-if="optType !='view'" :gutter="10" class="mb8">
<el-row v-if="optType != 'view'" :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
@ -9,7 +9,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['mes:pro:processcontent:add']"
>新增</el-button>
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -20,7 +21,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['mes:pro:processcontent:edit']"
>修改</el-button>
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -31,7 +33,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes:pro:processcontent:remove']"
>删除</el-button>
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -41,19 +44,54 @@
size="mini"
@click="handleExport"
v-hasPermi="['mes:pro:processcontent:export']"
>导出</el-button>
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="processcontentList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="processcontentList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="顺序编号" align="center" prop="orderNum" />
<el-table-column label="步骤说明" width="400px" align="center" prop="contentText" :show-overflow-tooltip="true"/>
<el-table-column label="辅助设备" align="center" prop="device" :show-overflow-tooltip="true"/>
<el-table-column label="BOM材料" align="center" prop="material" :show-overflow-tooltip="true"/>
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true"/>
<el-table-column label="操作" width="100px" v-if="optType !='view'" align="center" class-name="small-padding fixed-width">
<el-table-column
label="步骤说明"
width="400px"
align="center"
prop="contentText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="辅助设备"
align="center"
prop="device"
:show-overflow-tooltip="true"
/>
<el-table-column
label="BOM材料"
align="center"
prop="material"
:show-overflow-tooltip="true"
/>
<el-table-column
label="备注"
align="center"
prop="remark"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
width="100px"
v-if="optType != 'view'"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
@ -61,20 +99,22 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:pro:processcontent:edit']"
>修改</el-button>
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['mes:pro:processcontent:remove']"
>删除</el-button>
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -84,13 +124,17 @@
<!-- 添加或修改生产工序内容对话框 -->
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row >
<el-col :span="12">
<el-form-item label="顺序编号" prop="orderNum">
<el-input-number :min="1" v-model="form.orderNum" placeholder="请输入顺序编号" />
</el-form-item>
</el-col>
<!--
<el-row>
<el-col :span="12">
<el-form-item label="顺序编号" prop="orderNum">
<el-input-number
:min="1"
v-model="form.orderNum"
placeholder="请输入顺序编号"
/>
</el-form-item>
</el-col>
<!--
<el-col :span="12">
<el-form-item label="材料URL" prop="docUrl">
<el-input v-model="form.docUrl" placeholder="请输入材料URL" />
@ -98,38 +142,118 @@
</el-col>-->
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="辅助设备" prop="device">
<el-input v-model="form.device" placeholder="请选择辅助设备" >
<el-button slot="append" @click="handleSelectEquipment" icon="el-icon-search"></el-button>
</el-input>
<ItemSelect ref="itemSelect" @onSelected="onItemSelectedEquipment" > </ItemSelect>
</el-form-item>
</el-col>
<el-col :span="24">
<!-- <el-form-item label="辅助设备" prop="device">
<el-input v-model="form.device" placeholder="请选择辅助设备">
<el-button
slot="append"
@click="handleSelectEquipment"
icon="el-icon-search"
></el-button>
</el-input>
<ItemSelect
ref="itemSelect"
@onSelected="onItemSelectedEquipment"
>
</ItemSelect>
</el-form-item> -->
</el-col>
<el-col :span="24">
<div class="tagbox">
<div class="tagboxlabel" style="font-weight: 600; color: #606266">
辅助设备
</div>
<div class="tag" style="" placeholder="请选择辅助设备">
<el-tag
:key="index"
class="tagitem"
v-for="(tag, index) in selectsubsidiaryListtag"
closable
:disable-transitions="false"
@close="handleClose(tag)"
>
{{ tag }}
</el-tag>
</div>
<el-button
slot="append"
class="button1"
@click="handleSelectEquipment"
icon="el-icon-search"
></el-button>
<ItemSelect
ref="itemSelect"
@onSelected="onItemSelectedEquipment"
>
</ItemSelect>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="BOM材料" prop="material">
<el-input v-model="form.material" placeholder="请选择BOM材料" >
<el-button slot="append" @click="handleSelectBom" icon="el-icon-search"></el-button>
<!-- <el-form-item label="BOM材料" prop="material">
<el-input v-model="form.material" placeholder="请选择BOM材料">
<el-button
slot="append"
@click="handleSelectBom"
icon="el-icon-search"
></el-button>
</el-input>
<ItemSelectBom ref="itemSelectBom" @onSelected="onItemSelectedBom" ></ItemSelectBom>
</el-form-item>
<ItemSelectBom
ref="itemSelectBom"
@onSelected="onItemSelectedBom"
></ItemSelectBom>
</el-form-item> -->
<div class="tagbox">
<div class="tagboxlabel" style="font-weight: 600; color: #606266">
BOM材料
</div>
<div class="tag" style="" placeholder="请选择BOM材料">
<el-tag
:key="index"
class="tagitem"
v-for="(tag, index) in selectBOMListtag"
closable
:disable-transitions="false"
@close="handleCloseBOM(tag)"
>
{{ tag }}
</el-tag>
</div>
<el-button
slot="append"
class="button1"
@click="handleSelectBom"
icon="el-icon-search"
></el-button>
<ItemSelectBom
ref="itemSelectBom"
@onSelected="onItemSelectedBom"
></ItemSelectBom>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="步骤说明" prop="contentText">
<el-input v-model="form.contentText" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="步骤说明" prop="contentText">
<el-input
v-model="form.contentText"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
@ -141,14 +265,20 @@
</template>
<script>
import { listProcesscontent, getProcesscontent, delProcesscontent, addProcesscontent, updateProcesscontent } from "@/api/technology/processcontent";
import ItemSelect from "./single.vue";
import ItemSelectBom from "./singleBom.vue";
import { Message } from 'element-ui'
import {
listProcesscontent,
getProcesscontent,
delProcesscontent,
addProcesscontent,
updateProcesscontent,
} from "@/api/technology/processcontent";
import ItemSelect from "./single.vue";
import ItemSelectBom from "./singleBom.vue";
import { Message } from "element-ui";
export default {
name: "Processcontent",
components: {ItemSelect,ItemSelectBom},
components: { ItemSelect, ItemSelectBom },
data() {
return {
//
@ -170,8 +300,8 @@ export default {
//
open: false,
//
checkMaterial :null,
checkDevice :null,
checkMaterial: null,
checkDevice: null,
queryParams: {
pageNum: 1,
pageSize: 10,
@ -187,85 +317,121 @@ export default {
//
rules: {
processId: [
{ required: true, message: "工序不能为空", trigger: "blur" }
{ required: true, message: "工序不能为空", trigger: "blur" },
],
}
},
// -listtag
selectsubsidiaryListtag: [],
selectBOMListtag: [],
};
},
props :{
processId: undefined,
optType: undefined
props: {
processId: undefined,
optType: undefined,
},
created() {
this.getList();
},
methods: {
//
handleClose(tag) {
this.selectsubsidiaryListtag.splice(
this.selectsubsidiaryListtag.indexOf(tag),
1
);
this.form.device = "";
var code = [];
this.selectsubsidiaryListtag.forEach((item) => {
if (item) {
code.push(item);
}
});
console.log(code, this.selectsubsidiaryListtag);
this.form.device = code.join(",");
},
// BOM
handleCloseBOM(tag) {
this.selectBOMListtag.splice(this.selectBOMListtag.indexOf(tag), 1);
this.form.material = "";
var code = [];
this.selectBOMListtag.forEach((item) => {
if (item) {
code.push(item);
}
});
console.log(code, this.selectBOMListtag);
this.form.material = code.join(",");
},
//
onItemSelectedEquipment(obj){
if(this.form.device == null || this.form.device == ""){
console.log("device是空if获取的obj",obj);
console.log("device是空if获取的device",this.form.device);
onItemSelectedEquipment(obj) {
if (this.form.device == null || this.form.device == "") {
console.log("device是空if获取的obj", obj);
console.log("device是空if获取的device", this.form.device);
this.form.device = obj;
}else{
if(obj != undefined && obj != null && obj != "" ){
const a = obj.split(',');
const len = obj.split(',').length;
console.log('切割的数组',obj.split(','));
a.forEach(item => {
const b = this.form.device.split(',');
this.selectsubsidiaryListtag = obj.split(",");
} else {
if (obj != undefined && obj != null && obj != "") {
const a = obj.split(",");
const len = obj.split(",").length;
console.log("切割的数组", obj.split(","));
a.forEach((item) => {
const b = this.form.device.split(",");
const size = b.length;
console.log("size",size,b[size-1])
const item1 = item+',';
console.log("打印item1",item1);
console.log("size", size, b[size - 1]);
const item1 = item + ",";
console.log("打印item1", item1);
this.checkDevice = this.form.device.search(item1) != -1;
console.log("check的值",this.checkDevice);
if(this.checkDevice == true || b[size-1] == item){
console.log("重复添加",true);
Message.warning('您已经添加过该设备,请勿重复添加!!!');
}else if(this.checkDevice == false){
this.form.device = this.form.device +","+item;
console.log("check的值", this.checkDevice);
if (this.checkDevice == true || b[size - 1] == item) {
console.log("重复添加", true);
Message.warning("您已经添加过该设备,请勿重复添加!!!");
} else if (this.checkDevice == false) {
this.selectsubsidiaryListtag.push(item);
this.form.device = this.form.device + "," + item;
}
})
});
}
}
},
// BOM
onItemSelectedBom(obj){
if(this.form.material == null ||this.form.material == ""){
console.log("material是空if获取的obj",obj);
console.log("material是空if获取的material",this.form.material);
onItemSelectedBom(obj) {
if (this.form.material == null || this.form.material == "") {
console.log("material是空if获取的obj", obj);
console.log("material是空if获取的material", this.form.material);
this.form.material = obj;
}else{
if(obj != undefined && obj != null){
const a = obj.split(',');
const len = obj.split(',').length;
console.log('切割的数组',obj.split(','));
a.forEach(item => {
this.selectBOMListtag = obj.split(",");
} else {
if (obj != undefined && obj != null) {
const a = obj.split(",");
const len = obj.split(",").length;
console.log("切割的数组", obj.split(","));
a.forEach((item) => {
this.checkMaterial = this.form.material.search(item) != -1;
console.log("check的值",this.check);
if(this.checkMaterial == true){
console.log("重复添加",true);
Message.warning('您已经添加过该物料Bom,请勿重复添加!!!');
}else if(this.checkMaterial == false){
this.form.material = this.form.material +","+item;
console.log("check的值", this.check);
if (this.checkMaterial == true) {
console.log("重复添加", true);
Message.warning("您已经添加过该物料Bom,请勿重复添加!!!");
} else if (this.checkMaterial == false) {
this.selectBOMListtag.push(item);
this.form.material = this.form.material + "," + item;
}
})
});
}
}
},
//
handleSelectEquipment(){
handleSelectEquipment() {
this.$refs.itemSelect.showFlag = true;
},
// //
handleSelectBom(){
handleSelectBom() {
this.$refs.itemSelectBom.showFlag = true;
},
/** 查询生产工序内容列表 */
getList() {
this.loading = true;
listProcesscontent(this.queryParams).then(response => {
listProcesscontent(this.queryParams).then((response) => {
this.processcontentList = response.rows;
this.total = response.total;
this.loading = false;
@ -290,7 +456,7 @@ export default {
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
updateTime: null,
};
this.resetForm("form");
},
@ -306,22 +472,36 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.contentId)
this.single = selection.length!==1
this.multiple = !selection.length
this.ids = selection.map((item) => item.contentId);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加操作步骤";
this.selectsubsidiaryListtag = [];
this.selectBOMListtag = [];
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const contentId = row.contentId || this.ids
getProcesscontent(contentId).then(response => {
const contentId = row.contentId || this.ids;
this.selectsubsidiaryListtag = [];
this.selectBOMListtag = [];
getProcesscontent(contentId).then((response) => {
this.form = response.data;
if (this.form.material != "" && this.form.material != null) {
this.selectBOMListtag = JSON.parse(
JSON.stringify(this.form.material.split(","))
);
}
if (this.form.device != "" && this.form.device != null) {
this.selectsubsidiaryListtag = JSON.parse(
JSON.stringify(this.form.device.split(","))
);
}
this.open = true;
this.title = "修改操作步骤";
});
@ -329,16 +509,16 @@ export default {
/** 提交按钮 */
submitForm() {
// debugger
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.contentId != null) {
updateProcesscontent(this.form).then(response => {
updateProcesscontent(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addProcesscontent(this.form).then(response => {
addProcesscontent(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -350,19 +530,70 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const contentIds = row.contentId || this.ids;
this.$modal.confirm('是否确认删除操作步骤?').then(function() {
return delProcesscontent(contentIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
this.$modal
.confirm("是否确认删除操作步骤?")
.then(function () {
return delProcesscontent(contentIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('technology/pro/processcontent/export', {
...this.queryParams
}, `processcontent_${new Date().getTime()}.xlsx`)
}
}
this.download(
"technology/pro/processcontent/export",
{
...this.queryParams,
},
`processcontent_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style lang="scss" scoped>
.tagbox {
display: flex;
/* overflow: scroll; */
position: relative;
width: 100%;
// padding-left: 26px;
margin-bottom: 15px;
.tagboxlabel {
width: 109px;
text-align: right;
vertical-align: middle;
font-size: 14px;
color: black;
line-height: 40px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin-right: 15px;
}
.tag {
width: 82%;
border: 1px #dcdfe6 solid;
height: 70px;
padding: 5px 15px;
overflow-y: scroll;
.tagitem {
margin-left: 5px;
}
}
.button1 {
width: 57px;
height: 35px;
margin-left: 10px;
background: #f5f7fa;
}
}
div.tag:empty:before {
content: attr(placeholder);
color: #bbb;
}
</style>

@ -341,8 +341,8 @@
</el-col>
<el-col :span="16">
<div class="tagbox">
<div class="tagboxlabel">线体设备</div>
<div class="tag" style="">
<div class="tagboxlabel" style="font-weight: 600;color: #606266;">线体设备</div>
<div class="tag" style="" placeholder="请选择线体设备">
<el-tag
:key="index"
class="tagitem"
@ -910,4 +910,8 @@ export default {
background: #F5F7FA;
}
}
div.tag:empty:before {
content: attr(placeholder);
color: #bbb;
}
</style>

@ -26,7 +26,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="105px" align="center">
<el-form-item label="BOM物料编码" prop="itemCode">
<el-input
v-model="queryParams.itemCode"
v-model="queryParams.component"
placeholder="请输入BOM物料编码"
clearable
style="width: 240px"
@ -35,7 +35,7 @@
</el-form-item>
<el-form-item label="产品名称" prop="itemName">
<el-input
v-model="queryParams.itemName"
v-model="queryParams.componentName"
placeholder="请输入产品名称"
clearable
style="width: 240px"
@ -55,9 +55,6 @@
</el-table-column>
<!-- 序号 -->
<el-table-column type="index" width="90" align="center" :index="indexMethod" label="序号"></el-table-column>
<el-table-column label="BOM物料编码" align="center" key="itemCode" prop="bomCode" v-if="columns[0].visible" >
</el-table-column>
<el-table-column label="产品名称" align="left" key="itemName" prop="productDescZh" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="BOM物料组件编码" align="left" key="component" prop="component" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="BOM物料组件名称" align="left" key="componentName" prop="componentName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
</el-table>
@ -112,10 +109,10 @@ export default {
pageNum: 1,
pageSize: 10,
itemName: undefined,
bomCode: undefined,
itemTypeId: 0,
component: '',
//itemTypeId: 0,
itemCodeGet: '',
productDescZh : undefined,
componentName : ''
},
//
columns: [
@ -203,51 +200,15 @@ export default {
this.handleQuery();
},
// handleCurrent(row){
// if(row){
// this.selectedRows = row;
// }
// },
// handleRowDbClick(row){
// if(row){
// this.selectedRows = row;
// this.$emit('onSelected',this.selectedRows);
// this.showFlag = false;
// }
// },
//
handleBomSelectionChange(selection) {
this.ids = selection.map(item => item.bomCode);
this.ids = selection.map(item => item.component);
this.single = selection.length!==1;
this.multiple = !selection.length;
console.log("多选框",this.ids);
},
//
// handleRowChange(row) {
// debugger;
// if(row){
// this.selectedRows = row;
// }
// },
//
// confirmSelect(){
// if(this.selectedItemId ==null || this.selectedItemId==0){
// this.$notify({
// title:'',
// type:'warning',
// message: '!'
// });
// return;
// }
// this.$emit('onSelected',this.selectedRows);
// this.showFlag = false;
// }
//
submitBomForm() {
const data = this.ids;
console.log("数据",data);

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<el-row v-if="optType !='view'" :gutter="10" class="mb8">
<el-row v-if="optType != 'view'" :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
@ -8,8 +8,8 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button>
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -19,8 +19,8 @@
size="mini"
:disabled="single"
@click="handleUpdate"
>修改</el-button>
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -30,8 +30,8 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
>删除</el-button>
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -40,45 +40,99 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="recipecontentList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="recipecontentList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="顺序编号" align="center" prop="orderNum" />
<el-table-column label="步骤说明" width="300px" align="center" prop="contentText" :show-overflow-tooltip="true"/>
<el-table-column label="辅助设备" align="center" prop="device" :show-overflow-tooltip="true"/>
<el-table-column label="BOM材料" align="center" prop="material" :show-overflow-tooltip="true"/>
<el-table-column label="用量" align="center" prop="dosage" :show-overflow-tooltip="true"/>
<el-table-column label="单位" align="center" prop="unit" :show-overflow-tooltip="true"/>
<el-table-column label="安全用量" align="center" prop="safeDosage" :show-overflow-tooltip="true"/>
<el-table-column label="控制参数" align="center" prop="controlParameters" :show-overflow-tooltip="true"/>
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true"/>
<el-table-column label="操作" width="100px" v-if="optType !='view'" align="center" class-name="small-padding fixed-width">
<el-table-column
label="步骤说明"
width="300px"
align="center"
prop="contentText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="辅助设备"
align="center"
prop="device"
:show-overflow-tooltip="true"
/>
<el-table-column
label="BOM材料"
align="center"
prop="material"
:show-overflow-tooltip="true"
/>
<el-table-column
label="用量"
align="center"
prop="dosage"
:show-overflow-tooltip="true"
/>
<el-table-column
label="单位"
align="center"
prop="unit"
:show-overflow-tooltip="true"
/>
<el-table-column
label="安全用量"
align="center"
prop="safeDosage"
:show-overflow-tooltip="true"
/>
<el-table-column
label="控制参数"
align="center"
prop="controlParameters"
:show-overflow-tooltip="true"
/>
<el-table-column
label="备注"
align="center"
prop="remark"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
width="100px"
v-if="optType != 'view'"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button>
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button>
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -88,13 +142,17 @@
<!-- 添加或修改生产工序内容对话框 -->
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row >
<el-col :span="12">
<el-form-item label="顺序编号" prop="orderNum">
<el-input-number :min="1" v-model="form.orderNum" placeholder="请输入顺序编号" />
</el-form-item>
</el-col>
<!--
<el-row>
<el-col :span="12">
<el-form-item label="顺序编号" prop="orderNum">
<el-input-number
:min="1"
v-model="form.orderNum"
placeholder="请输入顺序编号"
/>
</el-form-item>
</el-col>
<!--
<el-col :span="12">
<el-form-item label="材料URL" prop="docUrl">
<el-input v-model="form.docUrl" placeholder="请输入材料URL" />
@ -102,60 +160,130 @@
</el-col>-->
</el-row>
<el-row>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="辅助设备" prop="device">
<el-input v-model="form.device" placeholder="请选择辅助设备" >
<el-button slot="append" @click="handleSelectEquipment" icon="el-icon-search"></el-button>
</el-input>
<ItemSelect ref="itemSelect" @onSelected="onItemSelectedEquipment" > </ItemSelect>
</el-form-item>
</el-col>
<el-col :span="12">
</el-col> -->
<el-col :span="24">
<div class="tagbox">
<div class="tagboxlabel" style="font-weight: 600; color: #606266">
辅助设备
</div>
<div class="tag" style="" placeholder="请选择辅助设备">
<el-tag
:key="index"
class="tagitem"
v-for="(tag, index) in selectsubsidiaryListtag"
closable
:disable-transitions="false"
@close="handleClose(tag)"
>
{{ tag }}
</el-tag>
</div>
<el-button
slot="append"
class="button1"
@click="handleSelectEquipment"
icon="el-icon-search"
></el-button>
<ItemSelect
ref="itemSelect"
@onSelected="onItemSelectedEquipment"
>
</ItemSelect>
</div>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="BOM材料" prop="material">
<el-input v-model="form.material" placeholder="请选择BOM材料" >
<el-button slot="append" @click="handleSelectBom" icon="el-icon-search"></el-button>
</el-input>
<ItemSelectBom ref="itemSelectBom" @onSelected="onItemSelectedBom" ></ItemSelectBom>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="24">
<div class="tagbox">
<div class="tagboxlabel" style="font-weight: 600; color: #606266">
BOM材料
</div>
<div class="tag" style="" placeholder="请选择BOM材料">
<el-tag
:key="index"
class="tagitem"
v-for="(tag, index) in selectBOMListtag"
closable
:disable-transitions="false"
@close="handleCloseBOM(tag)"
>
{{ tag }}
</el-tag>
</div>
<el-button
slot="append"
class="button1"
@click="handleSelectBom"
icon="el-icon-search"
></el-button>
<ItemSelectBom
ref="itemSelectBom"
@onSelected="onItemSelectedBom"
></ItemSelectBom>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用量" prop="dosage">
<el-input v-model="form.dosage" placeholder="请输入用量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="用量" prop="dosage">
<el-input v-model="form.dosage" placeholder="请输入用量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="控制参数" prop="controlParameters">
<el-input v-model="form.controlParameters" placeholder="请输入控制参数" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="安全用量" prop="safeDosage">
<el-input v-model="form.safeDosage" placeholder="安全设置" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="控制参数" prop="controlParameters">
<el-input
v-model="form.controlParameters"
placeholder="请输入控制参数"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="安全用量" prop="safeDosage">
<el-input v-model="form.safeDosage" placeholder="安全设置" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="步骤说明" prop="contentText">
<el-input v-model="form.contentText" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="步骤说明" prop="contentText">
<el-input
v-model="form.contentText"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
@ -167,22 +295,29 @@
</template>
<script>
import { listProcesscontent, getProcesscontent, delProcesscontent, addProcesscontent, updateProcesscontent } from "@/api/technology/recipecontent";
import ItemSelect from "./single.vue";
import ItemSelectBom from "./singleBom.vue";
import { Message } from 'element-ui'
import {
listProcesscontent,
getProcesscontent,
delProcesscontent,
addProcesscontent,
updateProcesscontent,
} from "@/api/technology/recipecontent";
import ItemSelect from "./single.vue";
import ItemSelectBom from "./singleBom.vue";
import { Message } from "element-ui";
export default {
name: "Processcontent",
components: {ItemSelect,ItemSelectBom},
components: { ItemSelect, ItemSelectBom },
data() {
return {
checkMaterial :null,
checkDevice :null,
checkMaterial: null,
checkDevice: null,
//
loading: true,
//
ids: [],
idsName: [],
//
single: true,
//
@ -213,14 +348,17 @@ export default {
//
rules: {
recipeId: [
{ required: true, message: "工序不能为空", trigger: "blur" }
{ required: true, message: "工序不能为空", trigger: "blur" },
],
}
},
// -listtag
selectsubsidiaryListtag: [],
selectBOMListtag: [],
};
},
props :{
recipeId: undefined,
optType: undefined
props: {
recipeId: undefined,
optType: undefined,
},
created() {
this.getList();
@ -229,7 +367,7 @@ export default {
/** 查询生产工序内容列表 */
getList() {
this.loading = true;
listProcesscontent(this.queryParams).then(response => {
listProcesscontent(this.queryParams).then((response) => {
this.recipecontentList = response.rows;
this.total = response.total;
this.loading = false;
@ -254,7 +392,7 @@ export default {
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
updateTime: null,
};
this.resetForm("form");
},
@ -270,9 +408,9 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.contentId)
this.single = selection.length!==1
this.multiple = !selection.length
this.ids = selection.map((item) => item.contentId);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
@ -283,9 +421,21 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const contentId = row.contentId || this.ids
getProcesscontent(contentId).then(response => {
const contentId = row.contentId || this.ids;
this.selectsubsidiaryListtag = [];
this.selectBOMListtag = [];
getProcesscontent(contentId).then((response) => {
this.form = response.data;
if (this.form.material != "" && this.form.material != null) {
this.selectBOMListtag = JSON.parse(
JSON.stringify(this.form.material.split(","))
);
}
if (this.form.device != "" && this.form.device != null) {
this.selectsubsidiaryListtag = JSON.parse(
JSON.stringify(this.form.device.split(","))
);
}
this.open = true;
this.title = "修改操作步骤";
});
@ -293,16 +443,16 @@ export default {
/** 提交按钮 */
submitForm() {
// debugger
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.contentId != null) {
updateProcesscontent(this.form).then(response => {
updateProcesscontent(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addProcesscontent(this.form).then(response => {
addProcesscontent(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -311,83 +461,165 @@ export default {
}
});
},
//
handleClose(tag) {
this.selectsubsidiaryListtag.splice(
this.selectsubsidiaryListtag.indexOf(tag),
1
);
this.form.device = "";
var code = [];
this.selectsubsidiaryListtag.forEach((item) => {
if (item) {
code.push(item);
}
});
console.log(code, this.selectsubsidiaryListtag);
this.form.device = code.join(",");
},
// BOM
handleCloseBOM(tag) {
this.selectBOMListtag.splice(this.selectBOMListtag.indexOf(tag), 1);
this.form.material = "";
var code = [];
this.selectBOMListtag.forEach((item) => {
if (item) {
code.push(item);
}
});
console.log(code, this.selectBOMListtag);
this.form.material = code.join(",");
},
//
onItemSelectedEquipment(obj){
if(this.form.device == null || this.form.device == ""){
console.log("device是空if获取的obj",obj);
console.log("device是空if获取的device",this.form.device);
onItemSelectedEquipment(obj) {
if (this.form.device == null || this.form.device == "") {
console.log("device是空if获取的obj", obj);
console.log("device是空if获取的device", this.form.device);
this.form.device = obj;
}else{
if(obj != undefined && obj != null && obj != ""){
const a = obj.split(',');
console.log('切割的数组',obj.split(','));
a.forEach(item => {
const b = this.form.device.split(',');
this.selectsubsidiaryListtag = obj.split(",");
} else {
if (obj != undefined && obj != null && obj != "") {
const a = obj.split(",");
console.log("切割的数组", obj.split(","));
a.forEach((item) => {
const b = this.form.device.split(",");
const size = b.length;
console.log("size",size,b[size-1])
const item1 = item+',';
console.log("打印item1",item1);
console.log("size", size, b[size - 1]);
const item1 = item + ",";
console.log("打印item1", item1);
this.checkDevice = this.form.device.search(item1) != -1;
console.log("check的值",this.checkDevice);
if(this.checkDevice == true ||b[size-1] == item){
console.log("重复添加",true);
Message.warning('您已经添加过该设备,请勿重复添加!!!');
}else if(this.checkDevice == false){
this.form.device = this.form.device +","+item;
console.log("check的值", this.checkDevice);
if (this.checkDevice == true || b[size - 1] == item) {
console.log("重复添加", true);
Message.warning("您已经添加过该设备,请勿重复添加!!!");
} else if (this.checkDevice == false) {
this.selectsubsidiaryListtag.push(item);
this.form.device = this.form.device + "," + item;
}
})
});
}
}
},
//
onItemSelectedBom(obj){
if(this.form.material == null || this.form.material == ""){
console.log("material是空if获取的obj",obj);
console.log("material是空if获取的material",this.form.material);
// BOM
onItemSelectedBom(obj) {
if (this.form.material == null || this.form.material == "") {
console.log("material是空if获取的obj", obj);
console.log("material是空if获取的material", this.form.material);
this.form.material = obj;
}else{
if(obj != undefined && obj != null && obj !=""){
const a = obj.split(',');
const len = obj.split(',').length;
console.log('切割的数组',obj.split(','));
a.forEach(item => {
this.selectBOMListtag = obj.split(",");
} else {
if (obj != undefined && obj != null && obj != "") {
const a = obj.split(",");
const len = obj.split(",").length;
console.log("切割的数组", obj.split(","));
a.forEach((item) => {
this.checkMaterial = this.form.material.search(item) != -1;
console.log("check的值",this.check);
if(this.checkMaterial == true){
console.log("重复添加",true);
Message.warning('您已经添加过该物料Bom,请勿重复添加!!!');
}else if(this.checkMaterial == false){
this.form.material = this.form.material +","+item;
console.log("check的值", this.check);
if (this.checkMaterial == true) {
console.log("重复添加", true);
Message.warning("您已经添加过该物料Bom,请勿重复添加!!!");
} else if (this.checkMaterial == false) {
this.selectBOMListtag.push(item);
this.form.material = this.form.material + "," + item;
}
})
});
}
}
},
//
handleSelectEquipment(){
handleSelectEquipment() {
this.$refs.itemSelect.showFlag = true;
},
//
handleSelectBom(){
handleSelectBom() {
this.$refs.itemSelectBom.showFlag = true;
},
/** 删除按钮操作 */
handleDelete(row) {
const contentIds = row.contentId || this.ids;
this.$modal.confirm('是否确认删除操作步骤?').then(function() {
return delProcesscontent(contentIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
this.$modal
.confirm("是否确认删除操作步骤?")
.then(function () {
return delProcesscontent(contentIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('technology/pro/recipecontent/export', {
...this.queryParams
}, `recipecontent_${new Date().getTime()}.xlsx`)
}
}
this.download(
"technology/pro/recipecontent/export",
{
...this.queryParams,
},
`recipecontent_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style lang="scss" scoped>
.tagbox {
display: flex;
/* overflow: scroll; */
position: relative;
width: 100%;
// padding-left: 26px;
margin-bottom: 15px;
.tagboxlabel {
width: 109px;
text-align: right;
vertical-align: middle;
font-size: 14px;
color: black;
line-height: 40px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin-right: 15px;
}
.tag {
width: 82%;
border: 1px #dcdfe6 solid;
height: 70px;
padding: 5px 15px;
overflow-y: scroll;
.tagitem {
margin-left: 5px;
}
}
.button1 {
width: 57px;
height: 35px;
margin-left: 10px;
background: #f5f7fa;
}
}
div.tag:empty:before {
content: attr(placeholder);
color: #bbb;
}
</style>

@ -26,7 +26,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="105px" align="center">
<el-form-item label="BOM物料编码" prop="itemCode">
<el-input
v-model="queryParams.itemCode"
v-model="queryParams.component"
placeholder="请输入BOM物料编码"
clearable
style="width: 240px"
@ -35,7 +35,7 @@
</el-form-item>
<el-form-item label="产品名称" prop="itemName">
<el-input
v-model="queryParams.itemName"
v-model="queryParams.componentName"
placeholder="请输入产品名称"
clearable
style="width: 240px"
@ -55,9 +55,6 @@
</el-table-column>
<!-- 序号 -->
<el-table-column type="index" width="90" align="center" :index="indexMethod" label="序号"></el-table-column>
<el-table-column label="BOM物料编码" align="center" key="itemCode" prop="bomCode" v-if="columns[0].visible" >
</el-table-column>
<el-table-column label="产品名称" align="left" key="itemName" prop="productDescZh" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="BOM物料组件编码" align="left" key="component" prop="component" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="BOM物料组件名称" align="left" key="componentName" prop="componentName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
</el-table>
@ -112,10 +109,10 @@ export default {
pageNum: 1,
pageSize: 10,
itemName: undefined,
bomCode: undefined,
itemTypeId: 0,
component: '',
//itemTypeId: 0,
itemCodeGet: '',
productDescZh : undefined,
componentName : ''
},
//
columns: [
@ -219,7 +216,8 @@ export default {
//
handleBomSelectionChange(selection) {
this.ids = selection.map(item => item.bomCode);
this.ids = selection.map(item => item.component);
this.idsName = selection.map(item => item.componentName);
this.single = selection.length!==1;
this.multiple = !selection.length;
console.log("多选框",this.ids);

Loading…
Cancel
Save