XiaoRuby
2023-09-08 253b9c48b02d995540b84c1831e54e6baf8a1000
src/components/view/laboratoryManagement.vue
@@ -49,19 +49,16 @@
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="父级分类">
                <el-form-item label="设备组" prop="name">
                  <el-select
                    v-model="value"
                    @blur="productSelect"
                    filterable
                    allow-create
                    placeholder="请选择父级分类"
                    v-model="ruleForm.equr"
                    placeholder="请选择设备组"
                  >
                    <el-option
                      v-for="list in parentClassificationList"
                      :key="list.index"
                      :label="list.father"
                      :value="list.father"
                      v-for="list in equip"
                      :key="list"
                      :label="list"
                      :value="list"
                    >
                    </el-option>
                  </el-select>
@@ -153,38 +150,7 @@
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="检测项目" prop="rawInsProductId" required>
                  <el-select
                    v-model="ruleForm.rawInsProductId"
                    placeholder="请选择检测项目"
                  >
                    <el-option
                      v-for="item in inspectionList"
                      :key="item.index"
                      :label="item.name"
                      :value="item.id"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="检测样品" required>
                  <el-form-item>
                    <el-input
                      placeholder="检测样品"
                      :disabled="true"
                      style="width: 206px"
                      v-model="showCodeNameModel.name"
                    >
                    </el-input>
                  </el-form-item>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
            <!-- <el-row>
              <el-col :span="12">
                <el-form-item label="规格型号">
                  <el-input
@@ -196,18 +162,8 @@
                  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="检测人">
                  <el-input
                    placeholder="检测人"
                    :disabled="true"
                    style="width: 206px"
                    v-model="showCodeNameModel.user_name"
                  >
                  </el-input>
                </el-form-item>
              </el-col>
            </el-row>
            </el-row> -->
          </el-form>
          <span slot="footer" class="dialog-footer">
            <el-button @click="dialogVisible = false">取 消</el-button>
@@ -228,14 +184,11 @@
        <el-radio-group
          class="ai-tab-change"
          style="width: 270px; margin-top: 5px"
          v-model="radio1"
          v-model="equipment"
          @input="RadioChange"
        >
          <el-radio-button size="small" label="true">
            <div>生产设备</div>
          </el-radio-button>
          <el-radio-button size="small" label="false">
            <div>检测设备</div>
          </el-radio-button>
        <el-radio-button  label="1">生产设备</el-radio-button>
        <el-radio-button  label="2">检验设备</el-radio-button>
        </el-radio-group>
        <el-input
          class="frame_input"
@@ -269,7 +222,7 @@
                  }`
                "
              ></i>
              {{ data.name }}</span
              {{ data.father }}</span
            >
            <el-button type="text" size="mini" @click.stop="remove(node, data)">
              <i class="el-icon-delete"></i>
@@ -365,9 +318,9 @@
            </el-table-column>
            <el-table-column prop="name" label="仪器设备名称" width="125">
            </el-table-column>
            <el-table-column prop="keeper" label="保管人"> </el-table-column>
            <el-table-column prop="userName" label="保管人"> </el-table-column>
            <el-table-column
              prop="end_measure"
              prop="DATE_FORMAT(end_measure, '%Y-%m-%d')"
              label="计量截至有效期"
              width="147"
            >
@@ -414,15 +367,15 @@
              :show-overflow-tooltip="true"
            >
            </el-table-column>
            <el-table-column prop="inspectProject" label="检测项目">
            <!-- <el-table-column prop="inspectProject" label="检测项目">
            </el-table-column>
            <el-table-column prop="testSample" label="检验样品">
            </el-table-column>
            <el-table-column prop="user_name" label="检测人"> </el-table-column>
            <el-table-column prop="user_name" label="检测人"> </el-table-column> -->
            <el-table-column prop="name" label="操作">
              <template v-slot="scope">
                <el-button
                  @click="handleClick(scope.$index, tableData, scope.row)"
                  @click="handleClick(scope.row)"
                  type="text"
                  size="small"
                  >删除</el-button
@@ -455,6 +408,8 @@
      staue_value: "", // 主页表格上方的状态选择
      // BOM树数据结构
      towTree: [],
      equipment: '',
      equip:'',
      ruleForm: {
        // 新增仪器表单
        code: "",
@@ -465,8 +420,14 @@
        keeper: "",
        name: "",
        rawInsProductId: "",
        type: ""
        type: "",
        treedata:{
            father:'设备组1',
      },
        equr:1,
      },
      delete:{},
      equip:[],
      rules: {
        name: [
          { required: true, message: "请输入仪器设备编号", trigger: "blur" },
@@ -505,6 +466,22 @@
    };
  },
  methods: {
    selectDevice() {//右边数据
      console.log(this.$api.url.selectDevice);
      this.$axios.get(this.$api.url.selectDevice,{
        params:{
          father:this.treedata.father,
          type:this.equip,
        }
      }).then(res =>{
        console.log(res);
        this.tableData = res.data
      }, {
            headers: {
                      "Content-Type": "application/json"
                    }
      })
    },
    // 动态控制展开与收起和切换对应图标
    isC() {
      this.isCollapse = !this.isCollapse;
@@ -517,25 +494,27 @@
      }
    },
    submitForm() {
      this.$refs.ruleForm.validate(valid => {
        if (valid) {
          this.ruleForm.father = this.value;
          this.$axios
            .post(this.$api.url.addDeviceInstrument, this.ruleForm, {
              headers: {
                "Content-Type": "application/json"
              }
            })
            .then(res => {
              this.keeperList = res.data;
              // 成功关闭新增弹出框
      // this.$refs.ruleForm.validate(valid => {
      //   if (valid) {
      //     this.ruleForm.father = this.value;
      //     this.$axios
      //       .post(this.$api.url.addDeviceInstrument, this.ruleForm, {
      //         headers: {
      //           "Content-Type": "application/json"
      //         }
      //       })
      //       .then(res => {
      //         this.keeperList = res.data;
      //         // 成功关闭新增弹出框
      //         this.dialogVisible = false;
      //       });
      //   } else {
      //     console.log("error submit!!");
      //     return false;
      //   }
      // });
      this.addApi()
              this.dialogVisible = false;
            });
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
    handleClose(done) {
      this.$confirm("确认关闭?")
@@ -549,31 +528,52 @@
      this.$axios.get(this.$api.url.addDeviceKeeper).then(res => {
        this.keeperList = res.data;
      });
      this.$axios.get(this.$api.url.addDeviceInspectDownBox).then(res => {
        this.inspectionList = res.data;
      });
      this.$axios.get(this.$api.url.addDeviceParentClassification).then(res => {
        this.parentClassificationList = res.data;
      });
      this.listgroup()
    },
    listgroup() {
        this.$axios.get(this.$api.url.listgroup).then(res =>{
            this.equip = res.data
        })
    },
    RadioChange(val){
      console.log(val);
        this.equip = val
        this.twoTreeApi()
    },
    twoTreeApi() {
      this.$axios.get(this.$api.url.towTree).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.towTree,{
        params:{
            type:this.equip
          }
        });
      }).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.towTree = res.data;
      });
    },
    tableDataApi() {
      this.$axios.get(this.$api.url.tableDeviceList).then(res => {
        this.tableData = res.data;
      });
    addApi() {
      this.$axios.post(this.$api.url.addApi,{
        code:this.ruleForm.code,
        deviceStatus:this.ruleForm.deviceStatus,
        endMeasure:this.ruleForm.endMeasure,
        factory:this.ruleForm.factory,
        father:this.ruleForm.equr,
        keeper:this.ruleForm.keeper,
        name:this.ruleForm.name,
        type:this.ruleForm.type,
      }, {headers: {"Content-Type": "application/json"}})
    },
    // tableDataApi() {
    //   this.$axios.get(this.$api.url.tableDeviceList).then(res => {
    //     this.tableData = res.data;
    //   });
    // },
    reset() {
      this.tableDataApi();
      this.radio1 = "true";
@@ -581,21 +581,9 @@
      this.staue_value = "";
    },
    handleNodeClick(data) {
      if (data.id === undefined) {
        this.$axios
          .get(this.$api.url.tableDeviceList, {
            params: { fatherName: data.name }
          })
          .then(res => {
            this.tableData = res.data;
          });
      } else if (data.id !== undefined) {
        this.$axios
          .get(this.$api.url.tableDeviceList, { params: { deviceId: data.id } })
          .then(res => {
            this.tableData = res.data;
          });
      }
      console.log(data);
        this.treedata = data
        this.selectDevice()
    },
    handlerDeptList() {
      this.towTree = [];
@@ -631,28 +619,37 @@
          });
      }
    },
    handleClick(index, datas, row) {
      this.$confirm("此操作将永久删除该设备, 是否继续?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        this.$axios
          .delete(this.$api.url.deleteDevice, { params: { deviceId: row.id } })
          .then(res => {
            this.$message({
              message: res.message,
              type: "success"
            });
            datas.splice(index, 1);
    delDeviceById() {
      this.$axios.post(this.$api.url.delDeviceById,{
          id:this.delete.id
          })
          .catch(err => {
            this.$message({
              message: err.message,
              type: "warning"
            });
          });
      });
    },
    handleClick(row) {
      console.log(row);
        this.delete = row
        this.delDeviceById()
        this.selectDevice()
      // this.$confirm("此操作将永久删除该设备, 是否继续?", "提示", {
      //   confirmButtonText: "确定",
      //   cancelButtonText: "取消",
      //   type: "warning"
      // }).then(() => {
      //   this.$axios
      //     .delete(this.$api.url.deleteDevice, { params: { deviceId: row.id } })
      //     .then(res => {
      //       this.$message({
      //         message: res.message,
      //         type: "success"
      //       });
      //       datas.splice(index, 1);
      //     })
      //     .catch(err => {
      //       this.$message({
      //         message: err.message,
      //         type: "warning"
      //       });
      //     });
      // });
    },
    remove(node, data) {
      this.$confirm("此操作将永久删除该设备, 是否继续?", "提示", {
@@ -728,6 +725,7 @@
    this.twoTreeApi();
    // 初始化调用表格数据
    this.tableDataApi();
    this.selectDevice()//右边
  },
  watch: {
    "ruleForm.rawInsProductId": {
@@ -744,17 +742,17 @@
        }
      }
    },
    dialogVisible: {
      handler: function(newVal, oldVal) {
        if (newVal) {
          // 成功清空输入内容
          this.ruleForm = {};
          this.value = "";
          this.showCodeNameModel = {};
          this.$refs.ruleForm.resetFields();
        }
      }
    },
    // dialogVisible: {
    //   handler: function(newVal, oldVal) {
    //     if (newVal) {
    //       // 成功清空输入内容
    //       this.ruleForm = {};
    //       this.value = "";
    //       this.showCodeNameModel = {};
    //       this.$refs.ruleForm.resetFields();
    //     }
    //   }
    // },
    radio1: {
      handler: function(newVal, oldVal) {
        this.towTree = [];