Fixiaobai
2023-09-24 92f198bd79e26fe1c31541432cf927403ce0e694
src/components/view/mbom.vue
@@ -18,10 +18,7 @@
                        <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-option v-for="(a, ai) in bigType" :key="ai" :value="a"></el-option>
                           </el-select>
                        </el-form-item>
                     </el-col>
@@ -52,11 +49,6 @@
               <template>
                  <el-table border :data="tableapi" height="calc(80vh - 250px)" style="width: 100%">
                     <el-table-column type="index" label="序号" width="70">
                     </el-table-column>
                     <el-table-column prop="date" label="供应商名称" width="180">
                        <template slot-scope="scope">
                           <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">
@@ -91,31 +83,19 @@
         <span>类型:</span>
         <el-select v-model="search.type" size="small" @change="TYpe" 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-option v-for="(a, ai) in bigType" :key="ai" :value="a"></el-option>
         </el-select>
         <!-- <span>原材料名称:</span>
         <el-select v-model="search.name" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
            <el-option v-for="(a, ai) in process" key="ai" :label="a.name" :value="a.id"></el-option>
         </el-select>
         <el-button size="mini"><span>重 置</span></el-button>
         <el-button size="mini" type="primary" style="background: #004EA2;"><span>查询</span></el-button> -->
      </div>
      <div class="thing">
         <div class="left">
            <el-input v-model="search.technology" @input="query" suffix-icon="el-icon-search" placeholder="请输入搜索内容"
               size="small" clearable></el-input>
            <el-tree :data="list" ref="tree" style="overflow-y: auto;" highlight-current
            <el-tree :data="list" ref="tree" style="overflow-y: auto;padding-top: 8px;" highlight-current
               :props="{children: 'children',label: 'name'}" node-key="name" default-expand-all
               @node-click="handleNodeClick">
               <div class="custom-tree-node" slot-scope="{ node, data }">
                  <span><i :class="`node_i ${data.code != '[2]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i>
                     {{data.code}} {{ data.name }}</span>
                  <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)">
                     <i class="el-icon-delete"></i>
                  </el-button> -->
               </div>
            </el-tree>
         </div>
@@ -132,19 +112,12 @@
               </el-table-column>
               <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, scope.row)">删除</span>
                  </template>
               </el-table-column>
            </el-table>
         </div>
      </div>
      <!-- <el-dialog title="编辑记录内容" :visible.sync="upDia" width="500px">
         <div class="body">
         </div>
      </el-dialog> -->
   </div>
</template>
<script>
@@ -158,8 +131,8 @@
            list: [],
            process: {},
            // handleClose:[],
            checkTreeNode:{
               id:'',
            checkTreeNode: {
               id: '',
            },
            tableData: [],
            tableapi: [{
@@ -173,16 +146,25 @@
            upData: {},
            form: {},
            dialogVisible: false,
            typeselect: 0,
            typeselect: '',
            input: '',
            craftapi: [],
            bigType: []
         }
      },
      mounted() {
         this.selectAllleft()
         this.selectAllMbom()
         this.chooseType()
      },
      methods: {
         chooseType() {
            this.$axios.get(this.$api.url.chooseType).then(res => {
               this.bigType = res.data
               this.typeselect = res.data[0]
               this.search.type = res.data[0]
               this.selectAllleft()
               this.selectAllMbom()
            })
         },
         selectDataList() {
            this.list.forEach(a => {
               a.code = '[1]'
@@ -219,24 +201,17 @@
               }
            })
         },
         addMbom(data) {
            this.$axios.post(this.$api.url.addMbom,data,{
               // params:{
               //    techTemId:this.craftapi.id,
               //    mbomModelDto2List:[{
               //       name:this.tableapi.name,
               //       qualityTraceability:this.tableapi.qualityTraceability,
               //       specifications:this.tableapi.specifications,
               //       supplier:this.tableapi.supplier,
               //       unit:this.tableapi.unit,
               //    }]
               // }
         addMbom(data, cc) {
            this.$axios.post(this.$api.url.addMbom, {
               mbomModelDto2List: data,
               techTemId: cc,
            }, {
               headers: {
                      "Content-Type": "application/json"
                    }
            }).then(res =>{
               console.log(res);
                  "Content-Type": "application/json"
               }
            }).then(res => {
               // console.log(res);
               this.$message.success('添加完成')
               this.selectAllMbom()
               this.tableapi = [{}]
@@ -263,42 +238,42 @@
         },
         //左边
         selectAllleft() {
         this.$axios.get(this.$api.url.selectAllleft,{
            params:{type:this.typeselect,
                  message:this.search.technology
            }
         }).then(res => {
            this.list = res.data;
            console.log(this.list);
            this.selectDataList()
            this.$nextTick(() => {
            this.$refs.tree.setCurrentKey(this.list[0].children[0].name) // 默认选中节点第一个
         })
            let one=this.list.filter(item=>{
            return item.children.length>0
            })[0]
            console.log(one);
            let name=one.children[0].id
            console.log(name);
            this.selectAllMbomStart(name)
            this.selectDataList();
         }, {
            headers: {
                      "Content-Type": "application/json"
                    }
            })
            this.$axios.get(this.$api.url.selectAllleft, {
               params: {
                  type: this.typeselect,
                  message: this.search.technology
               }
            }).then(res => {
               this.list = res.data;
               this.selectDataList()
               this.$nextTick(() => {
                  this.$refs.tree.setCurrentKey(this.list[0].children[0].name) // 默认选中节点第一个
               })
               let one = this.list.filter(item => {
                  return item.children.length > 0
               })[0]
               let name = one.children[0].id
               this.checkTreeNode.id = name
               this.selectAllMbomStart(name)
               this.selectDataList();
            }, {
               headers: {
                  "Content-Type": "application/json"
               }
            })
         },
         selectAllMbomStart(name) {
         this.$axios.get(this.$api.url.selectAllMbom,{
            params:{id:name}
         }).then(res => {
            this.tableData = res.data;
            console.log(this.tableData);
         }, {
            headers: {
                      "Content-Type": "application/json"
                    }
            })
            this.$axios.get(this.$api.url.selectAllMbom, {
               params: {
                  id: name
               }
            }).then(res => {
               this.tableData = res.data;
            }, {
               headers: {
                  "Content-Type": "application/json"
               }
            })
         },
         //右边
         selectAllMbom() {
@@ -308,17 +283,14 @@
               }
            }).then(res => {
               this.tableData = res.data;
               console.log(this.tableData);
            }, {
               headers: {
                  "Content-Type": "application/json"
               }
            })
         },
         handleNodeClick(data){
                this.checkTreeNode = data
            console.log(data);
            console.log(this.checkTreeNode.id);
         handleNodeClick(data) {
            this.checkTreeNode = data
            this.selectAllMbom()
         },
         handleClose(done) {
@@ -329,23 +301,23 @@
               .catch(_ => {});
         },
         //新增
            event(){
                this.dialogVisible = true
         event() {
            this.dialogVisible = true
            this.chooseTechFath()
            },
         },
         //添加行
          Addrow() {
         if (this.tableapi == undefined) {
            this.tableapi = new Array();
         }
         let obj = [];
         this.tableapi.push(obj);
         Addrow() {
            if (this.tableapi == undefined) {
               this.tableapi = new Array();
            }
            let obj = {};
            this.tableapi.push(obj);
         },
         skipshow() {
            console.log('666');
            let data = this.tableapi.at(-1)
            data.techTemId = this.search.craft
            this.addMbom(data)
            // let data = this.tableapi.at(-1)
            // console.log(this.tableapi);
            let cc = this.search.craft
            this.addMbom(this.tableapi, cc)
            this.dialogVisible = false
         },
         //delAllMbom 批量删除
@@ -369,7 +341,6 @@
               return el.id
            })
            this.delete = cc.join(',')
            console.log(this.delete);
            this.delAllMbom()
            this.$message.success('删除完成')
         },
@@ -377,10 +348,7 @@
            this.selects = val;
         },
         deleteRow(index, rows) {
            console.log(rows);
            // this.tableData.splice(index,1)
            this.upData.id = rows.id
            console.log(this.upData);
            this.material(index)
         },