yuyu
2023-08-10 85f689b65f4fb915ffe6bb2e5e65d7a88dc22865
Merge branch 'master' of http://192.168.110.209:9001/r/lims-before
已修改7个文件
已添加7个文件
1420 ■■■■ 文件已修改
README.md 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/experiment/checkTheReport.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/experiment/planAssignments.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/experiment/reportAuditing.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/rawMaterials/reportForInspection.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/urlEnum/nonConformanceReview.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/urlEnum/nonConformingFeedback.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/util/requestUtil.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/satisfactionSurveys/index.vue 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/checkTheReport/index.vue 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/nonConformanceReview/index.vue 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/nonConformingFeedback/index.vue 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/planAssignments/index.vue 307 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/reportAuditing/index.vue 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
## lims-before
lims前段
src/api/experiment/checkTheReport.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
import request from '@/utils/request'
export function selectAllReport(params) {
  return request({
    url: '/report/selectAllReport',
    method: 'get',
    params
  })
}
src/api/experiment/planAssignments.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
import request from '@/utils/request'
export function selectAllPlan(params) {
  return request({
    url: '/plan/selectAllPlan',
    method: 'get',
    params
  })
}
src/api/experiment/reportAuditing.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
import request from '@/utils/request'
export function selectAllReportCheck(params) {
  return request({
    url: '/reportAuditing/selectAllReportAuditing',
    method: 'get',
    params
  })
}
src/api/rawMaterials/reportForInspection.js
@@ -3,7 +3,7 @@
// æŸ¥è¯¢æ‰€æœ‰ç”³è¯·å•列表
export function getInspectionList(params) {
  return request({
    url: '/inspection/selectAllInspection',
    url: '/inspection/selectInspectsList',
    method: 'get',
    params
  })
src/api/urlEnum/nonConformanceReview.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
const baseurl='/nonConformanceReview'
const url={
    "getNonConformanceReview": baseurl+"/getNonConformanceReview",//获取不合格品评审
}
export default{
    url
}
src/api/urlEnum/nonConformingFeedback.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
const baseurl='/non-conforming-feedback'
const url={
    "getNonConformingFeedback": baseurl+"/getNonConformingFeedback",//获取不合格品反馈
}
export default{
    url
}
src/api/util/requestUtil.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
 import request from '@/utils/request'
export function get(path, params) {
    return request({
        url: path,
        method: 'get',
        params
    })
}
export function post(path, data) {
    return request({
        url: path,
        method: 'post',
        data
    })
}
src/views/CNAS/satisfactionSurveys/index.vue
@@ -1,5 +1,191 @@
<template>
    <div>
        æ»¡æ„åº¦è°ƒæŸ¥
    <div class="content-main survey">
      <div class="top-bar">
        <el-form ref="form" style="width: 1000px;" :inline="true">
          <!-- <el-input v-model="input" class="input-form" placeholder="请直接输入样式编号/样品名称/型号规格/进行搜索或下拉选择进行组合查询"
              @keyup.enter.native="getData" /> -->
          <el-form-item style="width: 800px;">
            <el-col style="display: flex; justify-content: space-around;" :span="8">
              <el-row>调查日期:</el-row>
              <el-row><el-input type="date" style="width: 130px;" v-model="materialCode" placeholder="请选择调查日期"></el-input></el-row>
            </el-col>
            <el-col style="display: flex; justify-content: space-around;" :span="8">
              <el-row>录入日期:</el-row>
              <el-row><el-input style="width: 130px;" v-model="materialName" placeholder="请选择录入日期"></el-input></el-row>
            </el-col>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" size="small" @click="getData()">查询</el-button>
            <el-button type="primary" size="small" plain @click="resetData()">清空</el-button>
          </el-form-item>
        </el-form>
        <el-form>
          <el-button size="40" icon="el-icon-document-add" type="primary">新增记录</el-button>
        </el-form>
      </div>
      <div class="library-table">
        <div class="table-box">
          <el-table ref="tableData" :max-height="800" :cell-style="{ textAlign: 'center' }"
            :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
            :data="tableData" style="width: 100%">
            <el-table-column type="selection" label="" min-width="5%" />
            <el-table-column  label="样品编号" min-width="10%">
              <template slot-scope="scope">
                <a style="color: #3894d1;">{{ scope.row.materialCode }}</a>
              </template>
            </el-table-column>
            <el-table-column prop="materialName" label="样品名称" min-width="10%" />
            <el-table-column label="申请单号" min-width="10%" >
              <template slot-scope="scope">
                <a style="color: #3894d1;">{{ scope.row.inspectionCode }}</a>
              </template>
            </el-table-column>
            <el-table-column prop="createTime" label="登记日期" min-width="10%" />
            <el-table-column prop="testManager" label="检验负责人" min-width="10%" />
            <el-table-column prop="specifications" label="规格型号" min-width="10%" />
            <el-table-column prop="inspectionStatus" label="结论" min-width="10%">
              <template slot-scope="scope">
                <el-tag type="danger">不合格</el-tag>
              </template>
            </el-table-column>
            <el-table-column label="操作" min-width="8%">
              <template slot-scope="scope">
                <el-button type="text" size="small">操作</el-button>
                <el-button type="text" size="small">作废</el-button>
              </template>
            </el-table-column>
          </el-table>
          <!-- åˆ†é¡µå™¨ -->
          <div>
            <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
              layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
              @current-change="handleCurrentChange" />
          </div>
        </div>
      </div>
    </div>
</template>
  </template>
  <script>
  import { get, post } from '@/api/util/requestUtil';
  import urlInfo from '../../../api/urlEnum/nonConformanceReview.js'
  export default {
    data() {
      return {
        input: '',
        tableData: [],
        page: 1,
        total: 0,
        pageSize: 10,
        materialCode: null,
        materialName: null,
        inspectionCode: null
      }
    },
    created() {
    },
    mounted() {
      this.getData()
    },
    methods: {
      handleCurrentChange() {
        this.getData();
      },
      handleSizeChange() {
      },
      exportData() {
      },
      // é‡ç½®æŒ‰é’®
      resetData() {
        this.page = 1
        this.pageSize = 10
        this.materialCode=null
        this.materialName=null
        this.inspectionCode=null
        this.getData()
      },
      async getData() {
        let param = {
          "currentPage": this.page,
          'pageNum': this.pageSize,
          "inspectionCode": this.inspectionCode,
          "materialCode": this.materialCode,
          "materialName": this.materialName
        }
        let res = await get(urlInfo.url.getNonConformanceReview, param)
        this.tableData = res.data.nonConformanceReviewList
        this.total = res.data.total
      }
    }
  }
  </script>
  <style lang="scss" scoped>
  .top-bar {
    margin: -25px -15px;
    background: #fff;
    display: flex;
    justify-content: space-between;
    padding: 5px 24px 0px 24px;
    .input-form {
      width: 800px;
    }
    .el-dropdown-link {
      cursor: pointer;
      color: #409EFF !important;
    }
    .el-icon-arrow-down {
      font-size: 12px !important;
    }
  }
  .library-table {
    background-color: #fff;
    flex: 1;
    margin: 0px -15px;
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    .table-header {
      padding: 20px;
      display: flex;
      justify-content: space-between;
      .el-form-item {
        margin-bottom: 30px !important;
      }
    }
    .table-box {
      padding: 0px 20px;
      margin-top: 20px;
      flex: 1;
      background: #fff;
      display: flex;
      flex-direction: column;
      >div:nth-child(2) {
        display: flex;
        justify-content: end;
        margin: 10px 0;
      }
    }
  }
  </style>
  <style >
  .content-main {
    .el-form .el-form-item .el-form-item__content {
      width: 100% !important;
    }
  }
  </style>
src/views/experiment/checkTheReport/index.vue
@@ -1,13 +1,255 @@
<template>
  <div>检测报告</div>
  <div class="content-main">
    <div class="top-bar">
      <el-form ref="form" :inline="true">
        <el-form-item class="sermargin">
          <el-input
            v-model="input"
            class="input-form"
            placeholder="请直接输入样式编号/报告单号/样品编号/进行搜索或下拉选择进行组合查询"
            @keyup.enter.native="getData"
          />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="getData()">查询</el-button>
          <el-button type="primary" plain @click="resetData()">重置</el-button>
        </el-form-item>
        <el-dropdown>
          <span class="el-dropdown-link">
            é«˜çº§æœç´¢<i class="el-icon-arrow-down el-icon--right"></i>
          </span>
          <el-dropdown-menu slot="dropdown">
            <el-dropdown-item>高级搜索</el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>
      </el-form>
      <el-form>
        <el-button
          class="rightBtn"
          type="primary"
          icon="el-icon-document"
          @click="exportData"
          >导出报告</el-button
        >
      </el-form>
    </div>
    <div class="library-table">
      <div class="table-header">
        <div class="search-bar">
          <el-radio-group v-model="checkStatus" @change="handleRadioChange">
            <el-radio-button>全部</el-radio-button>
            <el-radio-button label="0">待提交</el-radio-button>
            <el-radio-button label="1">待审核</el-radio-button>
            <el-radio-button label="2">已审核</el-radio-button>
          </el-radio-group>
          <el-checkbox v-model="checked" style="margin-left: 20px"
            >仅看我的</el-checkbox
          >
        </div>
      </div>
      <div class="table-box">
        <el-table
          ref="reportTable"
          :max-height="800"
          :cell-style="{ textAlign: 'center' }"
          :header-cell-style="{
            border: '0px',
            background: '#f5f7fa',
            color: '#606266',
            boxShadow: 'inset 0 1px 0 #ebeef5',
            textAlign: 'center',
          }"
          :data="reportTable"
          style="width: 100%"
        >
          <el-table-column type="selection" label="" min-width="5%" />
          <el-table-column
            prop="materialCode"
            label="样品编号"
            sortable
            min-width="10%"
          />
          <el-table-column
            prop="reportCode"
            label="报告单号"
            sortable
            min-width="10%"
          />
          <el-table-column
            prop="inspectionCode"
            label="申请单号"
            sortable
            min-width="10%"
          />
          <el-table-column prop="approver" label="审批人" min-width="8%">
            <template slot-scope="scope">
              <span>
                <el-tag type="info" icon="el-icon-user">
                  <i class="el-icon-user">{{ scope.row.approver }}</i>
                </el-tag>
              </span>
            </template>
          </el-table-column>
          <el-table-column prop="status" label="审批状态" min-width="8%">
            <template slot-scope="scope">
              <span>
                <el-tag type="info">{{
                  scope.row.status == 0
                    ? "待提交"
                    : scope.row.status == 1
                    ? "待审核"
                    : scope.row.status == 2
                    ? "代签字"
                    : "已完成"
                }}</el-tag>
              </span>
            </template></el-table-column
          >
          <el-table-column prop="conclusion" label="检验结论" min-width="8%" />
          <el-table-column prop="name" label="编制人" min-width="8%">
            <template slot-scope="scope">
              <span>
                <el-tag type="info" icon="el-icon-user">
                  <i class="el-icon-user">{{ scope.row.name }}</i>
                </el-tag>
              </span>
            </template>
          </el-table-column>
          <el-table-column label="操作" min-width="8%">
            <template slot-scope="scope">
              <el-button
                type="text"
                size="small"
                @click="handleClick(scope.row)"
                >预览</el-button
              >
              <el-button type="text" size="small">打印</el-button>
            </template>
          </el-table-column>
        </el-table>
        <!-- åˆ†é¡µå™¨ -->
        <div>
          <el-pagination
            :current-page="page"
            :page-sizes="[10, 20, 30, 40]"
            :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
          />
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { selectAllReport } from "@/api/experiment/checkTheReport";
export default {
}
  data() {
    return {
      input: "",
      checkStatus: undefined,
      reportTable: [],
      page: 1,
      total: 0,
      pageSize: 10,
      checked: true,
    };
  },
  created() {
    this.getData();
  },
  methods: {
    // çŠ¶æ€æŒ‰é’®
    handleRadioChange() {
      this.getData();
    },
    // æ¯é¡µæ¡æ•°æ”¹å˜æ—¶è§¦å‘ é€‰æ‹©ä¸€é¡µæ˜¾ç¤ºå¤šå°‘行
    handleSizeChange(val) {
      console.log(`每页 ${val} æ¡`);
      this.pageSize = val;
      this.getData();
    },
    // å½“前页改变时触发 è·³è½¬å…¶ä»–页
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
      this.page = val;
      this.getData();
    },
    // é‡ç½®æŒ‰é’®
    resetData() {
      this.input = undefined;
      this.page = 1;
      this.pageSize = 10;
      this.checkStatus = undefined;
      this.getData();
    },
    // æŸ¥è¯¢åˆ—表
    async getData() {
      const params = {
        page: this.page,
        pageSize: this.pageSize,
        name: this.input ? this.input : undefined,
        status: this.checkStatus ? this.checkStatus : undefined,
      };
      const { data } = await selectAllReport(params);
      this.reportTable = data.row;
      this.total = data.total;
    },
  },
};
</script>
<style lang="scss" scoped>
.top-bar {
  margin: -25px -15px;
  background: #fff;
  display: flex;
  justify-content: space-between;
  padding: 5px 24px 0px 24px;
  .input-form {
    width: 700px;
  }
  .el-dropdown-link {
    cursor: pointer;
    color: #409EFF;
  }
  .el-icon-arrow-down {
    font-size: 12px;
  }
}
.library-table {
  background-color: #fff;
  flex: 1;
  margin: 0px -15px;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  .table-header {
    padding: 20px;
    display: flex;
    justify-content: space-between;
    .el-form-item {
      margin-bottom: 30px !important;
    }
  }
  .table-box {
    padding: 0px 20px;
    margin-top: 0px;
    flex: 1;
    background: #fff;
    display: flex;
    flex-direction: column;
    > div:nth-child(2) {
      display: flex;
      justify-content: end;
      margin: 10px 0;
    }
  }
}
</style>
src/views/experiment/nonConformanceReview/index.vue
@@ -1,13 +1,207 @@
<template>
  <div>不合格评审</div>
  <div class="content-main">
    <div class="top-bar">
      <el-form ref="form" style="width: 1000px;" :inline="true">
        <!-- <el-input v-model="input" class="input-form" placeholder="请直接输入样式编号/样品名称/型号规格/进行搜索或下拉选择进行组合查询"
            @keyup.enter.native="getData" /> -->
        <el-form-item style="width: 800px;">
          <el-col style="display: flex; justify-content: space-around;" :span="8">
            <el-row>样式编号:</el-row>
            <el-row><el-input size="small" v-model="materialCode" placeholder="请输入样式编号"></el-input></el-row>
          </el-col>
          <el-col style="display: flex; justify-content: space-around;" :span="8">
            <el-row>样式名称:</el-row>
            <el-row><el-input size="small" v-model="materialName" placeholder="请输入样式名称"></el-input></el-row>
          </el-col>
          <el-col style="display: flex; justify-content: space-around;" :span="8">
            <el-row>申请单号:</el-row>
            <el-row><el-input size="small" v-model="inspectionCode" placeholder="请输入申请单号"></el-input></el-row>
          </el-col>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" size="small" @click="getData()">查询</el-button>
          <el-button type="primary" size="small" plain @click="resetData()">重置</el-button>
          <el-dropdown style="margin-left: 7px;">
            <span class="el-dropdown-link">
              é«˜çº§æœç´¢<i class="el-icon-arrow-down el-icon--right"></i>
            </span>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item>黄金糕</el-dropdown-item>
              <el-dropdown-item>狮子头</el-dropdown-item>
              <el-dropdown-item>螺蛳粉</el-dropdown-item>
              <el-dropdown-item disabled>双皮奶</el-dropdown-item>
              <el-dropdown-item divided>蚵仔煎</el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
        </el-form-item>
      </el-form>
      <el-form>
        <el-button size="40" type="primary">批量提交</el-button>
      </el-form>
    </div>
    <div class="library-table">
      <div class="table-box">
        <el-table ref="tableData" :max-height="800" :cell-style="{ textAlign: 'center' }"
          :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
          :data="tableData" style="width: 100%">
          <el-table-column type="selection" label="" min-width="5%" />
          <el-table-column  label="样品编号" min-width="10%">
            <template slot-scope="scope">
              <a style="color: #3894d1;">{{ scope.row.materialCode }}</a>
            </template>
          </el-table-column>
          <el-table-column prop="materialName" label="样品名称" min-width="10%" />
          <el-table-column label="申请单号" min-width="10%" >
            <template slot-scope="scope">
              <a style="color: #3894d1;">{{ scope.row.inspectionCode }}</a>
            </template>
          </el-table-column>
          <el-table-column prop="createTime" label="登记日期" min-width="10%" />
          <el-table-column prop="testManager" label="检验负责人" min-width="10%" />
          <el-table-column prop="specifications" label="规格型号" min-width="10%" />
          <el-table-column prop="inspectionStatus" label="结论" min-width="10%">
            <template slot-scope="scope">
              <el-tag type="danger">不合格</el-tag>
            </template>
          </el-table-column>
          <el-table-column label="操作" min-width="8%">
            <template slot-scope="scope">
              <el-button type="text" size="small">提交</el-button>
              <el-button type="text" size="small">作废</el-button>
            </template>
          </el-table-column>
        </el-table>
        <!-- åˆ†é¡µå™¨ -->
        <div>
          <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
            @current-change="handleCurrentChange" />
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { get, post } from '@/api/util/requestUtil';
import urlInfo from '../../../api/urlEnum/nonConformingFeedback.js'
export default {
  data() {
    return {
      input: '',
      tableData: [],
      page: 1,
      total: 0,
      pageSize: 10,
      materialCode: null,
      materialName: null,
      inspectionCode: null
    }
  },
  created() {
  },
  mounted() {
    this.getData()
  },
  methods: {
    handleCurrentChange() {
        this.getData();
    },
    handleSizeChange() {
    },
    exportData() {
    },
    // é‡ç½®æŒ‰é’®
    resetData() {
      this.page = 1
      this.pageSize = 10
      this.materialCode=null
      this.materialName=null
      this.inspectionCode=null
      this.getData()
    },
    async getData() {
      let param = {
        "currentPage": this.page,
        'pageNum': this.pageSize,
        "inspectionCode": this.inspectionCode,
        "materialCode": this.materialCode,
        "materialName": this.materialName
      }
      let res = await get(urlInfo.url.getNonConformingFeedback, param)
      this.tableData = res.data.nonConformingFeedbackList
      this.total = res.data.total
    }
  }
}
</script>
<style lang="scss" scoped>
.top-bar {
  margin: -25px -15px;
  background: #fff;
  display: flex;
  justify-content: space-between;
  padding: 5px 24px 0px 24px;
  .input-form {
    width: 800px;
  }
  .el-dropdown-link {
    cursor: pointer;
    color: #409EFF !important;
  }
  .el-icon-arrow-down {
    font-size: 12px !important;
  }
}
.library-table {
  background-color: #fff;
  flex: 1;
  margin: 0px -15px;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  .table-header {
    padding: 20px;
    display: flex;
    justify-content: space-between;
    .el-form-item {
      margin-bottom: 30px !important;
    }
  }
  .table-box {
    padding: 0px 20px;
    margin-top: 20px;
    flex: 1;
    background: #fff;
    display: flex;
    flex-direction: column;
    >div:nth-child(2) {
      display: flex;
      justify-content: end;
      margin: 10px 0;
    }
  }
}
</style>
<style >
.content-main {
  .el-form .el-form-item .el-form-item__content {
    width: 100% !important;
  }
}
</style>
src/views/experiment/nonConformingFeedback/index.vue
@@ -1,13 +1,207 @@
<template>
  <div>不合格反馈</div>
  <div class="content-main">
    <div class="top-bar">
      <el-form ref="form" style="width: 1000px;" :inline="true">
        <!-- <el-input v-model="input" class="input-form" placeholder="请直接输入样式编号/样品名称/型号规格/进行搜索或下拉选择进行组合查询"
            @keyup.enter.native="getData" /> -->
        <el-form-item style="width: 800px;">
          <el-col style="display: flex; justify-content: space-around;" :span="8">
            <el-row>样式编号:</el-row>
            <el-row><el-input size="small" v-model="materialCode" placeholder="请输入样式编号"></el-input></el-row>
          </el-col>
          <el-col style="display: flex; justify-content: space-around;" :span="8">
            <el-row>样式名称:</el-row>
            <el-row><el-input size="small" v-model="materialName" placeholder="请输入样式名称"></el-input></el-row>
          </el-col>
          <el-col style="display: flex; justify-content: space-around;" :span="8">
            <el-row>申请单号:</el-row>
            <el-row><el-input size="small" v-model="inspectionCode" placeholder="请输入申请单号"></el-input></el-row>
          </el-col>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" size="small" @click="getData()">查询</el-button>
          <el-button type="primary" size="small" plain @click="resetData()">重置</el-button>
          <el-dropdown style="margin-left: 7px;">
            <span class="el-dropdown-link">
              é«˜çº§æœç´¢<i class="el-icon-arrow-down el-icon--right"></i>
            </span>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item>黄金糕</el-dropdown-item>
              <el-dropdown-item>狮子头</el-dropdown-item>
              <el-dropdown-item>螺蛳粉</el-dropdown-item>
              <el-dropdown-item disabled>双皮奶</el-dropdown-item>
              <el-dropdown-item divided>蚵仔煎</el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
        </el-form-item>
      </el-form>
      <el-form>
        <el-button size="40" type="primary">批量提交</el-button>
      </el-form>
    </div>
    <div class="library-table">
      <div class="table-box">
        <el-table ref="tableData" :max-height="800" :cell-style="{ textAlign: 'center' }"
          :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
          :data="tableData" style="width: 100%">
          <el-table-column type="selection" label="" min-width="5%" />
          <el-table-column  label="样品编号" min-width="10%">
            <template slot-scope="scope">
              <a style="color: #3894d1;">{{ scope.row.materialCode }}</a>
            </template>
          </el-table-column>
          <el-table-column prop="materialName" label="样品名称" min-width="10%" />
          <el-table-column label="申请单号" min-width="10%" >
            <template slot-scope="scope">
              <a style="color: #3894d1;">{{ scope.row.inspectionCode }}</a>
            </template>
          </el-table-column>
          <el-table-column prop="createTime" label="登记日期" min-width="10%" />
          <el-table-column prop="testManager" label="检验负责人" min-width="10%" />
          <el-table-column prop="specifications" label="规格型号" min-width="10%" />
          <el-table-column prop="inspectionStatus" label="结论" min-width="10%">
            <template slot-scope="scope">
              <el-tag type="danger">不合格</el-tag>
            </template>
          </el-table-column>
          <el-table-column label="操作" min-width="8%">
            <template slot-scope="scope">
              <el-button type="text" size="small">操作</el-button>
              <el-button type="text" size="small">作废</el-button>
            </template>
          </el-table-column>
        </el-table>
        <!-- åˆ†é¡µå™¨ -->
        <div>
          <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
            @current-change="handleCurrentChange" />
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { get, post } from '@/api/util/requestUtil';
import urlInfo from '../../../api/urlEnum/nonConformanceReview.js'
export default {
  data() {
    return {
      input: '',
      tableData: [],
      page: 1,
      total: 0,
      pageSize: 10,
      materialCode: null,
      materialName: null,
      inspectionCode: null
    }
  },
  created() {
  },
  mounted() {
    this.getData()
  },
  methods: {
    handleCurrentChange() {
      this.getData();
    },
    handleSizeChange() {
    },
    exportData() {
    },
    // é‡ç½®æŒ‰é’®
    resetData() {
      this.page = 1
      this.pageSize = 10
      this.materialCode=null
      this.materialName=null
      this.inspectionCode=null
      this.getData()
    },
    async getData() {
      let param = {
        "currentPage": this.page,
        'pageNum': this.pageSize,
        "inspectionCode": this.inspectionCode,
        "materialCode": this.materialCode,
        "materialName": this.materialName
      }
      let res = await get(urlInfo.url.getNonConformanceReview, param)
      this.tableData = res.data.nonConformanceReviewList
      this.total = res.data.total
    }
  }
}
</script>
<style lang="scss" scoped>
.top-bar {
  margin: -25px -15px;
  background: #fff;
  display: flex;
  justify-content: space-between;
  padding: 5px 24px 0px 24px;
  .input-form {
    width: 800px;
  }
  .el-dropdown-link {
    cursor: pointer;
    color: #409EFF !important;
  }
  .el-icon-arrow-down {
    font-size: 12px !important;
  }
}
.library-table {
  background-color: #fff;
  flex: 1;
  margin: 0px -15px;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  .table-header {
    padding: 20px;
    display: flex;
    justify-content: space-between;
    .el-form-item {
      margin-bottom: 30px !important;
    }
  }
  .table-box {
    padding: 0px 20px;
    margin-top: 20px;
    flex: 1;
    background: #fff;
    display: flex;
    flex-direction: column;
    >div:nth-child(2) {
      display: flex;
      justify-content: end;
      margin: 10px 0;
    }
  }
}
</style>
<style >
.content-main {
  .el-form .el-form-item .el-form-item__content {
    width: 100% !important;
  }
}
</style>
src/views/experiment/planAssignments/index.vue
@@ -3,12 +3,17 @@
    <div class="top-bar">
      <el-form ref="form" :inline="true" :model="searchData">
        <el-form-item label="设备名称:" class="sermargin">
          <el-select v-model="searchData.devicename" placeholder="全部" style="width: 100px;">
          <el-select
            v-model="searchData.devicename"
            placeholder="全部"
            style="width: 100px"
          >
            <el-option
              v-for="item in options"
              v-for="item in options1"
              :key="item.value"
              :label="item.label"
              :value="item.value">
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
@@ -18,131 +23,132 @@
            type="daterange"
            range-separator="~"
            start-placeholder="开始日期"
            end-placeholder="结束日期">
            end-placeholder="结束日期"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="检验人:" style="margin-right: 20px;">
          <el-select v-model="searchData.person" placeholder="全部" style="width: 80px;margin-right: 100px;">
        <el-form-item label="检验人:" style="margin-right: 20px">
          <el-select
            v-model="searchData.person"
            placeholder="全部"
            style="width: 80px; margin-right: 100px"
          >
            <el-option
              v-for="item in options"
              v-for="item in options2"
              :key="item.value"
              :label="item.label"
              :value="item.value">
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" plain style="margin-right: 10px;">重置</el-button>
          <el-button type="primary" plain style="margin-right: 10px"
            >重置</el-button
          >
          <el-button type="primary">查询</el-button>
        </el-form-item>
        </el-form>
      </el-form>
    </div>
    <div class="table-box">
      <div class="formwrapper">
        <el-table
          ref="planTable"
          :max-height="800"
          :cell-style="{textAlign: 'center'}"
          :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
          :cell-style="{ textAlign: 'center' }"
          :header-cell-style="{
            border: '0px',
            background: '#f5f7fa',
            color: '#606266',
            boxShadow: 'inset 0 1px 0 #ebeef5',
            textAlign: 'center',
          }"
          :data="planTable"
          style="width: 100%"
        >
        <el-table-column
          type="index"
          label="序号"
          min-width="10%"
        />
        <el-table-column
          prop="device"
          label="检验设备"
          min-width="8%"
        />
        <el-table-column
          prop="samplename"
          label="样品名称"
          min-width="8%"
        />
        <el-table-column
          prop="sampleid"
          label="样品编号"
          min-width="10%"
        />
        <el-table-column
          prop="modelandspecification"
          label="规格型号"
          min-width="12%"
        />
        <el-table-column
          prop="unit"
          label="单位"
          min-width="5%"
        />
        <el-table-column
          prop="amount"
          label="数量"
          min-width="5%"
        />
        <el-table-column
          prop="checkproject"
          label="检验项目"
          min-width="12%"
        />
        <el-table-column
          prop="checker"
          label="检验人"
          min-width="6%"
        />
        <el-table-column
          prop="duration"
          label="计划工期/h"
          min-width="8%"
        />
        <el-table-column
          prop="progress"
          label="检验进度"
          min-width="12%">
          <template slot-scope="scope">
            <div v-if="scope.row.progress === 100" style="display: flex;">
              <el-progress :text-inside="true" :stroke-width="15" :percentage="scope.row.progress" status="success" style="width: 70%;"></el-progress>
              <span style="color: rgb(103, 194, 58);">已完成</span>
            </div>
            <div v-if="scope.row.progress <100 && scope.row.progress >0" style="display: flex;">
              <el-progress :text-inside="true" :stroke-width="15" :percentage="scope.row.progress" status="warning" style="width: 70%;"></el-progress>
              <span style="color: rgb(230, 162, 60);">检验中</span>
            </div>
            <div v-if="scope.row.progress === 0" style="display: flex;">
              <el-progress :text-inside="true" :stroke-width="15" :percentage="scope.row.progress" style="width: 70%;"></el-progress>
              <span style="color: gray">未分配</span>
            </div>
            <div v-else>
            </div>
          </template>
        </el-table-column>
        <el-table-column
          prop="starttime"
          label="计划开始时间"
          min-width="10%"
        />
        <el-table-column
          prop="finishtime"
          label="计划结束时间"
          min-width="10%"
        />
        <el-table-column
            label="操作"
            min-width="8%"
        >
          <template slot-scope="scope">
            <el-button type="text" size="small" @click="handleClick(scope.row)">查看</el-button>
          </template>
        </el-table-column>
          <el-table-column type="index" label="序号" min-width="10%" />
          <el-table-column prop="device" label="检验设备" min-width="8%" />
          <el-table-column prop="samplename" label="样品名称" min-width="8%" />
          <el-table-column prop="sampleid" label="样品编号" min-width="10%" />
          <el-table-column
            prop="modelandspecification"
            label="规格型号"
            min-width="12%"
          />
          <el-table-column prop="unit" label="单位" min-width="5%" />
          <el-table-column prop="amount" label="数量" min-width="5%" />
          <el-table-column
            prop="checkproject"
            label="检验项目"
            min-width="12%"
          />
          <el-table-column prop="checker" label="检验人" min-width="6%" />
          <el-table-column prop="duration" label="计划工期/h" min-width="8%" />
          <el-table-column prop="progress" label="检验进度" min-width="12%">
            <template slot-scope="scope">
              <div v-if="scope.row.progress === 100" style="display: flex">
                <el-progress
                  :text-inside="true"
                  :stroke-width="15"
                  :percentage="scope.row.progress"
                  status="success"
                  style="width: 70%"
                ></el-progress>
                <span style="color: rgb(103, 194, 58)">已完成</span>
              </div>
              <div
                v-if="scope.row.progress < 100 && scope.row.progress > 0"
                style="display: flex"
              >
                <el-progress
                  :text-inside="true"
                  :stroke-width="15"
                  :percentage="scope.row.progress"
                  status="warning"
                  style="width: 70%"
                ></el-progress>
                <span style="color: rgb(230, 162, 60)">检验中</span>
              </div>
              <div v-if="scope.row.progress === 0" style="display: flex">
                <el-progress
                  :text-inside="true"
                  :stroke-width="15"
                  :percentage="scope.row.progress"
                  style="width: 70%"
                ></el-progress>
                <span style="color: gray">未分配</span>
              </div>
              <div v-else></div>
            </template>
          </el-table-column>
          <el-table-column
            prop="starttime"
            label="计划开始时间"
            min-width="10%"
          />
          <el-table-column
            prop="finishtime"
            label="计划结束时间"
            min-width="10%"
          />
          <el-table-column label="操作" min-width="8%">
            <template slot-scope="scope">
              <el-button
                type="text"
                size="small"
                @click="handleClick(scope.row)"
                >查看</el-button
              >
            </template>
          </el-table-column>
        </el-table>
      </div>
      </div>
    </div>
  </div>
</template>
<script>
import { selectAllPlan } from "@/api/experiment/planAssignments";
export default {
  data() {
    return {
@@ -151,71 +157,36 @@
        time: "",
        person: "",
      },
      options: [
        {
          value: "选项1",
          label: "选项1",
        },
        {
          value: "选项2",
          label: "选项2",
          disabled: true,
        },
      ],
      planTable: [{
        device: '拉力机',
        samplename: '镀锌钢绞线',
        sampleid: 'SN1027401-12937',
        modelandspecification: 'JLHA/G1A-185/30-14/7',
        unit: 'm',
        amount: '200',
        checkproject: '抗压强度(绞前)',
        checker: '黄小明',
        duration: '2',
        progress: 100,
        starttime: '2023-08-04 8:00',
        finishtime: '2023-08-04 10:00',
      },{
        device: '拉力机',
        samplename: '镀锌钢绞线',
        sampleid: 'SN1027401-12937',
        modelandspecification: 'JLHA/G1A-185/30-14/7',
        unit: 'm',
        amount: '200',
        checkproject: '抗压强度(绞前)',
        checker: '黄小明',
        duration: '2',
        progress: 60,
        starttime: '2023-08-04 8:00',
        finishtime: '2023-08-04 10:00',
      },{
        device: '拉力机',
        samplename: '镀锌钢绞线',
        sampleid: 'SN1027401-12937',
        modelandspecification: 'JLHA/G1A-185/30-14/7',
        unit: 'm',
        amount: '200',
        checkproject: '抗压强度(绞前)',
        checker: '黄小明',
        duration: '2',
        progress: 30,
        starttime: '2023-08-04 8:00',
        finishtime: '2023-08-04 10:00',
      },{
        device: '拉力机',
        samplename: '镀锌钢绞线',
        sampleid: 'SN1027401-12937',
        modelandspecification: 'JLHA/G1A-185/30-14/7',
        unit: 'm',
        amount: '200',
        checkproject: '抗压强度(绞前)',
        checker: '黄小明',
        duration: '2',
        progress: 0,
        starttime: '2023-08-04 8:00',
        finishtime: '2023-08-04 10:00',
      }]
      options1: [],
      options2: [],
      planTable: [],
    };
  },
  created() {
    this.getData();
  },
  methods: {
    // æŸ¥è¯¢åˆ—表
    async getData() {
      const params = {};
      const { data } = await selectAllPlan(params);
      this.planTable = data;
      this.planTable.forEach((res) => {
        let o1 = {
          value: res.device,
          label: res.device,
        };
        this.options1.push(o1);
        if(res.userId == undefined) {
        }
      });
      let d=this.options1.filter((val,index,self)=>{
        return self.indexOf(val)==index;
      })
      console.log(d);
    },
  },
};
</script>
@@ -236,14 +207,14 @@
    margin-right: 60px;
  }
}
.table-box{
.table-box {
  background-color: #fff;
  margin: 0px -15px;
  margin-top: 35px;
  display: flex;
  flex-direction: column;
  height: 78vh;
  .formwrapper{
  .formwrapper {
    padding: 0px 20px;
    margin-top: 0px;
    flex: 1;
src/views/experiment/reportAuditing/index.vue
@@ -1,13 +1,217 @@
<template>
  <div>报告审核</div>
  <div class="content-main">
    <div class="top-bar">
      <el-form ref="form" :inline="true">
        <el-form-item class="sermargin">
          <el-input
            v-model="input"
            class="input-form"
            placeholder="请直接输入样式编号/报告编号/样品名称/进行搜索或下拉选择进行组合查询"
            @keyup.enter.native="getData"
          />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="getData()">查询</el-button>
          <el-button type="primary" plain @click="resetData()">重置</el-button>
        </el-form-item>
        <el-dropdown>
          <span class="el-dropdown-link">
            é«˜çº§æœç´¢<i class="el-icon-arrow-down el-icon--right"></i>
          </span>
          <el-dropdown-menu slot="dropdown">
            <el-dropdown-item>高级搜索</el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>
      </el-form>
      <el-form>
        <el-button class="rightBtn" type="primary" @click="exportData"
          >审核</el-button
        >
      </el-form>
    </div>
    <div class="library-table">
      <div class="table-header">
        <div class="search-bar">
          <el-radio-group v-model="checkStatus" @change="handleRadioChange">
            <el-radio-button>全部</el-radio-button>
            <el-radio-button label="0">待提交</el-radio-button>
            <el-radio-button label="2">待通过</el-radio-button>
          </el-radio-group>
          <el-checkbox v-model="checked" style="margin-left: 20px"
            >仅看我的</el-checkbox
          >
        </div>
      </div>
      <div class="table-box">
        <el-table
          ref="reportTable"
          :max-height="800"
          :cell-style="{ textAlign: 'center' }"
          :header-cell-style="{
            border: '0px',
            background: '#f5f7fa',
            color: '#606266',
            boxShadow: 'inset 0 1px 0 #ebeef5',
            textAlign: 'center',
          }"
          :data="reportTable"
          style="width: 100%"
        >
          <el-table-column type="selection" label="" min-width="5%" />
          <el-table-column
            prop="materialCode"
            label="样品编号"
            min-width="10%"
          />
          <el-table-column prop="reportCode" label="报告单号" min-width="10%" />
          <el-table-column
            prop="materialName"
            label="样品名称"
            min-width="10%"
          />
          <el-table-column prop="status" label="审批状态" min-width="8%">
            <template slot-scope="scope">
              <span>
                <el-tag type="warning">{{
                  scope.row.status == 0 ? "待提交" : "待通过"
                }}</el-tag>
              </span>
            </template></el-table-column
          >
          <el-table-column prop="approver" label="审批人" min-width="8%" />
          <el-table-column prop="submitTime" label="提交日期" min-width="8%" />
          <el-table-column prop="checkTime" label="审核日期" min-width="8%" />
          <el-table-column label="操作" min-width="8%">
            <template slot-scope="scope">
              <el-button
                type="text"
                size="small"
                @click="handleClick(scope.row)"
                >查看详细</el-button
              >
            </template>
          </el-table-column>
        </el-table>
        <!-- åˆ†é¡µå™¨ -->
        <div>
          <el-pagination
            :current-page="page"
            :page-sizes="[10, 20, 30, 40]"
            :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
          />
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { selectAllReportCheck } from "@/api/experiment/reportAuditing";
export default {
}
  data() {
    return {
      input: "",
      checkStatus: undefined,
      reportTable: [],
      page: 1,
      total: 0,
      pageSize: 10,
      checked: true,
    };
  },
  created() {
    this.getData();
  },
  methods: {
    // çŠ¶æ€æŒ‰é’®
    handleRadioChange() {
      this.getData();
    },
    // æ¯é¡µæ¡æ•°æ”¹å˜æ—¶è§¦å‘ é€‰æ‹©ä¸€é¡µæ˜¾ç¤ºå¤šå°‘行
    handleSizeChange(val) {
      console.log(`每页 ${val} æ¡`);
      this.pageSize = val;
      this.getData();
    },
    // å½“前页改变时触发 è·³è½¬å…¶ä»–页
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
      this.page = val;
      this.getData();
    },
    // é‡ç½®æŒ‰é’®
    resetData() {
      this.input = undefined;
      this.page = 1;
      this.pageSize = 10;
      this.checkStatus = undefined;
      this.getData();
    },
    // æŸ¥è¯¢åˆ—表
    async getData() {
      const params = {
        page: this.page,
        pageSize: this.pageSize,
        name: this.input ? this.input : undefined,
        status: this.checkStatus ? this.checkStatus : undefined,
      };
      const { data } = await selectAllReportCheck(params);
      this.reportTable = data.row;
      this.total = data.total;
    },
  },
};
</script>
<style lang="scss" scoped>
.top-bar {
  margin: -25px -15px;
  background: #fff;
  display: flex;
  justify-content: space-between;
  padding: 5px 24px 0px 24px;
  .input-form {
    width: 700px;
  }
  .el-dropdown-link {
    cursor: pointer;
    color: #409eff;
  }
  .el-icon-arrow-down {
    font-size: 12px;
  }
}
.library-table {
  background-color: #fff;
  flex: 1;
  margin: 0px -15px;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  .table-header {
    padding: 20px;
    display: flex;
    justify-content: space-between;
    .el-form-item {
      margin-bottom: 30px !important;
    }
  }
  .table-box {
    padding: 0px 20px;
    margin-top: 0px;
    flex: 1;
    background: #fff;
    display: flex;
    flex-direction: column;
    > div:nth-child(2) {
      display: flex;
      justify-content: end;
      margin: 10px 0;
    }
  }
}
</style>