XiaoRuby
2023-09-09 c4355a18506cf0e8f63469a8a38f2e8d5e67d6f9
src/components/view/record-content.vue
@@ -67,7 +67,7 @@
.el-icon-delete {
  display: none;
  color: #004ea2;
      color: #004EA2;
}
.custom-tree-node:hover .el-icon-delete {
@@ -92,17 +92,12 @@
}
.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 {
@@ -111,35 +106,22 @@
}
</style>
<template>
  <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-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"
        @change="TYpe"
        placeholder="请选择"
        style="width: 224px;margin-right: 30px;"
      >
         <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>
@@ -155,69 +137,36 @@
    </div>
    <div class="thing">
      <div class="left">
        <el-input
          v-model="search.technology"
          suffix-icon="el-icon-search"
          placeholder="请输入搜索内容"
          size="small"
          clearable
          @input="val => $refs.tree.filter(val)"
        ></el-input>
        <el-tree
          :data="list"
          ref="tree"
          :props="{ children: 'children', label: 'name' }"
          node-key="id"
          default-expand-all
          @node-click="handleNodeClick"
          highlight-current
          @node-expand="nodeOpen"
          @node-collapse="nodeClose"
          :filter-node-method="filterNode"
          :key="upIndex"
        >
            <el-input v-model="search.technology" suffix-icon="el-icon-search" placeholder="请输入搜索内容" size="small" clearable @input="(val)=>$refs.tree.filter(val)"></el-input>
            <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'name'}" node-key="id" default-expand-all
               @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" @node-collapse="nodeClose" :filter-node-method="filterNode"
               :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.code }} {{ data.name }}</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.code}} {{ data.name }}</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="unit" label="单位"> </el-table-column>
          <el-table-column prop="note" label="备注"> </el-table-column>
               <el-table-column prop="name" label="记录内容">
               </el-table-column>
               <el-table-column prop="unit" label="单位">
               </el-table-column>
               <el-table-column prop="note" 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>
@@ -226,16 +175,10 @@
    <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-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>
@@ -245,70 +188,52 @@
          </el-col>
        </el-row>
        <el-row style="line-height: 46px;">
          <el-col :span="4" style="font-size: 14px;text-align: right;"
            >工序:</el-col
          >
               <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.techFather"
                placeholder="请选择类型"
                        <el-select v-model="edit.techFather"
                  placeholder="请选择"
                @change="workevent"
                style="width: 310px;"
              >
                  style="width: 310px;">
                <el-option
                  v-for="item in process"
                  :key="item.name"
                  :label="item.name"
                  :value="item.name"
                >
                            :value="item.name">
                </el-option>
              </el-select>
            </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-col :span="4" style="font-size: 14px;text-align: right;">工艺:</el-col>
          <el-col :span="16" :offset="1">
            <template>
              <el-select
                v-model="edit.techName"
                placeholder="请选择类型"
                style="width: 310px;"
              >
                        <el-select v-model="edit.techName" placeholder="请选择" style="width: 310px;">
                <el-option
                  v-for="item in craftapi"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                            :value="item.id">
                </el-option>
              </el-select>
            </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-col :span="4" style="font-size: 14px;text-align: right;">记录内容:</el-col>
          <el-col :span="16" :offset="1">
            <el-input v-model="upData.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-col :span="4" style="font-size: 14px;text-align: right;">单位:</el-col>
          <el-col :span="16" :offset="1">
            <el-input v-model="upData.unit" 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-col :span="4" style="font-size: 14px;text-align: right;">备注:</el-col>
          <el-col :span="16" :offset="1">
            <el-input v-model="upData.note" size="small" clearable></el-input>
          </el-col>
@@ -325,11 +250,7 @@
        <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>
@@ -339,35 +260,26 @@
          </el-form-item>
          <el-form-item label="工序">
            <template>
              <el-select
                v-model="form.work"
                        <el-select v-model="form.work"
                @change="workevent"
                placeholder="请选择类型"
                style="width: 480px;"
              >
                  placeholder="请选择" style="width: 480px;">
                <el-option
                  v-for="item in process"
                  :key="item.name"
                  :label="item.name"
                  :value="item.name"
                >
                            :value="item.name">
                </el-option>
              </el-select>
            </template>
          </el-form-item>
          <el-form-item label="工艺名称">
            <template>
              <el-select
                v-model="form.craft"
                placeholder="请选择类型"
                style="width: 480px;"
              >
                        <el-select v-model="form.craft" placeholder="请选择" style="width: 480px;">
                <el-option
                  v-for="item in craftapi"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                            :value="item.id">
                </el-option>
              </el-select>
            </template>
@@ -395,51 +307,36 @@
        <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"
                  :label="item.label"
                  :value="item.value"
                >
                            :value="item.value">
                </el-option>
              </el-select>
            </template>
          </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 options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                            :value="item.value">
                </el-option>
              </el-select>
            </template>
          </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 options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                            :value="item.value">
                </el-option>
              </el-select>
            </template>
@@ -456,9 +353,7 @@
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="modifyVisible = false"
          >确 定</el-button
        >
            <el-button type="primary" @click="modifyVisible = false">确 定</el-button>
        <el-button @click="modifyVisible = false">取 消</el-button>
      </span>
    </el-dialog>
@@ -471,20 +366,19 @@
    return {
      search: {
        type: 0,
        name: 2,
        technology: 2
               technology: null
      },
      options: [],
      value: {},
      craftapi: [],
      form: {
        type: "",
        work: "",
        craft: "",
        name: "",
        record: "",
        remarks: "",
        unit: ""
               type:'',
               work:'',
               craft:'',
               name:'',
               record:'',
               remarks:'',
               unit:'',
      },
      modifyVisible: false,
      dialogVisible: false,
@@ -498,16 +392,16 @@
      typeselect: 0,
      upDia: false,
      checkTreeNode: {
        id: 2
               id:1,
      },
      upData: {},
      edit: {
        name: "",
        note: "",
        techFather: "",
        techName: "",
        type: "",
        unit: ""
               name:'',
               note:'',
               techFather:'',
               techName:'',
               type:'',
               unit:'',
      },
      upData: {
        id: 0,
@@ -515,109 +409,96 @@
        unit: null,
        thing: null
      }
    };
         }
  },
  mounted() {
    this.selectAllleft();
    this.selectjilu();
         this.selectAllleft()
         this.selectjilu()
  },
  methods: {
    delQueById() {
      this.$axios.get(this.$api.url.delQueById);
            this.$axios.get(this.$api.url.delQueById,)
    },
    childrenClick() {},
    //新增
    workevent(val) {
      console.log(val);
      let idx = this.process.findIndex(el => el.name === val);
      this.craftapi = this.process[idx].children;
                let idx = this.process.findIndex(el => el.name === val)
                this.craftapi = this.process[idx].children
    },
    chooseTechFath() {
      this.$axios
        .get(this.$api.url.chooseTechFath, {
         this.$axios.get(this.$api.url.chooseTechFath,{
          params: { type: this.typeselect }
        })
        .then(
          res => {
            }).then(res => {
            this.process = res.data;
            console.log(this.process);
          },
          {
         }, {
            headers: {
              "Content-Type": "application/json"
            }
          }
        );
            })
    },
    addRecord() {
      this.$axios.post(
        this.$api.url.addRecord,
        {
            this.$axios.post(this.$api.url.addRecord,{
          name: this.form.record,
          note: this.form.remarks,
          techTemId: this.form.craft,
          unit: this.form.unit
        },
        {
               unit:this.form.unit,
            }
            , {
          headers: {
            "Content-Type": "application/json"
          }
        }
      );
            )
    },
    add() {
      this.dialogVisible = false;
      this.addRecord();
      this.selectjilu();
            this.dialogVisible = false
            this.addRecord()
            this.selectjilu()
      this.form = {};
    },
    //编辑   this.upData
    selecRecord() {
      this.$axios
        .get(this.$api.url.selecRecord, {
            this.$axios.get(this.$api.url.selecRecord,{
          params: {
            id: this.upData.id
          }
        })
        .then(res => {
          this.edit = res.data[0];
            }).then(res => {
               this.edit = res.data[0]
          // console.log(this.edit);
        });
            })
    },
    TYpe(val) {
      this.typeselect = val;
                this.typeselect = val
      console.log(this.typeselect);
      this.selectAllleft();
                this.selectAllleft()
    },
    //主体左
    selectAllleft() {
      this.$axios
        .get(this.$api.url.selectAllleft, {
         this.$axios.get(this.$api.url.selectAllleft,{
          params: { type: this.typeselect }
        })
        .then(res => {
         }).then(res => {
          this.list = res.data;
          console.log(this.list);
          this.selectDataList();
        });
            this.selectDataList()
         })
    },
    //selectjilu  checkTreeNode
    selectjilu() {
      this.$axios
        .get(this.$api.url.selectjilu, {
         this.$axios.get(this.$api.url.selectjilu,{
          params: { id: this.checkTreeNode.id }
        })
        .then(res => {
         }).then(res => {
          this.tableData = res.data;
          console.log(this.tableData);
        });
         })
    },
    modify() {
      this.modifyVisible = true;
                this.modifyVisible = true
    },
    addend() {
      this.dialogVisible = true;
      this.chooseTechFath();
            this.dialogVisible = true
            this.chooseTechFath()
    },
    filterNode(value, data) {
      if (!value) return true;
@@ -626,46 +507,41 @@
    remove(node, data) {
      this.$confirm("是否删除", "警告", {
        type: "warning"
      })
        .then(res => {
            }).then(res => {
          const parent = node.parent;
          const children = parent.data.children || parent.data;
          const index = children.findIndex(d => d.id === data.id);
          children.splice(index, 1);
        })
        .catch(e => {});
            }).catch(e => {})
    },
    selectDataList() {
      this.list.forEach(a => {
        a.code = "[1]";
               a.code = '[1]'
        if (a.children != undefined) {
          a.children.forEach(b => {
            b.code = "[2]";
                     b.code = '[2]'
            if (b.children != undefined) {
              b.children.forEach(c => {
                c.code = "[3]";
              });
                           c.code = '[3]'
                        })
            }
          });
                  })
        }
      });
      this.upIndex++;
            })
            this.upIndex++
    },
    handleNodeClick(data) {
      this.checkTreeNode = data;
      this.selectjilu();
      if (data.code == "[3]") {
            this.checkTreeNode = data
            this.selectjilu()
            if(data.code=='[3]'){
        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;
@@ -674,56 +550,57 @@
      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(",");
               return el.id
            })
            this.delete = cc.join(',')
      console.log(this.delete);
      this.delAllRecord();
      this.$message.success("删除完成");
            this.delAllRecord()
            this.$message.success('删除完成')
    },
    //批量删除
    delAllRecord() {
      this.$axios.post(this.$api.url.delAllRecord, {
        ids: this.delete
      });
            })
    },
    //删除
    delQueById() {
      this.$axios.post(this.$api.url.delQueById, {
        id: this.upData.id
      });
            })
    },
    deleteRow(index, rows) {
      this.tableData.splice(index, 1);
      this.upData.id = rows.id;
      this.delQueById();
            this.tableData.splice(index,1)
            this.upData.id = rows.id
            this.delQueById()
            this.selectjilu()
    },
    upContent(ob) {
      this.upData = ob;
            this.upData = ob
      console.log(this.upData);
      this.selecRecord();
      this.chooseTechFath();
      this.upDia = true;
            this.selecRecord()
            this.chooseTechFath()
            this.upDia = true
    },
    submitUpData() {
      this.tableData.forEach(a => {
        if (a.id == this.upData.id) {
          a.name = this.upData.name;
          a.unit = this.upData.unit;
          a.thing = this.upData.thing;
                  a.name = this.upData.name
                  a.unit = this.upData.unit
                  a.thing = this.upData.thing
        }
      });
      this.$message.success("修改成功");
      this.upDia = false;
            })
            this.$message.success('修改成功')
            this.upDia = false
    }
  }
};
   }
</script>