| | |
| | | <el-col :span="12" style="line-height: 32px;">标准BOM</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" |
| | | @click="bomAddModelVisible = true">新增</el-button> |
| | | @click="showBomAddModel">新增</el-button> |
| | | <el-button icon="el-icon-plus">新增版本</el-button> |
| | | <el-button @click="bomRightUp=true" icon="el-icon-edit-outline">修改</el-button> |
| | | <el-button @click="bomRightDl=true" icon="el-icon-delete">删除</el-button> |
| | |
| | | <el-input v-model="searchName" size="small" placeholder="请输入" style="width: 224px;margin-right: 24px;" |
| | | clearable></el-input> |
| | | <span>{{ tableType == 1 ? '版本:' : '版本:' }}</span> |
| | | <el-select v-model="VER" @change="verevent" style="width: 280px;" placeholder="请选择"> |
| | | <el-select size="small" v-model="VER" @change="verevent" style="width: 280px;" placeholder="请选择"> |
| | | <el-option v-for="item in version" :key="item" :label="item" :value="item"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button size="mini" @click="() => { searchName = ''; selectProductTableData() }"><span>重 置</span></el-button> |
| | | <el-button style="margin-left:10px;" size="mini" @click="() => { searchName = ''; selectProductTableData() }"><span>重 置</span></el-button> |
| | | <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectProductTableData"><span>查 |
| | | 询</span></el-button> |
| | | </div> |
| | | |
| | | <div class="contentTable" v-if="this.typeselect == 0"> |
| | | <div v-if="this.typeselect == 0"> |
| | | <technology :tableType="tableType" :tableData="tableData"></technology> |
| | | </div> |
| | | <div v-if="this.typeselect == 1"> |
| | | <target :tableType="tableType" :tableData="tableData"></target> |
| | | </div> |
| | | <div v-if="this.typeselect == 2"> |
| | | <bom :tableType="tableType" :tableData="tableData"></bom> |
| | | <material :tableType="tableType" :tableData="tableData"></material> |
| | | </div> |
| | | <div v-if="this.typeselect == 3">生产工艺</div> |
| | | <div v-if="this.typeselect == 3"> |
| | | <product :tableType="tableType" :tableData="tableData"></product> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="bom-add-model"> |
| | | <el-dialog title="BOM新增" :visible.sync="bomAddModelVisible" width="30%"> |
| | | <div> |
| | | <!-- 物料清单新增 --> |
| | | <bomClickAdd v-if="typeselect===2"/> |
| | | <el-dialog title="BOM新增" :visible.sync="bomAddModelVisible" width="35%"> |
| | | <!-- 工艺路线 --> |
| | | <div v-if="typeselect == 0">、 |
| | | <el-form :model="technologyForm" :inline="true" class="demo-form-inline" label-position="right" |
| | | :rules="boomRules" ref="boomForm" label-width="90px"> |
| | | <el-form-item label="工序:" prop="father" width="250"> |
| | | <el-select v-model="technologyForm.father" |
| | | style="width:200px;" placeholder="请输入或选择工序"> |
| | | <el-option :value="item.father" :label="item.father" v-for="(item,index) in fatherList" :key="index"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工艺名称:" prop="name" width="250"> |
| | | <el-input placeholder="请输入工艺名称" style="width:200px;" |
| | | v-model="technologyForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设备组:" prop="deviceGroup" width="250"> |
| | | <el-select placeholder="请选择设备组" |
| | | style="width:200px;" |
| | | v-model="technologyForm.deviceGroup"> |
| | | <el-option :value="item.father" |
| | | v-for="(item,index) in deviceList" :key="index" :label="item.father"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="生产定额:" prop="productionQuota" width="250"> |
| | | <el-input style="width:200px;" v-model.number="technologyForm.productionQuota" placeholder="请输入生产定额" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- 技术指标 --> |
| | | <div v-if="typeselect == 1"> |
| | | <el-form :model="targetForm" :inline="true" class="demo-form-inline" label-position="right" |
| | | label-width="80px"> |
| | | <el-form-item label="指标名称:" prop="father" width="250"> |
| | | <el-input style="width:200px;" v-model="targetForm.pname" placeholder="请输入单位"/> |
| | | </el-form-item> |
| | | <el-form-item label="单位:" prop="name" width="250"> |
| | | <el-input style="width:200px;" v-model="targetForm.unit" placeholder="请输入单位"/> |
| | | </el-form-item> |
| | | <el-form-item label="内控值:" prop="dg" width="250"> |
| | | <el-input style="width:200px;" v-model="targetForm.internal" placeholder="请输入单位"/> |
| | | </el-form-item> |
| | | <el-form-item label="标准值:" prop="unit" width="250"> |
| | | <el-input style="width:200px;" v-model="targetForm.required" placeholder="请输入单位"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- 物料清单 --> |
| | | <div v-if="typeselect == 2"> |
| | | <el-form :model="materialForm" class="demo-form-inline" label-position="right" |
| | | label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="规格型号:" prop="father" width="250"> |
| | | <el-input style="width:200px;" v-model="materialForm.pname" placeholder="请输入单位"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-form-item label="产品大类:" prop="name" width="250"> |
| | | <el-select placeholder="请选择产品大类" |
| | | style="width:240px;" v-model="materialForm.dg"> |
| | | <el-option value="1">1</el-option> |
| | | <el-option value="2">2</el-option> |
| | | <el-option value="3">3</el-option> |
| | | <el-option value="4">4</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="材料信息"></el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-button size="mini" style="text-align: right;">添加行</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-table > |
| | | <el-table-column label="材料名称"></el-table-column> |
| | | <el-table-column label="规格型号"></el-table-column> |
| | | <el-table-column label="单位"></el-table-column> |
| | | <el-table-column label="数量"></el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <!-- 生产工艺 --> |
| | | <div v-if="typeselect == 3"> |
| | | <el-form :model="technologyForm" :inline="true" class="demo-form-inline" label-position="right" |
| | | label-width="80px"> |
| | | <el-form-item label="工序:" prop="father" width="250"> |
| | | <el-select v-model="technologyForm.father" |
| | | style="width:200px;" |
| | | placeholder="请输入或选择生产定额"> |
| | | <el-option value="1">1</el-option> |
| | | <el-option value="2">2</el-option> |
| | | <el-option value="3">3</el-option> |
| | | <el-option value="4">4</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工艺名称:" prop="name" width="250"> |
| | | <el-select placeholder="请输入或选择工艺名称" |
| | | style="width:200px;" |
| | | v-model="technologyForm.name"> |
| | | <el-option value="1">1</el-option> |
| | | <el-option value="2">2</el-option> |
| | | <el-option value="3">3</el-option> |
| | | <el-option value="4">4</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="设备:" prop="dg" width="250"> |
| | | <el-select placeholder="请选择设备" |
| | | style="width:200px;" |
| | | v-model="technologyForm.dg"> |
| | | <el-option value="1">1</el-option> |
| | | <el-option value="2">2</el-option> |
| | | <el-option value="3">3</el-option> |
| | | <el-option value="4">4</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="项目:" prop="dg" width="250"> |
| | | <el-select placeholder="请选择项目" |
| | | style="width:200px;" |
| | | v-model="technologyForm.dg"> |
| | | <el-option value="1">1</el-option> |
| | | <el-option value="2">2</el-option> |
| | | <el-option value="3">3</el-option> |
| | | <el-option value="4">4</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="单位:" prop="unit" width="250"> |
| | | <el-input style="width:200px;" v-model="technologyForm.unit" placeholder="请输入单位"/> |
| | | </el-form-item> |
| | | <el-form-item label="指标:" prop="pq" width="250"> |
| | | <el-input style="width:200px;" v-model="technologyForm.pq" placeholder="请输入指标" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="bomAddModelVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="bomAddModelVisible = false">确 定</el-button> |
| | | <el-button type="primary" @click="confirmAdd('boomForm')">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 左侧点击+按钮 --> |
| | |
| | | <script> |
| | | import technology from "./standard-table/technology.vue" |
| | | import material from "./standard-table/material.vue" |
| | | import bom from "./standard-table/bom.vue" |
| | | import target from "./standard-table/target.vue" |
| | | import product from "./standard-table/product.vue" |
| | | import bomClickAdd from '@/components/view/standard-box/bomClickAdd' |
| | | export default { |
| | | components: { technology,material,bom,bomClickAdd }, |
| | | |
| | | components: { technology,material,target,product,bomClickAdd }, |
| | | data() { |
| | | return { |
| | | //工序列表 |
| | | fatherList:[], |
| | | //设备组列表 |
| | | deviceList:[], |
| | | technologyForm:{ |
| | | father:'', |
| | | name:'', |
| | | deviceGroup:'', |
| | | productionQuota:'' |
| | | }, |
| | | targetForm:{ |
| | | pname:'', |
| | | unit:'', |
| | | internal:'', |
| | | required: '' |
| | | }, |
| | | formTypeOptions:[], |
| | | materialForm:{}, |
| | | boomRules:{ |
| | | father:{required:true,message:'工序不能为空',trigger:'change'}, |
| | | name:{required:true,message:'工艺名称不能为空',trigger:'blur'}, |
| | | deviceGroup:{required:true,message:'设备组不能为空',trigger:'change'}, |
| | | productionQuota:[ |
| | | {required:true,message:'生产定额不能为空',trigger:'blur'}, |
| | | {type:'number',required:true,message:'数据类型必须是纯数字',trigger:'blur'} |
| | | ] |
| | | }, |
| | | // BOM树数据结构 |
| | | list: [], |
| | | search: null, |
| | |
| | | this.tableType=0 |
| | | this.selectMaterialTree() |
| | | this.selectVersion() |
| | | console.log(this.formTypeOptions); |
| | | }, |
| | | methods: { |
| | | confirmAdd(formName){ |
| | | this.$refs[formName].validate(valid=>{ |
| | | if(valid){ |
| | | console.log(this.technologyForm); |
| | | this.$axios.post(this.$api.url.addTechnology, |
| | | { |
| | | "specificationsId": this.returntree.id, |
| | | "technologyDto": JSON.stringify({ |
| | | deviceGroup: this.technologyForm.deviceGroup, |
| | | father: this.technologyForm.father, |
| | | name: this.technologyForm.name, |
| | | productionQuota: this.technologyForm.productionQuota, |
| | | }) |
| | | },{ |
| | | headers: { "Content-Type": "application/json" } |
| | | }).then(res=>{ |
| | | this.$message.success(res.message); |
| | | }).catch(error=>{ |
| | | this.$message.error(error.message); |
| | | }) |
| | | this.bomAddModelVisible = false; |
| | | } |
| | | }) |
| | | }, |
| | | //获取工序列表 |
| | | getFatherList(){ |
| | | this.$axios.get(this.$api.url.chooseFather,{ |
| | | params:{specificationsId : this.returntree.id} |
| | | }).then(res=>{ |
| | | this.fatherList = res.data; |
| | | }).catch(error=>{ |
| | | this.$message.error(error.message); |
| | | }) |
| | | }, |
| | | //获取设备组列表 |
| | | getDeviceList(){ |
| | | this.$axios.get(this.$api.url.chooseDevice).then(res=>{ |
| | | this.deviceList = res.data; |
| | | }).catch(error=>{ |
| | | this.$message.error(error.message); |
| | | }) |
| | | }, |
| | | showBomAddModel(){ |
| | | this.getFatherList(); |
| | | this.getDeviceList(); |
| | | this.bomAddModelVisible = true |
| | | }, |
| | | startLeftAdd(){ |
| | | |
| | | }, |
| | |
| | | TYPE(val) {//类型.数据 |
| | | // console.log(val); |
| | | this.typeselect = val |
| | | |
| | | // console.log(this.typeselect); |
| | | this.selectVersion() |
| | | }, |
| | | handleNodeClick(val) {//树的值 |
| | | // console.log(val); |
| | | this.returntree = val |
| | | }, |
| | | async selectVersion() {//版本 |
| | |
| | | }) |
| | | }, |
| | | getDefault(arr, index) { |
| | | console.log(arr); |
| | | for (const item of arr) { |
| | | if (item.children && item.children.length > 0) { |
| | | // 有子节点 |
| | |
| | | |
| | | <style scoped> |
| | | .standard {} |
| | | |
| | | .standard .contentTable{ |
| | | } |
| | | |
| | | .standard .title .el-button { |
| | | height: 32px; |