lxp
2025-03-15 538cb677c7cd304bc8a348c261c74694a06ec8e6
src/views/business/unPass/index.vue
@@ -1,9 +1,192 @@
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 80px;
  display: flex;
  align-items: center;
}
.search_thing {
  display: flex;
  align-items: center;
  height: 50px;
}
.search_label {
  width: 120px;
  font-size: 14px;
  text-align: right;
}
.search_input {
  width: calc(100% - 120px);
}
.table {
  margin-top: 10px;
  background-color: #fff;
  width: calc(100% - 40px);
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
}
</style>
<template>
  <div>不合格处理</div>
  <div class="below-standard-main">
    <div style="width: 100%; height: 100%">
      <div>
        <el-row class="title">
          <el-col :span="12" style="padding-left: 20px; text-align: left"
            >不合格管理</el-col
          >
        </el-row>
      </div>
      <div class="search">
        <div class="search_thing">
          <div class="search_label">规格型号:</div>
          <div class="search_input">
            <el-input
              size="small"
              placeholder="请输入"
              clearable
              v-model="entity.model"
              @keyup.enter.native="refreshTable()"
            ></el-input>
          </div>
        </div>
        <div class="search_thing">
          <div class="search_label">样品名称:</div>
          <div class="search_input">
            <el-input
              size="small"
              placeholder="请输入"
              clearable
              v-model="entity.sample"
              @keyup.enter.native="refreshTable()"
            ></el-input>
          </div>
        </div>
        <div class="search_thing" style="padding-left: 30px">
          <el-button size="small" @click="refresh()">重 置</el-button>
          <el-button size="small" type="primary" @click="refreshTable()"
            >查 询</el-button
          >
        </div>
      </div>
      <div class="table">
        <lims-table
          :tableData="tableData"
          :column="column"
          :tableLoading="tableLoading"
          :height="'calc(100vh - 270px)'"
          :page="page"
          @pagination="pagination"
        ></lims-table>
      </div>
    </div>
  </div>
</template>
<script>
export default {};
</script>
import limsTable from "@/components/Table/lims-table.vue";
import {
  pageInsUnPass
} from "../../../api/business/unPass";
<style></style>
import { convertToHtml } from "mammoth";
export default {
  components: {
    limsTable,
  },
  data() {
    return {
      tableData: [],
      column:[
        {
          label: '委托编号',
          prop: 'entrustCode'
        },
        {
          label: '样品名称',
          prop: 'sample'
        },
        {
          label: '规格型号',
          prop: 'model'
        },
        {
          label: '检测项',
          prop: 'inspectionItem'
        },
        {
          label: '检测子项',
          prop: 'inspectionItemSubclass'
        },
        {
          label: '检测结果',
          prop: 'lastValue'
        },
        {
          label: '处理意见',
          prop: 'handleSuggestion'
        },
        {
          label: '检验人',
          prop: 'name'
        }
      ],
      tableLoading: false,
      page: {
        current: 1,
        size: 20,
        total: 0,
      },
      entity: {
          sample: null,
          model: null,
        },
      entityCopy: {},
      upIndex: 0,
      statusList: [],
    };
  },
  mounted() {
    this.entityCopy = this.HaveJson(this.entity);
    this.refreshTable();
  },
  methods: {
    getData() {
      this.tableLoading = true;
      pageInsUnPass({
        current: this.page.current,
        limit: this.page.size,
        model: this.entity.model,
        sample: this.entity.sample,
      }).then((res) => {
        this.tableLoading = false;
        this.tableData = res.data.records;
        this.page.total = res.data.total;
      });
    },
    pagination({current,limit}) {
      this.page.current = current;
      this.page.size = limit;
      this.getData();
    },
    refreshTable() {
      this.getData();
    },
    refresh() {
      this.entity = this.HaveJson(this.entityCopy);
      this.upIndex++;
      this.$nextTick(() => {
        this.getData();
      });
    },
  },
};
</script>