王震
2023-09-08 4beefba67c39fc863b849e312b86d8f51a89005f
src/components/view/technology.vue
@@ -67,7 +67,7 @@
   .el-icon-delete {
      display: none;
      color: #004EA2;
  color: #004ea2;
   }
   .custom-tree-node:hover .el-icon-delete {
@@ -92,12 +92,17 @@
   }
   .record_content .title .el-button--default {
      color: #004EA2;
  color: #004ea2;
   }
   .record_content .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
.record_content
  .thing
  .left
  .el-tree--highlight-current
  .el-tree-node.is-current
  > .el-tree-node__content {
      background: rgba(58, 124, 253, 0.2);
      color: #004EA2;
  color: #004ea2;
   }
   .record_content .el-tree-node__content {
@@ -110,17 +115,29 @@
   <div class="record_content">
      <div class="title">
         <el-row>
            <el-col :span="12" style="line-height: 32px;">工艺路线维护</el-col>
            <el-col :span="12" style="text-align: right;">
               <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="addend">新增</el-button>
               <el-button icon="el-icon-edit-outline" @click="modify">修改</el-button>
        <el-col :span="12" style="line-height: 32px">工艺路线维护</el-col>
        <el-col :span="12" style="text-align: right">
          <el-button
            type="primary"
            icon="el-icon-plus"
            style="background: #004ea2"
            @click="addend"
            >新增</el-button
          >
          <!-- <el-button icon="el-icon-edit-outline" @click="modify">修改</el-button> -->
               <el-button icon="el-icon-delete" @click="dels">删除</el-button>
            </el-col>
         </el-row>
      </div>
      <div class="choose">
         <span>类型:</span>
         <el-select  v-model="search.type" size="small" placeholder="请选择" @change="type" style="width: 224px;margin-right: 30px;">
      <el-select
        v-model="search.type"
        size="small"
        placeholder="请选择"
        @change="type"
        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>
@@ -140,41 +157,65 @@
      </div>
      <div class="thing">
         <div class="left">
            <el-input v-model="search.technology" suffix-icon="el-icon-search"
            placeholder="请输入搜索内容" size="small"
            clearable @input="query">
        <el-input
          v-model="search.technology"
          suffix-icon="el-icon-search"
          placeholder="请输入搜索内容"
          size="small"
          clearable
          @input="query"
        >
            <!-- clearable @input="(val)=>$refs.tree.filter(val)"> -->
            </el-input>
            <el-tree 
            :data="towTree" ref="tree"
          :data="towTree"
          ref="tree"
            :props="{children: 'children',label: 'father'}" 
            node-key="id" default-expand-all
          node-key="id"
          default-expand-all
            @node-click="handleNodeClick" 
          :key="upIndex"
            >
            <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.name}}{{data.father}}</span>
                  <el-button type="text" size="mini" @click.stop="remove(node, data)">
            <span
              ><i
                :class="`node_i ${
                  data.code != '[2]'
                    ? 'el-icon-folder-opened'
                    : 'el-icon-tickets'
                }`"
              ></i>
              {{ data.name }}{{ data.father }}</span
            >
            <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)">
                     <i class="el-icon-delete"></i>
                  </el-button>
                  </el-button> -->
               </div>
            </el-tree>
         </div>
         <div class="right">
            <el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: 100%" max-height="100%"
               @selection-change="handleSelectionChange" default-expand-all>
               <el-table-column type="selection" width="50">
               </el-table-column>
        <el-table
          :data="tableData"
          border
          style="width: 100%; overflow-y: auto; min-height: 100%"
          max-height="100%"
          @selection-change="handleSelectionChange"
          default-expand-all
        >
          <el-table-column type="selection" width="50"> </el-table-column>
               <el-table-column type="index" label="序号" width="70">
               </el-table-column>
               <el-table-column prop="name" label="工艺名称">
               </el-table-column>
          <el-table-column prop="name" label="工艺名称"> </el-table-column>
               <el-table-column prop="device_group" label="设备组">
               </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>
              <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>
@@ -182,11 +223,17 @@
      </div>
      <el-dialog title="编辑记录内容" :visible.sync="upDia" width="500px">
         <div class="body">
            <el-row style="line-height: 46px;">
               <el-col :span="4" style="font-size: 14px;text-align: right;">类型:</el-col>
        <el-row style="line-height: 46px">
          <el-col :span="4" style="font-size: 14px; text-align: right"
            >类型:</el-col
          >
               <el-col :span="16" :offset="1">
                  <template>
                        <el-select v-model="edit.type" placeholder="请选择类型" style="width: 310px;">
              <el-select
                v-model="edit.type"
                placeholder="请选择"
                style="width: 310px"
              >
                     <el-option label="橡胶连接器" :value="0"></el-option>
                     <el-option label="金属连接器" :value="1"></el-option>
                     <el-option label="湿插拔电连接器" :value="2"></el-option>
@@ -195,42 +242,65 @@
                        </template>
               </el-col>
            </el-row>
            <el-row style="line-height: 46px;">
               <el-col :span="4" style="font-size: 14px;text-align: right;">工序:</el-col>
        <el-row style="line-height: 46px">
          <el-col :span="4" style="font-size: 14px; text-align: right"
            >工序:</el-col
          >
               <el-col :span="16" :offset="1">
                  <el-select v-model="edit.father"   style="width: 310px;" placeholder="请选择">
            <el-select
              v-model="edit.father"
              style="width: 310px"
              placeholder="请选择"
            >
                     <el-option
                     v-for="item in procedure"
                     :key="item"
                     :label="item"
                     :value="item">
                :value="item"
              >
                     </el-option>
                  </el-select>
               </el-col>
            </el-row>
            <el-row style="line-height: 46px;">
               <el-col :span="4" style="font-size: 14px;text-align: right;">元件:</el-col>
        <el-row style="line-height: 46px">
          <el-col :span="4" style="font-size: 14px; text-align: right"
            >元件:</el-col
          >
               <el-col :span="16" :offset="1">
                  <el-select v-model="AAA.id" style="width: 310px;" multiple placeholder="请选择">
            <el-select
              v-model="AAA.id"
              style="width: 310px"
              multiple
              placeholder="请选择"
            >
                     <el-option
                     v-for="item in element"
                     :key="item.id"
                     :label="item.name"
                     :value="item.id">
                :value="item.id"
              >
                     </el-option>
                  </el-select>
               </el-col>
            </el-row>
            <el-row style="line-height: 46px;">
               <el-col :span="4" style="font-size: 14px;text-align: right;">工艺名称:</el-col>
        <el-row style="line-height: 46px">
          <el-col :span="4" style="font-size: 14px; text-align: right"
            >工艺名称:</el-col
          >
               <el-col :span="16" :offset="1">
                  <el-input v-model="edit.name" size="small" clearable></el-input>
               </el-col>
            </el-row>
            <el-row style="line-height: 46px;">
               <el-col :span="4" style="font-size: 14px;text-align: right;">设备组:</el-col>
        <el-row style="line-height: 46px">
          <el-col :span="4" style="font-size: 14px; text-align: right"
            >设备组:</el-col
          >
               <el-col :span="16" :offset="1">
                  <el-input v-model="upData.device_group" size="small" clearable></el-input>
            <el-input
              v-model="upData.device_group"
              size="small"
              clearable
            ></el-input>
               </el-col>
            </el-row>
         </div>
@@ -246,7 +316,11 @@
            <el-form ref="form" :model="form" label-width="80px">
            <el-form-item label="类型">
               <template>
                        <el-select v-model="form.type" placeholder="请选择类型" style="width: 480px;">
              <el-select
                v-model="form.type"
                placeholder="请选择"
                style="width: 480px"
              >
                     <el-option label="橡胶连接器" :value="0"></el-option>
                     <el-option label="金属连接器" :value="1"></el-option>
                     <el-option label="湿插拔电连接器" :value="2"></el-option>
@@ -256,24 +330,34 @@
            </el-form-item>
            <el-form-item label="工序">
               <template>
                        <el-select v-model="form.father" placeholder="请选择类型" style="width: 480px;" >
              <el-select
                v-model="form.father"
                placeholder="请选择"
                style="width: 480px"
              >
                            <el-option
                            v-for="item in procedure"
                            :key="item"
                            :label="item"
                            :value="item">
                  :value="item"
                >
                            </el-option>
                        </el-select>
                        </template>
            </el-form-item>
            <el-form-item label="设备组">
               <template>
                        <el-select v-model="form.deviceGroup" placeholder="请选择类型" style="width: 480px;" >
              <el-select
                v-model="form.deviceGroup"
                placeholder="请选择"
                style="width: 480px"
              >
                            <el-option
                            v-for="item in equipment"
                            :key="item.index"
                            :label="item.father"
                            :value="item.father">
                  :value="item.father"
                >
                            </el-option>
                        </el-select>
                        </template>
@@ -282,21 +366,25 @@
            <el-col :span="10">
            <el-form-item label="元件">
               <template>
                        <el-select v-model="form.elementId" placeholder="请选择类型"  style="width: 200px;" >
                  <el-select
                    v-model="form.elementId"
                    placeholder="请选择"
                    style="width: 200px"
                  >
                            <el-option
                            v-for="item in element"
                            :key="item.value"
                            :label="item.name"
                            :value="item.id">
                      :value="item.id"
                    >
                            </el-option>
                        </el-select>
                        </template>
            </el-form-item>
         </el-col>
         <el-col :span="10" :offset="2">
            <el-form-item label="工艺名称">
               <el-input v-model="form.name" style="width: 200px;"></el-input>
                <el-input v-model="form.name" style="width: 200px"></el-input>
            </el-form-item>
         </el-col>
            </el-row>
@@ -313,7 +401,11 @@
            <el-form ref="form" :model="form" label-width="80px">
            <el-form-item label="类型">
               <template>
                        <el-select v-model="value" placeholder="请选择类型" style="width: 480px;">
              <el-select
                v-model="value"
                placeholder="请选择"
                style="width: 480px"
              >
                            <!-- <el-option
                            v-for="item in options"
                            :key="item.value"
@@ -329,12 +421,17 @@
            </el-form-item>
            <el-form-item label="工序">
               <template>
                        <el-select v-model="value" placeholder="请选择类型" style="width: 480px;">
              <el-select
                v-model="value"
                placeholder="请选择"
                style="width: 480px"
              >
                            <el-option
                            v-for="item in procedure"
                            :key="item.value"
                            :label="item.j"
                            :value="item.value">
                  :value="item.value"
                >
                            </el-option>
                        </el-select>
                        </template>
@@ -343,21 +440,25 @@
            <el-col :span="10">
            <el-form-item label="工艺名称">
               <template>
                        <el-select v-model="value" placeholder="请选择类型" style="width: 200px;">
                  <el-select
                    v-model="value"
                    placeholder="请选择"
                    style="width: 200px"
                  >
                            <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                      :value="item.value"
                    >
                            </el-option>
                        </el-select>
                        </template>
            </el-form-item>
         </el-col>
         <el-col :span="10" :offset="2">
            <el-form-item label="元件">
               <el-input v-model="form.name" style="width: 200px;"></el-input>
                <el-input v-model="form.name" style="width: 200px"></el-input>
            </el-form-item>
         </el-col>
            </el-row>
@@ -377,19 +478,18 @@
         return {
            search: {
               type: 0,
               name: null,
               technology: null
        technology: null,
            },
            options:{},
            form:{ 
               type:'',
               father:'',
               name:'',
               elementId:'',
               deviceGroup:''
        type: "",
        father: "",
        name: "",
        elementId: "",
        deviceGroup: "",
            },
            search:{
               type:'',
        type: "",
            },
            delete:[],
            treetrunk:[],
@@ -397,7 +497,7 @@
            product: [],
            procedure:[],
            checkTreeNode:{
               name:'下料'
        name: "",
            },
            towTree:[],
            value:"",
@@ -409,117 +509,138 @@
            upDia: false,
            element:[],
            equipment:[0],
            AAA:[{
               id:'',
            }],
      AAA: [
        {
          id: "",
        },
      ],
            edit:{
               deviceGroup:'',
               elementId:'',
               father:'',
               name:'',
               type:'',
        deviceGroup: "",
        elementId: "",
        father: "",
        name: "",
        type: "",
               // children:[],
            },
            upData: {
               name:'',
               deviceGroup:'',
               ele:'',
               father:'',
               type:'',
        name: "",
        deviceGroup: "",
        ele: "",
        father: "",
        type: "",
            },
            typeselect:0,
            newdata:{
               type:''
            }
         }
        type: "",
      },
      upIndex: 0,
     treeList:[]
    };
      },
      mounted() {
         this.selectAllTechTem()
         this.chooseTech()
         this.chooseDevGroup()
         this.chooseElement()
         this.selectAllTechNam()
    this.selectAllTechTem();
    this.chooseTech();
    this.chooseDevGroup();
    this.chooseElement();
    this.selectAllTechNam();
   console.log(this.treeList);
      },
      methods: {
    selectDataList() {
      this.towTree.forEach((a) => {
        a.code = "[1]";
        if (a.children != undefined) {
          a.children.forEach((b) => {
            b.code = "[2]";
          });
        }
      });
      this.upIndex++;
    },
         type(val){
            this.typeselect = val
            this.upData.type = val
      this.typeselect = val;
      this.upData.type = val;
            console.log(this.typeselect);
            this.selectAllTechTem()
      this.selectAllTechTem();
         },
         
         Neworder() {
            this.dialogVisible = false
            this.addTechTemp()
      this.dialogVisible = false;
      this.addTechTemp();
            // this.form = '';
         },
         Deleteapi() {
            this.dialogVisible = false
             this.form = '';
      this.dialogVisible = false;
      this.form = "";
         },
         addTechTemp() {
            // console.log(this.$api.url.addTechTemp);
            this.$axios.post(this.$api.url.addTechTemp,
      this.$axios
        .post(
          this.$api.url.addTechTemp,
            
            {
               deviceGroup:this.form.deviceGroup,
               elementId:this.form.elementId,
               father:this.form.father,
               name:this.form.name,
               type:this.form.type
            type: this.form.type,
             },
             {
               headers: {
                      "Content-Type": "application/json"
              "Content-Type": "application/json",
            },
                    }
            }
            ).then(res=>{
        )
        .then((res) => {
               console.log(res);
               this.selectAllTechNam()
               this.form = {}
            })
          this.selectAllTechNam();
          this.form = {};
        });
         },
         //元件
         chooseElement() {
            this.$axios.get(this.$api.url.chooseElement).then(res =>{
               this.element = res.data
      this.$axios.get(this.$api.url.chooseElement).then((res) => {
        this.element = res.data;
               console.log(this.element);
            })
      });
         },
         //设备
         chooseDevGroup() {
            this.$axios.get(this.$api.url.chooseDevGroup).then(res =>{
      this.$axios.get(this.$api.url.chooseDevGroup).then((res) => {
               this.equipment = res.data;
               // console.log(this.equipment);
            })
      });
         },
         //工序
         chooseTech() {
            this.$axios.get(this.$api.url.chooseTech).then(res =>{
      this.$axios.get(this.$api.url.chooseTech).then((res) => {
               this.procedure = res.data;
               console.log(this.procedure);
            })
      });
         },
         //批量删除
         delAllTech() {
            console.log(this.delete);
            this.$axios.post(this.$api.url.delAllTech,{
                  ids:this.delete
            })
        ids: this.delete,
      });
         },
         //删除
         delTechById() {
            console.log(this.$api.url.delTechById,this.upData.id);
            this.$axios.post(this.$api.url.delTechById,{
                  id:this.upData.id
            })
        id: this.upData.id,
      });
         },
         //编辑
         writeTechById() {
            this.$axios.post(this.$api.url.writeTechById,{
      this.$axios
        .post(
          this.$api.url.writeTechById,
          {
               params:{
               id:this.upData.id,
               technologyTemplateDto:{
@@ -527,51 +648,73 @@
                  elementId:this.edit.elementId,
                  father:this.edit.father,
                  name:this.edit.name,
                  type:this.edit.type
               }
                type: this.edit.type,
              },
               // id:this.upData.id,
            }
            }, {
            },
          },
          {
               headers: {
                      "Content-Type": "application/json"
              "Content-Type": "application/json",
            },
                    }
            }).then(res =>{
        )
        .then((res) => {
               console.log(res);
            })
        });
         },
         
         query(val){
            this.selectAllTechTem()
      this.selectAllTechTem();
         },
         selectAllTechTem() {
            console.log(this.typeselect,'222');
         this.$axios.get(this.$api.url.selectAllTechTem,{
            params:{type: this.typeselect,message:this.search.technology}
         }).then(res => {
            // let list = res.data;
            // list.forEach(i => {
            // if (i.name === undefined) {
            //    i.name = i.children[0].name;
            //    i.id = i.children[0].id;
            //    i.children = undefined;
            // }
            // });
       this.$axios
        .get(this.$api.url.selectAllTechTem, {
          params: { type: this.typeselect, message: this.search.technology },
        })
        .then((res) => {
            this.towTree = res.data;
        console.log(this.towTree);
        let one=this.towTree.filter(item=>{
         return item.children.length>0
        })[0]
        let name=one.children[0].name
        this.selectAllTechNamStart(name)
          this.selectDataList();
         });
         },
    handleNodeClick(data, node) {
      console.log(data);
      this.checkTreeNode = data;
      this.treetrunk = node;
      console.log(this.treetrunk);
      console.log(this.checkTreeNode);
      this.selectAllTechNam();
    },
         selectAllTechNam() {
         this.$axios.get(this.$api.url.selectAllTechNam,{
            params:{father:this.checkTreeNode.name}
         }).then(res => {
      this.$axios
        .get(this.$api.url.selectAllTechNam, {
          params: { father: this.checkTreeNode.name },
        })
        .then((res) => {
          this.tableData = res.data;
        });
    },
   selectAllTechNamStart(name) {
      this.$axios
        .get(this.$api.url.selectAllTechNam, {
          params: { father: name },
        })
        .then((res) => {
            this.tableData = res.data;
         });
         },
         addend(){
            this.dialogVisible = true
      this.dialogVisible = true;
         },
         modify(){
            this.modifyevent = true
      this.modifyevent = true;
         },
         filterNode(value, data) {
           if (!value) return true;
@@ -579,13 +722,15 @@
         },
         remove(node, data) {
            this.$confirm("是否删除", "警告", {
               type: "warning"
            }).then(res => {
        type: "warning",
      })
        .then((res) => {
               const parent = node.parent;
               const children = parent.data.children || parent.data;
               const index = children.findIndex(d => d.id === data.id);
          const index = children.findIndex((d) => d.id === data.id);
               children.splice(index, 1);
            }).catch(e => {})
        })
        .catch((e) => {});
         },
         // selectDataList() {
         //    this.list.forEach(a => {
@@ -598,55 +743,51 @@
         //    })
         //    this.upIndex++
         // },
         handleNodeClick(data, node) {
            this.checkTreeNode = data
            this.treetrunk = node
            console.log(this.treetrunk);
            console.log(this.checkTreeNode);
            this.selectAllTechNam()
            // if (data.code == '[2]') {
            //    console.log(data);
            // }
         },
         nodeOpen(data, node, el) {
            $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
      $($(el.$el).find(".node_i")[0]).attr(
        "class",
        "node_i el-icon-folder-opened"
      );
         },
         nodeClose(data, node, el) {
            $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
      $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder");
         },
         handleSelectionChange(val) {
            this.selects = val;
         },
         dels() {
            this.selects.forEach(a => {
      this.selects.forEach((a) => {
               for (var b = 0; b < this.tableData.length; b++) {
                  if (this.tableData[b].id == a.id) {
                     this.tableData.splice(b, 1)
                     b--
            this.tableData.splice(b, 1);
            b--;
                  }
               }
            })
            let cc = this.selects.map(el => {
               return el.id
            })
            this.delete = cc.join(',')
      });
      let cc = this.selects.map((el) => {
        return el.id;
      });
      this.delete = cc.join(",");
            console.log(this.delete);
            this.delAllTech()
            this.$message.success('删除完成')
      this.delAllTech();
      this.$message.success("删除完成");
         },
         deleteRow(index, rows) {
            this.tableData.splice(index,1)
            this.upData.id = rows.id
            this.delTechById()
      this.tableData.splice(index, 1);
      this.upData.id = rows.id;
      this.delTechById();
         },
         selecTechById() {
            this.$axios.get(this.$api.url.selecTechById,{
      this.$axios
        .get(this.$api.url.selecTechById, {
               params:{
               id:this.upData.id,   
               }
            }).then(res =>{
               this.edit = res.data[0]
               this.AAA = res.data[0].children
          },
        })
        .then((res) => {
          this.edit = res.data[0];
          this.AAA = res.data[0].children;
               console.log(this.edit);
               console.log(this.AAA);
               // this.edit.forEach(el => {
@@ -657,18 +798,16 @@
               // console.log(this.AAA.id);
                // })
               // console.log(this.edit);
            })
        });
         },
         //编辑内容
         upContent(ob) {
            this.upData = ob
            this.selecTechById()
            this.selecTechById()
      this.upData = ob;
      this.selecTechById();
      this.selecTechById();
            console.log(this.upData);
            this.upDia = true
      this.upDia = true;
         },
         submitUpData() {
            // this.tableData.forEach(a => {
@@ -677,13 +816,12 @@
            //       a.ask = this.upData.device_group
            //    }
            // })
               this.writeTechById()
      this.writeTechById();
               
            this.$message.success('修改成功')
            this.upIndex++
            this.upDia = false
         }
      }
   }
      this.$message.success("修改成功");
      this.upIndex++;
      this.upDia = false;
    },
  },
};
</script>