XiaoRuby
2023-09-08 253b9c48b02d995540b84c1831e54e6baf8a1000
src/components/view/mbom.vue
@@ -29,22 +29,33 @@
               </el-form-item>
            </el-col>
            <el-col :span="8">
               <el-form-item label="工序:">
               <el-select v-model="search.type" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
                  <el-option label="橡胶连接器" :value="0"></el-option>
                  <el-option label="金属连接器" :value="1"></el-option>
                  <el-option label="湿插拔电连接器" :value="2"></el-option>
                  <el-option label="分支组件" :value="3"></el-option>
               </el-select>
            </el-form-item>
               <el-form-item label="工序">
                            <template>
                                <el-select v-model="search.work"
                                placeholder="请选择类型"
                                allow-create
                                filterable
                                @change="workevent"
                                >
                                    <el-option
                                    v-for="(item,index) in process"
                                    :key="item.name"
                                    :label="item.name"
                                    :value="item.name">
                                    </el-option>
                                </el-select>
                                </template>
                        </el-form-item>
            </el-col>
            <el-col :span="8">
               <el-form-item label="工艺名称:">
               <el-select v-model="search.type" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
                  <el-option label="橡胶连接器" :value="0"></el-option>
                  <el-option label="金属连接器" :value="1"></el-option>
                  <el-option label="湿插拔电连接器" :value="2"></el-option>
                  <el-option label="分支组件" :value="3"></el-option>
               <el-select v-model="search.craft" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
                  <el-option
                     v-for="item in craftapi"
                     :key="item.id"
                     :label="item.name"
                     :value="item.id">
                     </el-option>
               </el-select>
            </el-form-item>
            </el-col>
@@ -56,7 +67,7 @@
            <template>
               <el-table
               border
               :data="tableData"
               :data="tableapi"
               height="calc(80vh - 250px)"
               style="width: 100%">
               <el-table-column type="index" label="序号" width="70">
@@ -66,28 +77,37 @@
                  label="供应商名称"
                  width="180">
                  <template slot-scope="scope">
                     <el-input v-model="scope.row.input" placeholder="请输入内容" ></el-input>
                     <el-input v-model="scope.row.supplier" placeholder="" ></el-input>
                  </template>
               </el-table-column>
               <el-table-column
                  prop=""
                  label="质量追溯号"
                  width="180">
                  <template slot-scope="scope">
                     <el-input v-model="scope.row.qualityTraceability" placeholder="" ></el-input>
                  </template>
               </el-table-column>
               <el-table-column
                  prop="name"
                  label="质量追溯号"
                  width="180">
                  label="原材料名称">
                  <template slot-scope="scope">
                     <el-input v-model="scope.row.name" placeholder="请输入内容" ></el-input>
                     <el-input v-model="scope.row.name" placeholder="" ></el-input>
                  </template>
               </el-table-column>
               <el-table-column
                  prop="address"
                  label="原材料名称">
               </el-table-column>
               <el-table-column
                  prop="address"
                  label="规格型号">
                  <template slot-scope="scope">
                     <el-input v-model="scope.row.specifications" placeholder="" ></el-input>
                  </template>
               </el-table-column>
               <el-table-column
                  prop="address"
                  prop="unit"
                  label="单位">
                  <template slot-scope="scope">
                     <el-input v-model="scope.row.unit" placeholder="" ></el-input>
                  </template>
               </el-table-column>
               </el-table>
            </template>
@@ -143,7 +163,7 @@
               <el-table-column label="操作" width="130">
                  <template slot-scope="scope">
                     <!-- <span class="table_do" @click="upContent(scope.row)">编辑&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> -->
                     <span class="table_do" @click="deleteRow(scope.$index, tableData)">删除</span>
                     <span class="table_do" @click="deleteRow(scope.$index, scope.row)">删除</span>
                  </template>
               </el-table-column>
            </el-table>
@@ -163,22 +183,90 @@
         return {
              search:{},
              list:[],
            process:[],
            process:{},
            // handleClose:[],
            checkTreeNode:[],
            checkTreeNode:{
               id:2,
            },
            tableData:[],
            search:{},
            tableapi:[{
               supplier:'',
               qualityTraceability:'',
               name:'',
               specifications:'',
               unit:'',
               }],
            search:{
               type:'',
               work:'',
               craft:'',
            },
            addsearch:{},
            upData:{},
            form:{},
            dialogVisible:false,
            typeselect:0,
                tableData: [],
            input:''
            input:'',
            craftapi:[],
            }
        },
      mounted() {
         this.selectAllleft()
         this.selectAllleft()
         this.selectAllMbom()
      },
      methods:{
          workevent(val){
                console.log(val);
                let idx = this.process.findIndex(el => el.name === val)
                this.craftapi = this.process[idx].children
            },
         //新增
         chooseTechFath() {
         this.$axios.get(this.$api.url.chooseTechFath,{
                params:{type:this.typeselect}
            }).then(res => {
            this.process = res.data;
                console.log(this.process);
         }, {
            headers: {
                      "Content-Type": "application/json"
                    }
            })
         },
         addMbom(data) {
            this.$axios.post(this.$api.url.addMbom,data
            // {
               // name:this.tableapi.name,
               // qualityTraceability:this.tableapi.qualityTraceability,
               // specifications:this.tableapi.specifications,
               // supplier:this.tableapi.supplier,
               // techTemId:this.craftapi.id,
               // unit:this.tableapi.unit,
            // }
            , {
               headers: {
                      "Content-Type": "application/json"
                    }
            }).then(res =>{
               console.log(res);
               this.$message.success('添加完成')
               this.selectAllMbom()
               this.tableapi = [{}]
            })
         },
         //删除
         material(index) {
            console.log(this.upData.id);
            this.$axios.post(this.$api.url.material,{
               id:this.upData.id
            }).then(res =>{
               this.$message.success(res.message)
               this.tableData.splice(index,1)
               // console.log(res);
            })
         },
         TYpe(val) {
            this.typeselect = val
            this.selectAllleft()
@@ -189,6 +277,7 @@
            params:{type:this.typeselect}
         }).then(res => {
            this.list = res.data;
            console.log(this.list);
         }, {
            headers: {
                      "Content-Type": "application/json"
@@ -201,6 +290,7 @@
            params:{id:this.checkTreeNode.id}
         }).then(res => {
            this.tableData = res.data;
            console.log(this.tableData);
         }, {
            headers: {
                      "Content-Type": "application/json"
@@ -221,19 +311,25 @@
         },
            event(){
                this.dialogVisible = true
            this.chooseTechFath()
            },
          Addrow() {
         if (this.tableData == undefined) {
            this.tableData = new Array();
         if (this.tableapi == undefined) {
            this.tableapi = new Array();
         }
         let obj = [];
         
         this.tableData.push(obj);
         this.tableapi.push(obj);
         },
         skipshow(){
            console.log('666');
            const data = this.tableData.at(-1)
            console.log(data);
            let data = this.tableapi.at(-1)
            // this.addMbom()
            data.techTemId = this.search.craft
            // console.log(this.search.craft);
            // console.log(data);
            this.addMbom(data)
            
            this.dialogVisible = false
         },
@@ -252,7 +348,11 @@
            this.selects = val;
         },
         deleteRow(index, rows) {
            rows.splice(index, 1);
            console.log(rows);
            // this.tableData.splice(index,1)
            this.upData.id = rows.id
            console.log(this.upData);
            this.material(index)
         },
        }