Fixiaobai
2023-09-24 49f3321fa839e0ff5fb4d2de75756096a6db7b92
src/components/view/standard-table/technology.vue
@@ -1,41 +1,41 @@
<template>
  <div class="standard">
    <div>
          <el-table :data="tableData" max-height="675" row-key="rowId" border
    <div style="width: 100%;height: 68vh;overflow-x: auto;">
          <el-table :data="tableData"  row-key="rowId" border height="calc(90vh - 200px)"
          @select-all="selectAll" @select="selectTr" ref="multipleTable"
          :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}"
            @selection-change="handleSelectionChange" default-expand-all
            :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
            <el-table-column type="selection" width="55">
            </el-table-column>
            <el-table-column type="index" width="60" label="序号">
            <el-table-column type="index" width="60" label="序号" :resizable="false">
            </el-table-column>
            <el-table-column prop="father" label="工序" sortable width="200px">
            <el-table-column prop="father" label="工序" width="200" :resizable="false">
              <template slot-scope="scope">
                    <el-tag v-if="scope.row.children" type="primary">01</el-tag>
                    <el-tag class="tag" v-if="scope.row.children" type="primary">01</el-tag>
                    <span style="color: black">
                      {{ scope.row.father }}
                    </span>
            </template>
            </el-table-column>
            <el-table-column sortable label="工艺名称">
            <el-table-column label="工艺名称" width="200" :resizable="false">
              <template slot-scope="scope">
                <el-tag type="success" v-if="!scope.row.children">02</el-tag>
                <el-tag class="tag" type="success" v-if="!scope.row.children">02</el-tag>
                <span style="color: black">{{ scope.row.name  }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="dg" label="设备组">
            <el-table-column prop="dg" label="设备组" width="200" :resizable="false">
              <template slot-scope="scope">
                <div class="showDiv">
                  <span>{{scope.row.dg}}</span>
                  <div @click="showDialog">选择</div>
                  <div @click="showDialog(scope.row)">选择</div>
                </div>
              </template>
            </el-table-column>
            <el-table-column prop="pq" label="生产定额(个/天)">
            <el-table-column prop="pq" label="生产效率(个/天)" :resizable="false">
              <template slot-scope="scope">
                  <el-input v-model="scope.row.pq" 
                  v-if="scope.row.pq != null"
                  v-if="scope.row.dg != null" size="small"
                  @blur="updatePq(scope.row)"
                  ></el-input>
              </template>
@@ -46,9 +46,18 @@
          title="选择设备组"
          :visible.sync="deviceGroupDialog"
          width="30%">
          <span>这是一段信息</span>
          <el-form :model="formData">
            <el-form-item prop="deviceGroup" label="设备组:"
            :rules="{required:true,message:'设备组不能为空',trigger:'change'}">
                <el-select placeholder="请选择设备组" size="small"
                v-model="formData.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>
          <span slot="footer" class="dialog-footer">
            <el-button type="primary" @click="deviceGroupDialog = false">确 定</el-button>
            <el-button type="primary" @click="confirmUpdate()">确 定</el-button>
            <el-button @click="deviceGroupDialog = false">取 消</el-button>
          </span>
        </el-dialog>
@@ -60,25 +69,48 @@
    data() {
      return {
        deviceGroupDialog:false,
        formData:{
          deviceGroup:''
        },
        row:{},
        selects: [],
        deviceList:[],
        isAllSelect:false,
      }
    },
    props:['tableData','tableType'],
    created() {
      console.log(this.tableData)
    },
    created() {},
    mounted() {
    },
    methods: {
      //工艺路线--获取设备组列表
      getDeviceList(){
        this.$axios.get(this.$api.url.chooseDevice).then(res=>{
          this.deviceList = res.data;
        }).catch(error=>{
          this.$message.error(error.message);
        })
      },
      showDialog(row){
          this.getDeviceList();
          this.formData.deviceGroup = row.dg;
          this.row = row;
          this.deviceGroupDialog = true
      },
      confirmUpdate(){
        this.$axios.post(this.$api.url.writeDevice,{
          id : this.row.id,
          deviceGroup : this.formData.deviceGroup
        }).then(res=>{
          this.$emit("updateDevice",true);
          this.$message.success(res.message);
          this.deviceGroupDialog = false
        }).catch(error=>{
        })
      },
      // 表格树全部选中配置
      // 全选/取消选操作
      selectAll(val) {
        this.isAllSelect = !this.isAllSelect;
        let data = this.tableData;
        this.toggleSelect(data, this.isAllSelect, "all");
      },
      //选择某行
        selectTr(selection, row) {
        this.$set(row, "isChecked", !row.isChecked);
@@ -108,18 +140,39 @@
          }
        }
      },
      handleSelectionChange(val) {
        this.deleteList = [];
        val.forEach((v) => {
          if (v.id !== undefined) {
            this.deleteList.push(v.id);
      //改变选中
      toggleSelection(row, flag) {
        this.$set(row, "isChecked", flag);
        this.$nextTick(() => {
          if (flag) {
            this.$refs.multipleTable.toggleRowSelection(row, flag);
          } else {
            this.$refs.multipleTable.clearSelection();
          }
        });
      },
      // 表格树全部选中配置  结束
      showDialog(){
          this.deviceGroupDialog = true
      selectAll(val) {
        this.isAllSelect = !this.isAllSelect;
        let data = this.tableData;
        this.toggleSelect(data, this.isAllSelect, "all");
      },
      handleSelectionChange(val) {
        this.deleteList = [];
        val.forEach((v) => {
          this.searchIdFun(v);
        });
        this.$emit("childData",this.deleteList);
      },
      //递归查找选中数据id
      searchIdFun(data){
        let obj = data;
        if(obj.children != undefined){
          this.searchIdFun(obj.children);
        }else{
          this.deleteList.push(obj.id);
        }
      },
      // 表格树全部选中配置  结束
      updatePq(row){
        this.$axios.post(this.$api.url.technologyWrite,{
            id : row.id,
@@ -139,6 +192,17 @@
    width: 100%;
    height: 100%;
  }
  .tag{
      line-height:24px;
      text-align:center;
      width:36px;
      height:24px;
      border-radius:12px;
    }
    .tag:nth-child(1){
      margin-left:20px;
    }
  .standard .showDiv{
    cursor: pointer;
  }
@@ -191,7 +255,7 @@
  /* .standard .el-table__body {
    height: 100%;
  } */
  .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
  /* .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
    padding-left: 23px !important;
   }
   } */
</style>