spring
2025-03-24 de319760a2124d3043491d40f9c2ebf3d27be78f
合并装备代码
已修改17个文件
1070 ■■■■ 文件已修改
src/views/CNAS/personnel/personnelInfo/components/Edit.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/deviceOverview.vue 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/equipmentCalibrationPlan.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/equipmentMaintenancePlan.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/files.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/management.vue 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/quantityValueTraceabilityPlan.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/record.vue 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/usingExternalInstruments.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/index.vue 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/inspection.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/index.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/reportPreparation/index.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/unpass/components/unPassDialog.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statisticalCharts/itemInspectionAnalysis/index.vue 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statisticalCharts/qualificationRateStatistics/index.vue 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/components/Edit.vue
@@ -137,7 +137,7 @@
import {
  newPersonnelAddedToTrainingRecords,
  outOfFocusPreservation, trainingAndAssessmentRecordsAdded, trainingAndAssessmentRecordsEvaluate,
  trainingAndAssessmentRecordsPage
  trainingAndAssessmentRecordsPage, deleteTrainingAndAssessmentRecords
} from "@/api/cnas/personal/personalTraining";
export default {
@@ -221,6 +221,7 @@
      },
      addUserTableInfo: {
        name: null,
        type: 2
      },
      multipleSelection: [],
      userList: [],
@@ -300,15 +301,13 @@
    },
    batchDelete() {
      if (this.multipleSelection.length > 0) {
        let ids = this.multipleSelection.map(item => item.trainingRecordId)
        let ids = this.multipleSelection.map(item => item.trainingRecordId).join(',')
        this.$confirm('是否确认删除所选择的数据?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          let formData = new FormData()
          formData.append('ids', ids)
          deleteTrainingAndAssessmentRecords(formData).then(res => {
          deleteTrainingAndAssessmentRecords({ids: ids}).then(res => {
            if (res.code == 200) {
              this.$message.success('删除成功');
              this.getInfo()
src/views/CNAS/resourceDemand/device/component/deviceOverview.vue
@@ -1,158 +1,8 @@
<!-- 设备总览 -->
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 50px;
  display: flex;
  align-items: center;
}
.search_thing {
  width: 350px;
  display: flex;
  align-items: center;
}
.search_label {
  width: 110px;
  font-size: 14px;
  text-align: left;
}
.search_input {
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100vh - 17em);
  /* padding: 10px; */
  overflow-y: auto;
}
.card {
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, 330px);
  justify-content: start;
  grid-gap: 16px;
  min-height: 300px;
  padding-left: 0;
}
.card li {
  width: 330px;
  height: 165px;
  border-radius: 8px 8px 8px 8px;
  border: 1px solid #EEEEEE;
  margin: 0 !important;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding: 16px;
  font-size: 14px;
  color: #666666;
  position: relative;
  overflow: hidden;
}
.card li .img {
  width: 90px;
  height: 90px;
  border-radius: 16px;
  margin-right: 10px;
}
.list-left .list-left-info {
  line-height: 36px;
  display: flex;
}
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}
.circles {
  position: absolute;
  width: 70px;
  height: 70px;
  right: 0;
  top: 0;
  z-index: 0;
}
.circles .circle {
  border-radius: 50%;
  opacity: 0.2;
}
.circle0,
.circle1,
.circle2 {
  width: 60px;
  height: 60px;
  position: absolute;
}
.circle3 {
  width: 16px;
  height: 16px;
  position: absolute;
}
.circle0 {
  bottom: 6px;
  left: 0;
}
.circle1 {
  bottom: 0;
  right: -30px;
}
.circle2 {
  left: 0;
  top: -30px;
}
.circle3 {
  top: 0;
  right: 0;
}
.success .circle {
  background: #34BD66;
}
.danger .circle {
  background: #FF3838;
}
.warning .circle {
  background: #FBB247;
}
.info .circle {
  background: #909399;
}
.el-form-item {
  margin-top: 11px;
  margin-bottom: 11px;
}
</style>
<template>
  <div class="role_manage">
    <div>
      <el-form :model="entity" inline label-position="right" label-width="80px">
      <el-form :model="entity" inline label-position="right">
        <el-form-item label="状态:">
          <el-select v-model="entity.deviceStatus" placeholder="全部" size="small" clearable>
            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
@@ -387,3 +237,124 @@
  }
}
</script>
<style scoped>
.table {
  background-color: #fff;
  height: calc(100vh - 17em);
  /* padding: 10px; */
  overflow-y: auto;
}
.card {
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, 330px);
  justify-content: start;
  grid-gap: 16px;
  min-height: 300px;
  padding-left: 0;
}
.card li {
  width: 330px;
  height: 165px;
  border-radius: 8px 8px 8px 8px;
  border: 1px solid #EEEEEE;
  margin: 0 !important;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding: 16px;
  font-size: 14px;
  color: #666666;
  position: relative;
  overflow: hidden;
}
.card li .img {
  width: 90px;
  height: 90px;
  border-radius: 16px;
  margin-right: 10px;
}
.list-left .list-left-info {
  line-height: 36px;
  display: flex;
}
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}
.circles {
  position: absolute;
  width: 70px;
  height: 70px;
  right: 0;
  top: 0;
  z-index: 0;
}
.circles .circle {
  border-radius: 50%;
  opacity: 0.2;
}
.circle0,
.circle1,
.circle2 {
  width: 60px;
  height: 60px;
  position: absolute;
}
.circle3 {
  width: 16px;
  height: 16px;
  position: absolute;
}
.circle0 {
  bottom: 6px;
  left: 0;
}
.circle1 {
  bottom: 0;
  right: -30px;
}
.circle2 {
  left: 0;
  top: -30px;
}
.circle3 {
  top: 0;
  right: 0;
}
.success .circle {
  background: #34BD66;
}
.danger .circle {
  background: #FF3838;
}
.warning .circle {
  background: #FBB247;
}
.info .circle {
  background: #909399;
}
.el-form-item {
  margin-top: 11px;
  margin-bottom: 11px;
}
</style>
src/views/CNAS/resourceDemand/device/component/equipmentCalibrationPlan.vue
@@ -3,10 +3,12 @@
  <div>
    <div>
      <div style="margin: 10px 0;display: flex;align-items: center;justify-content: space-between;">
        <span>年度计划表</span>
        <div class="title">
          <span style="font-weight: bold">年度计划表</span>
        </div>
        <div>
          <el-button size="small" type="primary" @click="getYearTableData">刷新</el-button>
          <el-button style="margin-right: 10px" size="small" type="primary" @click="addYearPlan('add')">新增</el-button>
          <el-button size="small" type="primary" @click="addYearPlan('add')">新增</el-button>
          <!--          <el-button size="small" type="primary" @click="record">导入</el-button>-->
        </div>
      </div>
@@ -20,7 +22,7 @@
          <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column>
          <el-table-column label="计划名称" min-width="180" prop="planName"></el-table-column>
          <el-table-column label="编制人" min-width="100" prop="writeName"></el-table-column>
          <el-table-column label="编制日期" min-width="150" prop="writeTime"></el-table-column>
          <el-table-column label="编制日期" min-width="160" prop="writeTime"></el-table-column>
          <el-table-column label="批准状态" min-width="100" prop="ratifyStatus">
            <template slot-scope="scope">
              <el-tag v-if="scope.row.ratifyStatus === 1" type="success">批准</el-tag>
@@ -46,23 +48,29 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="pagination.size" :page-sizes="[10, 20, 30, 50, 100]"
          :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
          @current-change="handleCurrentChange">
                       background :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper"
                       @size-change="handleSizeChange" @current-change="handleCurrentChange">
        </el-pagination>
      </div>
    </div>
    <div>
      <span>年度计划明细表</span>
      <div class="title">
        <div class="title-search">
          <span style="width: 120px;font-size: 14px">设备名称及型号:</span>
          <el-input v-model="searchForm.deviceName" clearable size="small"
            style="margin-right: 10px;width: 220px"></el-input>
          <span style="width: 80px;font-size: 14px">仪器编号:</span>
          <el-input v-model="searchForm.deviceNumber" clearable size="small"
            style="margin-right: 10px;width: 220px"></el-input>
          <el-button size="mini" type="primary" @click="getYearTableDetailData(currentRow)">查询</el-button>
          <el-button size="mini" @click="reset">重置</el-button>
        <span style="font-weight: bold">年度计划明细表</span>
      </div>
      <div class="search">
        <div>
          <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
            <el-form-item label="设备名称及型号" prop="deviceName">
              <el-input v-model="searchForm.deviceName" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item label="仪器编号" prop="deviceNumber">
              <el-input v-model="searchForm.deviceNumber" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item>
              <el-button type="primary" size="mini" @click="getYearTableDetailData(currentRow)">查询</el-button>
              <el-button size="mini" @click="reset">重置</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div>
          <el-button size="small" type="primary" @click="handleForm('add')">新增</el-button>
@@ -94,8 +102,8 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper"
          @size-change="handleSizeChange1" @current-change="handleCurrentChange1">
                       background :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper"
                       @size-change="handleSizeChange1" @current-change="handleCurrentChange1">
        </el-pagination>
      </div>
    </div>
@@ -597,14 +605,27 @@
<style scoped>
.title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  font-size: 16px;
  color: #333;
  font-weight: 400;
  padding-left: 10px;
  margin-bottom: 10px;
}
.title-search {
.title::before {
  position: absolute;
  left: 0;
  top: 4px;
  content: '';
  width: 4px;
  height: 16px;
  background-color: #3A7BFA;
  border-radius: 2px;
}
.search {
  height: 46px;
  display: flex;
  align-items: center;
  margin: 10px 0;
  justify-content: space-between;
}
</style>
src/views/CNAS/resourceDemand/device/component/equipmentMaintenancePlan.vue
@@ -14,7 +14,7 @@
            width="70"></el-table-column>
          <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column>
          <el-table-column label="编制人" min-width="120" prop="compiler"></el-table-column>
          <el-table-column label="编制时间" min-width="150" prop="datePreparation"></el-table-column>
          <el-table-column label="编制时间" min-width="160" prop="datePreparation"></el-table-column>
          <el-table-column label="审核人" min-width="150" prop="audit"></el-table-column>
          <el-table-column label="审核时间" min-width="180" prop="auditDate"></el-table-column>
          <el-table-column label="审核状态" min-width="180" prop="status">
@@ -39,7 +39,7 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background
          @size-change="handleSizeChange1" @current-change="handleCurrentChange1">
        </el-pagination>
      </div>
src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue
@@ -3,10 +3,12 @@
  <div>
    <div>
      <div style="margin: 10px 0;display: flex;align-items: center;justify-content: space-between;">
        <span>年度计划表</span>
        <div class="title">
          <span style="font-weight: bold">年度计划表</span>
        </div>
        <div style="display: flex;align-items: center;">
          <el-button style="margin-right: 10px" size="small" type="primary" @click="getYearTableData">刷新</el-button>
          <el-button style="margin-right: 10px" size="small" type="primary" @click="addYearPlan('add')">新增</el-button>
          <el-button size="small" type="primary" @click="getYearTableData">刷新</el-button>
          <el-button size="small" type="primary" @click="addYearPlan('add')">新增</el-button>
          <!--          <el-upload ref="upload" :action="action"-->
          <!--                     :before-upload="beforeUpload" :headers="uploadHeader" :on-error="onError"-->
          <!--                     :on-success="handleSuccessUp" :show-file-list="false" accept='.xls,.xlsx'>-->
@@ -24,7 +26,7 @@
          <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column>
          <el-table-column label="计划名称" min-width="180" prop="planName"></el-table-column>
          <el-table-column label="编制人" min-width="100" prop="writeName"></el-table-column>
          <el-table-column label="编制日期" min-width="150" prop="writeTime"></el-table-column>
          <el-table-column label="编制日期" min-width="160" prop="writeTime"></el-table-column>
          <el-table-column label="批准状态" min-width="100" prop="ratifyStatus">
            <template slot-scope="scope">
              <el-tag v-if="scope.row.ratifyStatus === 1" type="success">批准</el-tag>
@@ -50,23 +52,29 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="pagination.size" :page-sizes="[10, 20, 30, 50, 100]"
          :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
          @current-change="handleCurrentChange">
                       background :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper"
                       @size-change="handleSizeChange" @current-change="handleCurrentChange">
        </el-pagination>
      </div>
    </div>
    <div>
      <span>年度计划明细表</span>
      <div class="title">
        <div class="title-search">
          <span style="width: 120px;font-size: 14px">设备编号:</span>
          <el-input v-model="searchForm.deviceNumber" clearable size="small"
            style="margin-right: 10px;width: 220px"></el-input>
          <span style="width: 80px;font-size: 14px">设备名称:</span>
          <el-input v-model="searchForm.deviceName" clearable size="small"
            style="margin-right: 10px;width: 220px"></el-input>
          <el-button size="mini" type="primary" @click="getYearTableDetailData(currentRow)">查询</el-button>
          <el-button size="mini" @click="reset">重置</el-button>
        <span style="font-weight: bold">年度计划明细表</span>
      </div>
      <div class="search">
        <div>
          <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
            <el-form-item label="设备编号" prop="deviceNumber">
              <el-input v-model="searchForm.deviceNumber" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item label="设备名称" prop="deviceName">
              <el-input v-model="searchForm.deviceName" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item>
              <el-button type="primary" size="mini" @click="getYearTableDetailData(currentRow)">查询</el-button>
              <el-button size="mini" @click="reset">重置</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div>
          <el-button size="small" type="primary" @click="handleForm('add')">新增</el-button>
@@ -101,7 +109,7 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background
          @size-change="handleSizeChange1" @current-change="handleCurrentChange1">
        </el-pagination>
      </div>
@@ -642,15 +650,28 @@
</script>
<style scoped>
.title {
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.title {
  position: relative;
  font-size: 16px;
  color: #333;
  font-weight: 400;
  padding-left: 10px;
  margin-bottom: 10px;
}
.title-search {
  display: flex;
  align-items: center;
  margin: 10px 0;
.title::before {
  position: absolute;
  left: 0;
  top: 4px;
  content: '';
  width: 4px;
  height: 16px;
  background-color: #3A7BFA;
  border-radius: 2px;
}
</style>
src/views/CNAS/resourceDemand/device/component/files.vue
@@ -25,7 +25,7 @@
        <el-col :span="8">
          <div class="form-item">
            <label>设备名称</label>
            <!-- <p>{{ Mdata.deviceName }}</p> -->
<!--             <p>{{ Mdata.deviceName }}</p> -->
            <el-tooltip class="item" :content="Mdata.deviceName">
              <span class="text-ellipsis">{{ Mdata.deviceName }}</span>
            </el-tooltip>
@@ -170,9 +170,9 @@
        <el-table-column prop="quantity" label="份数" min-width="80" />
        <el-table-column prop="pageCount" label="页码" min-width="80" />
        <el-table-column prop="provider" label="提供者" min-width="150" />
        <el-table-column prop="provideDate" label="归档日期" min-width="150" />
        <el-table-column prop="provideDate" label="归档日期" min-width="170" />
        <el-table-column prop="comments" label="备注" min-width="150" />
        <el-table-column fixed="right" label="操作" min-width="180">
        <el-table-column fixed="right" label="操作" min-width="180" align="center">
          <template slot-scope="scope">
            <el-button type="text" size="small" @click="handleAttachmentClick(scope.row)">下载附件</el-button>
            <el-button type="text" size="small" @click="handleViewClick(scope.row)">编辑</el-button>
@@ -914,7 +914,6 @@
.page-header {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
}
h4 {
src/views/CNAS/resourceDemand/device/component/management.vue
@@ -1,37 +1,37 @@
<!-- 设备工具明细 -->
<template>
    <div class="role_manage">
        <div class="search" v-show="!showData">
            <div class="search_thing">
                <div class="search_label">状态:</div>
                <el-select v-model="queryParams.deviceStatus" placeholder="全部" size="small">
                    <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
                    </el-option>
                </el-select>
            </div>
            <div class="search_thing">
                <div class="search_label">设备名称:</div>
                <div class="search_input">
                    <el-input size="small" placeholder="请输入" clearable v-model="queryParams.deviceName"
                        @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="queryParams.specificationModel" @keyup.enter.native="refreshTable()"></el-input>
                </div>
            </div>
            <div style="padding-left: 30px;">
                <el-button size="mini" type="primary" @click="refreshTable()">查询</el-button>
                <el-button size="mini" @click="refresh()">重置</el-button>
                <el-button size="small" type="primary" @click="dialogVisible2 = true">新增</el-button>
                <el-button size="small" type="primary" @click="handleDownOne">导出</el-button>
            </div>
        </div>
    <div class="search">
      <div>
        <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
          <el-form-item label="状态" prop="deviceStatus" class="form-item">
            <el-select v-model="queryParams.deviceStatus" placeholder="全部" size="small">
              <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="设备名称" prop="deviceName">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.deviceName"
                      @keyup.enter.native="refreshTable()">
            </el-input>
          </el-form-item>
          <el-form-item label="规格型号" prop="specificationModel">
            <el-input size="small" placeholder="请输入" clearable
                      v-model="queryParams.specificationModel" @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" size="mini" @click="refreshTable">查询</el-button>
            <el-button size="mini" @click="refresh">重置</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="dialogVisible2 = true">新增</el-button>
        <el-button size="small" type="primary" @click="handleDownOne">导出</el-button>
      </div>
    </div>
        <div class="table" v-show="!showData">
            <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 320px)'"
            <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 300px)'"
                :page="page" @pagination="pagination"></lims-table>
        </div>
        <el-dialog :title="isUp ? '设备详情' : '档案修订'" :visible.sync="dialogVisible" width="70%" top="5vh"
@@ -990,20 +990,11 @@
</script>
<style scoped>
.role_manage {
    width: 100%;
    height: 100%;
}
.title {
    line-height: 15px;
}
.search {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
  height: 46px;
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
}
.search_thing {
@@ -1018,20 +1009,10 @@
    text-align: right;
}
.search_input {
    width: calc(100% - 80px);
}
.table {
    margin-top: 12px;
    background-color: #fff;
    height: calc(100vh - 17em);
    height: calc(100vh - 16em);
}
.el-form-item {
    margin-bottom: 16px;
}
.picName {
    overflow: hidden;
    text-overflow: ellipsis;
@@ -1039,4 +1020,7 @@
    word-break: break-all;
    width: 120px;
}
.form-item >>>.el-form-item__content {
  width: 120px;
}
</style>
src/views/CNAS/resourceDemand/device/component/quantityValueTraceabilityPlan.vue
@@ -15,7 +15,7 @@
          <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column>
          <el-table-column label="文件名称" min-width="120" prop="compiler"></el-table-column>
          <el-table-column label="编制人" min-width="150" prop="compiler"></el-table-column>
          <el-table-column label="编制时间" min-width="150" prop="datePreparation"></el-table-column>
          <el-table-column label="编制时间" min-width="160" prop="datePreparation"></el-table-column>
          <el-table-column label="批准人" min-width="180" prop="audit"></el-table-column>
          <el-table-column label="批准状态" min-width="180" prop="status">
            <template slot-scope="scope">
@@ -41,7 +41,7 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background
          @size-change="handleSizeChange1" @current-change="handleCurrentChange1">
        </el-pagination>
      </div>
src/views/CNAS/resourceDemand/device/component/record.vue
@@ -2,28 +2,31 @@
<template>
  <div>
    <div class="search">
      <div class="search_thing">
        <div class="search_label">样品编号:</div>
        <el-input v-model="search.sampleCode" clearable placeholder="请输入" size="small" style="width: 60%;"
          @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input>
        <div class="search_label">管理编号:</div>
        <el-input v-model="search.managementNumber" clearable placeholder="请输入" size="small" style="width: 60%;"
          @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="mini" type="primary" @click="getTableList(clickNodeVal.value)">查询</el-button>
        <el-button size="mini" @click="resetSearch">重置</el-button>
      </div>
      <div class="btns" v-if="isMenuList != 1">
      <el-form :model="search" ref="search" size="small" :inline="true">
        <el-form-item label="样品编号">
          <el-input v-model="search.sampleCode" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input>
        </el-form-item>
        <el-form-item label="管理编号">
          <el-input v-model="search.managementNumber" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button size="mini" type="primary" @click="getTableList(clickNodeVal.value)">查询</el-button>
          <el-button size="mini" @click="resetSearch">重置</el-button>
        </el-form-item>
      </el-form>
      <div>
        <el-button size="small" type="primary" @click="dialogVisible = true, openAdd()">新 建</el-button>
        <el-button :loading="outLoading" size="small" type="primary" @click="openHandleOut">导 出</el-button>
      </div>
    </div>
    <div class="tables" style="margin-top: 10px;">
    <div>
      <el-table ref="Recordtable" :data="formParamList" height="calc(100vh - 20em)"
                v-loading="tableLoading"
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
        <!-- 表格列 -->
        <el-table-column label="序号" type="index" width="120">
        <el-table-column label="序号" type="index" width="70" align="center">
          <template v-slot="scope">
            <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
          </template>
@@ -42,8 +45,8 @@
          </template>
        </el-table-column>
        <!--        <el-table-column label="异常情况" min-width="120" prop="abnormal" />-->
        <el-table-column label="使用开始日期" min-width="150" prop="useStartDate" />
        <el-table-column label="使用结束日期" min-width="150" prop="useEndDate" />
        <el-table-column label="使用开始日期" min-width="170" prop="useStartDate" />
        <el-table-column label="使用结束日期" min-width="170" prop="useEndDate" />
        <el-table-column label="使用人" min-width="120" prop="usePerson" />
        <el-table-column label="备注" min-width="120" prop="remark" />
        <!-- 操作按钮 -->
@@ -57,7 +60,7 @@
      </el-table>
      <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
        :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
        @current-change="handleCurrentChange">
        @current-change="handleCurrentChange" background>
      </el-pagination>
    </div>
    <el-dialog :visible.sync="dialogVisible" title="仪器设备使用记录表" top="5vh" width="55%">
@@ -210,6 +213,7 @@
      dialogVisible: false,
      operationType: '',
      formParamList: [],
      tableLoading: false
    }
  },
  mounted() {
@@ -238,14 +242,18 @@
      if (deviceId === undefined) {
        deviceId = ''
      }
      this.tableLoading = true
      await deviceRecordPage({
        deviceId: deviceId,
        ...this.search
      }).then(res => {
        this.tableLoading = false
        if (res.code == 200) {
          this.formParamList = res.data.records
          this.search.total = res.data.total
        }
      }).catch(err => {
        this.tableLoading = false
      })
    },
    // 打开导出弹框选择编制人、批准人
@@ -394,65 +402,10 @@
</script>
<style scoped>
.tables {
  width: 100%;
  height: calc(100vh - 15em);
}
.el-from {
  max-width: 400px;
  margin: 0 auto;
}
.form-row {
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.el-input {
  width: calc(100% - 120px);
  /* 确保输入框宽度一致 */
}
.form-row .el-form-item {
  flex: 1;
  /* 每个表单项占据相同比例的空间 */
  margin-right: 100px;
  /* 可选:为右侧元素添加间距 */
}
/* 移除最后一个元素的右边距 */
.form-row .el-form-item:last-child {
  margin-right: 0;
}
.search {
  background-color: #fff;
  margin-top: 10px;
  display: flex;
  align-items: center;
  position: relative;
}
.search_thing {
  display: flex;
  align-items: center;
  height: 40px;
}
.search_label {
  width: 140px;
  font-size: 14px;
  text-align: right;
  margin-right: 10px;
}
.btns {
  position: absolute;
  right: 0px;
  top: 50%;
  transform: translate(0, -50%);
}
</style>
src/views/CNAS/resourceDemand/device/component/usingExternalInstruments.vue
@@ -2,12 +2,16 @@
  <div>
    <div>
      <div class="title">
        <div class="title-search">
          <span style="width: 80px;font-size: 14px">单位名称:</span>
          <el-input v-model="searchForm.unitName" clearable size="small"
            style="margin-right: 10px;width: 220px"></el-input>
          <el-button size="mini" type="primary" @click="getYearTableDetailData">查询</el-button>
          <el-button size="mini" @click="reset">重置</el-button>
        <div>
          <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
            <el-form-item label="单位名称" prop="unitName">
              <el-input v-model="searchForm.unitName" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item>
              <el-button type="primary" size="mini" @click="getYearTableDetailData">查询</el-button>
              <el-button size="mini" @click="reset">重置</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div>
          <el-button size="small" type="primary" @click="handleForm('')">新增</el-button>
@@ -41,7 +45,7 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper"
          :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background
          @size-change="handleSizeChange1" @current-change="handleCurrentChange1">
        </el-pagination>
      </div>
@@ -159,14 +163,9 @@
<style scoped>
.title {
  height: 46px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.title-search {
  display: flex;
  align-items: center;
  margin: 10px 0;
  margin-top: 10px;
}
</style>
src/views/business/inspectionTask/index.vue
@@ -5,12 +5,12 @@
        <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
          <el-form-item label="委托编号" prop="entrustCode">
            <el-input v-model="queryParams.entrustCode" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable()"></el-input>
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item label="检验状态" prop="insState">
            <el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()">
              <el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label"
                :value="a.value"></el-option>
                         :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item>
@@ -30,7 +30,7 @@
            </ul>
            <div>
              <el-checkbox v-model="alone" class="view-self-checkbox"
                @change="changeCheckBox"><span>我的任务</span></el-checkbox>
                           @change="changeCheckBox"><span>我的任务</span></el-checkbox>
            </div>
          </div>
          <div class="center-title">
@@ -39,24 +39,27 @@
          </div>
        </div>
        <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
          :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0">
          :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
          key="tableData0">
          <div slot="action" slot-scope="scope">
            <el-button size="small" type="text" @click="handleDataLook(scope.row)">数据查看</el-button>
            <el-button type="text" size="small"
              :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
              @click="editInspection(scope.row)">修改检验值</el-button>
                       :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
                       @click="editInspection(scope.row)">修改检验值</el-button>
            <el-button type="text" size="small" :disabled="(
              scope.row.userName == null ||
              scope.row.insState == 3 ||
              scope.row.insState == 5 ||
              (scope.row.userName && !scope.row.userName.includes(nickName))
            )" @click="handleInspection(scope.row)">检验</el-button>
                  scope.row.userName == null ||
                  scope.row.insState == 3 ||
                  scope.row.insState == 5 ||
                  (scope.row.userName && !scope.row.userName.includes(nickName))
                )"
                       @click="handleInspection(scope.row)">检验</el-button>
            <el-button type="text" size="small" :disabled="(
              scope.row.userName == null ||
              scope.row.insState == 5 ||
              scope.row.insState == 3 ||
              (scope.row.userName && !scope.row.userName.includes(nickName))
            )" @click="handleConnect(scope.row)">交接</el-button>
                  scope.row.userName == null ||
                  scope.row.insState == 5 ||
                  scope.row.insState == 3 ||
                  (scope.row.userName && !scope.row.userName.includes(nickName))
                )"
                       @click="handleConnect(scope.row)">交接</el-button>
            <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">原始记录</el-button>
            <el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
              <template #reference>
@@ -64,22 +67,23 @@
              </template>
              <div>
                <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
                  (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px"
                  type="text" size="small" @click="download(scope.row)">下载报告</el-button>
                <el-upload ref='upload' :action="javaApi + '/insReport/inReport'" :before-upload="beforeUpload"
                  :data="{ id: scope.row.insReportId }" :headers="uploadHeader" :on-error="onError"
                  :on-success="handleSuccessUp" :show-file-list="false" style="display: inline;margin: 0 6px"
                  accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
                  (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px" type="text" size="small" @click="download(scope.row)">下载报告</el-button>
                <el-upload ref='upload'
                           :action="javaApi + '/insReport/inReport'"
                           :before-upload="beforeUpload"
                           :data="{id: scope.row.insReportId}"
                           :headers="uploadHeader" :on-error="onError"
                           :on-success="handleSuccessUp"
                           :show-file-list="false"
                           style="display: inline;margin: 0 6px"
                           accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
                  <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
                    (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small"
                    type="text">上传</el-button>
                  (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small" type="text">上传</el-button>
                </el-upload>
                <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small"
                  @click="handleRestore(scope.row)">还原</el-button>
                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleRestore(scope.row)">还原</el-button>
                <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small"
                  @click="handleIssued(scope.row)">查看报告</el-button>
                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleIssued(scope.row)">查看报告</el-button>
              </div>
            </el-popover>
          </div>
@@ -151,7 +155,7 @@
        </el-button>
      </div>
      <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"
        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
        <el-table-column prop="inspectionItemClass" label="检验项分类" width="150">
        </el-table-column>
        <el-table-column prop="inspectionItem" label="检验项" width="150">
@@ -167,7 +171,7 @@
    </el-dialog>
    <el-dialog :visible.sync="bindAddDialogVisible" title="选择绑定" width="600px">
      <el-table :data="bindAddTableData" style="width: 100%" height="60vh"
        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
        @selection-change="handleBindAddSelectionChange">
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column prop="inspectionItemClass" label="检验项分类" width="150">
@@ -193,14 +197,13 @@
    <!--查看工时弹框-->
    <viewManHourDia ref="viewManHourDia"></viewManHourDia>
    <!--不合格复测查看弹框-->
    <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible"
      @closeRetestLook="closeRetestLook"></un-pass-retest-result>
    <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result>
    <!--报告查看-->
    <el-dialog title="报告查看" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
      :fullscreen="fullscreen">
               :fullscreen="fullscreen">
      <div class="full-screen">
        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;"
          v-if="!fullscreen"></i>
           v-if="!fullscreen"></i>
        <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;">
      </div>
      <div style="height: 80vh;" v-if="issuedVisible">
@@ -209,7 +212,7 @@
    </el-dialog>
    <el-dialog title="查看附件" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen>
      <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.tempUrlPdf" :currentFile="{}"
        style="max-height: 90vh;overflow-y: auto;" />
                   style="max-height: 90vh;overflow-y: auto;" />
    </el-dialog>
  </div>
</template>
@@ -234,8 +237,8 @@
  selectSampleAndProductByOrderId,
} from "@/api/business/inspectionTask.js";
import { mapGetters } from "vuex";
import { getRetestResult } from "@/api/business/rawMaterialOrder";
import { upReportUrl } from "@/api/business/insReport";
import {getRetestResult} from "@/api/business/rawMaterialOrder";
import {upReportUrl} from "@/api/business/insReport";
import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue";
import filePreview from "@/components/Preview/filePreview.vue";
export default {
@@ -275,7 +278,7 @@
      claimVisible: false,
      tabList: [
        { label: "委托", value: 0 },
        { label: "原辅料", value: 1 },
        { label: "原材料", value: 1 },
      ],
      active: 1,
      tabIndex: 0,
@@ -283,8 +286,8 @@
      planTotal: 0,
      insStateList: [],
      state: 0, // 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看
      typeSource: null, // 0:成品下单,1:原辅料下单
      sonLaboratory: null, // 0:委托,1:原辅料
      typeSource: null, // 0:成品下单,1:原材料下单
      sonLaboratory: null, // 0:委托,1:原材料
      activeFace: 0, // 1:下单,2:查看,3:审核,默认为0
      currentId: null,
      entityCopy: {},
@@ -300,7 +303,7 @@
      sonLaboratoryList: [],
      typeSourceList: [
        { label: "成品下单", value: 0 },
        { label: "原辅料下单", value: 1 },
        { label: "原材料下单", value: 1 },
      ],
      customsInspection: {},
      showInfoDialog: false, // 产业链信息查看
@@ -356,7 +359,7 @@
            if (params == 0) {
              return "成品下单";
            } else {
              return "原辅料下单";
              return "原材料下单";
            }
          },
        },
@@ -508,7 +511,7 @@
                this.getRetestResultInfo(row);
              },
              disabled: (row) => {
                return row.insResult != 0
                return row.insResult!=0
              },
            },
            {
@@ -636,7 +639,7 @@
    },
    // 下载报告
    download(row) {
      let url = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
      let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
      const link = document.createElement('a');
      link.href = this.javaApi + url;
      link.target = '_blank';
@@ -670,7 +673,7 @@
        fileName = row.tempUrlPdf
        fileType = "pdf"
      }
      fileName = fileName.replace('/word/', '')
      fileName = fileName.replace('/word/','')
      const userName = this.nickName
      this.option = {
        url: this.javaApi + "/word/" + fileName,
@@ -730,7 +733,7 @@
      this.currentId = parseInt(row.id);
      switch (row.isCopper) {
        case 0:
          // 原辅料
          // 原材料
          this.$router.push({
            path: "/materialOrder/customsInspection", query: {
              customsInspection: row,
@@ -884,13 +887,13 @@
      });
    },
    // 查看不合格复测结果
    getRetestResultInfo(row) {
      getRetestResult({ insProductId: row.insProductId }).then(res => {
    getRetestResultInfo (row) {
      getRetestResult({insProductId: row.insProductId}).then(res => {
        this.retestVisible = true
        this.retestInfo = res.data
      })
    },
    closeRetestLook() {
    closeRetestLook () {
      this.retestVisible = false
    },
    // 绑定检验项绑定
@@ -959,7 +962,7 @@
        });
      });
    },
    beforeUpload(file) {
    beforeUpload (file) {
      if (file.size > 1024 * 1024 * 10) {
        this.$message.error('上传文件不超过10M');
        this.$refs.upload.clearFiles()
@@ -1030,7 +1033,6 @@
  border-color: #3a7bfa;
  color: #3a7bfa;
}
.center-options {
  display: flex;
  align-items: center;
src/views/business/inspectionTask/inspection.vue
@@ -288,7 +288,7 @@
                      state == 1
                    "><span :style="`font-family:${n.v.ff} !important;`">{{
                      toFixed(n.v.v, n.v.ct)
                        }}</span></template>
                    }}</span></template>
                    <template v-else-if="
                      n.v.ps != undefined &&
                      n.v.ps.value === '最终值' &&
@@ -344,9 +344,9 @@
    </div>
    <el-drawer :size="550" :visible.sync="sampleVisible" title="样品切换">
      <el-table v-if="sampleVisible" ref="productTable" :current-row-key="currentKey" :data="sampleProduct"
        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :row-class-name="tableRowClassName"
        :row-key="(record) => record.index" border class="el-table" height="100%" highlight-current-row
        tooltip-effect="dark" @row-click="handleChangeSample">
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
        :row-class-name="tableRowClassName" :row-key="(record) => record.index" border class="el-table" height="100%"
        highlight-current-row tooltip-effect="dark" @row-click="handleChangeSample">
        <el-table-column :key="Math.random()" align="center" label="序号" type="index" width="70px">
        </el-table-column>
        <el-table-column label="样品编号" min-width="100px" prop="sampleCode" show-overflow-tooltip></el-table-column>
@@ -963,7 +963,7 @@
          humidity: this.insOrder.humidity ? this.insOrder.humidity : null,
        };
        if (this.typeSource == "1") {
          this.getRawMaterialTag(this.currentSample.id); // 原辅料的检验任务查询批数
          this.getRawMaterialTag(this.currentSample.id); // 原材料的检验任务查询批数
          this.rawMaterialTag = "1";
        }
        this.getEquipOptions(1);
src/views/business/productOrder/index.vue
@@ -32,7 +32,7 @@
        </el-form-item>
        <el-form-item>
          <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
            @click="more = !more">{{ !more ? '更多' : '收起' }}</el-button>
                     @click="more = !more">{{ !more ? '更多' : '收起' }}</el-button>
          <el-button size="mini" type="primary" @click="refreshTable()">查询</el-button>
          <el-button size="mini" @click="refresh()">重置</el-button>
        </el-form-item>
@@ -41,18 +41,12 @@
    <div class="table-tab">
      <div>
        <ul class="tab">
          <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核
          </li>
          <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中
          </li>
          <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])"
            @click="handleTab(2)">委托已检</li>
          <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">
            抽样已检</li>
          <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回
          </li>
          <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">
            撤销</li>
          <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核</li>
          <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中</li>
          <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">委托已检</li>
          <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">抽样已检</li>
          <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回</li>
          <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">撤销</li>
          <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部</li>
        </ul>
      </div>
@@ -92,8 +86,8 @@
      </el-dialog>
      <!-- 撤销 -->
      <el-dialog :before-close="handleClose" :visible.sync="quashDialogVisible" title="下单撤销" width="30%">
        <p v-if="!isQuash" style="font-size:16px;color:#333333">委托编号<span style="color:#34BD66">{{
          this.insOrderRow.entrustCode }}</span>的信息是否撤销</p>
        <p v-if="!isQuash" style="font-size:16px;color:#333333">委托编号<span
            style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>的信息是否撤销</p>
        <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px">
          <el-form-item label="请输入撤销原因:">
            <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
@@ -174,8 +168,7 @@
        <span slot="footer" class="dialog-footer">
          <el-row>
            <el-button @click="handleNo">{{ deleteTilte == '撤销' ? '取 消' : '不通过' }}</el-button>
            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? '确 定' :
              '通过'}}</el-button>
            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? '确 定' : '通过'}}</el-button>
          </el-row>
        </span>
      </el-dialog>
@@ -270,8 +263,8 @@
              <el-row style="margin-top: 0.01cm;font-size: 0.20cm;">
                <el-col style="display: flex;align-items: center;"><span>样品状态:&nbsp;
                  </span>
                  <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span
                      v-if="item.insState != 0" class="scor"></span>待检
                  <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span v-if="item.insState != 0"
                      class="scor"></span>待检
                    <span v-if="item.insState == 1">√</span><span v-if="item.insState != 1" class="scor"></span>在检
                    <span v-if="item.insState == 2">√</span><span v-if="item.insState != 2" class="scor"></span>已检
                    <span v-if="item.isLeave == 1">√</span><span v-if="item.isLeave != 1" class="scor"></span>留样</span>
@@ -321,7 +314,7 @@
} from "@/api/business/productOrder";
import { selectUserCondition } from "@/api/performance/class";
import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
import { mapGetters } from "vuex";
import {mapGetters} from "vuex";
export default {
  name: 'ProductOrder',
  components: {
@@ -542,8 +535,8 @@
      state: 0,// 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看
      InspectionKey: 1,
      inspectorList: [],//检验人员列表
      sonLaboratory: null,// 0:委托,1:原辅料
      typeSource: null,// 0:成品下单,1:原辅料下单
      sonLaboratory: null,// 0:委托,1:原材料
      typeSource: null,// 0:成品下单,1:原材料下单
      deleteTilte: '撤销',
      examine: null,
      deleteList: [],
@@ -779,7 +772,7 @@
      }
      const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
      this.tableLoading = true
      selectInsOrderParameter({ ...this.page, ...params }).then(res => {
      selectInsOrderParameter({...this.page,...params}).then(res => {
        this.upIndex++
        this.tableLoading = false
        if (res.code === 200) {
@@ -981,7 +974,7 @@
      this.tableDataLookPage.size = page.limit
      this.getDataTableList(this.currentRow)
    },
    closeDia() {
    closeDia () {
      this.tableDataLookPage = {
        total: 0,
        size: 20,
@@ -1023,8 +1016,8 @@
    // 下载报告
    download(row) {
      let url = row.urlS ? row.urlS : row.url;
      if (url) {
        url = url.split('.')[0] + '.pdf'
      if(url){
        url = url.split('.')[0]+'.pdf'
        const link = document.createElement('a');
        link.href = this.javaApi + url;
        link.target = '_blank';
src/views/business/reportPreparation/index.vue
@@ -186,8 +186,8 @@
          <el-button size="small" style="height: 38px" type="primary">附件上传</el-button>
        </el-upload>
      </div>
      <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" key="tableDataFile"
        :tableLoading="tableLoadingFile"></lims-table>
      <lims-table :tableData="tableDataFile" :column="columnFile" height="500px"
        key="tableDataFile" :tableLoading="tableLoadingFile"></lims-table>
    </el-dialog>
  </div>
</template>
@@ -207,7 +207,7 @@
import { mapGetters } from "vuex";
import { selectUserCondition } from "@/api/business/inspectionTask";
import limsTable from "@/components/Table/lims-table.vue";
import { delFile, downFile, getFileList } from "@/api/business/rawMaterialOrder";
import {delFile, downFile, getFileList} from "@/api/business/rawMaterialOrder";
export default {
  name: 'ReportPreparation',
  components: { limsTable, onlyoffice },
@@ -251,7 +251,7 @@
      loadingVerify: false, // 审核人员
      typeSourceList: [
        { label: '成品下单', value: 0 },
        { label: '原辅料下单', value: 1 },
        { label: '原材料下单', value: 1 },
      ],
      orderTypeList: [
        { label: '委托试验', value: 'Customer-ordered test' },
@@ -275,7 +275,7 @@
      orderId: 0,
      inspectorList: [],//检验人员列表
      InspectionKey: 1,
      typeSource: null,// 0:成品下单,1:原辅料下单
      typeSource: null,// 0:成品下单,1:原材料下单
      sonLaboratory: '', // 试验室
      filesDialogVisible: false,
      filesLookInfo: {},
@@ -351,7 +351,7 @@
            if (params == 0) {
              return "成品下单";
            } else {
              return "原辅料下单";
              return "原材料下单";
            }
          },
        },
@@ -662,7 +662,7 @@
      this.currentId = parseInt(row.insOrderId)
      switch (row.isCopper) {
        case 0:
          // 原辅料
          // 原材料
          this.$router.push({
            path: "/materialOrder/customsInspection", query: {
              customsInspection: row,
src/views/business/unpass/components/unPassDialog.vue
@@ -84,7 +84,7 @@
<script>
import { getInsOrder, getUnqualifiedHandler, downFile, addUnqualifiedHandler } from '@/api/business/unpass.js'
import { mapGetters } from "vuex";
import {mapGetters} from "vuex";
export default {
  name: "unPassDialog",
  // import 引入的组件需要注入到对象中才能使用
@@ -106,7 +106,7 @@
      isShow: this.unPassDialog,
      unPassForm: { // 不合格处理数据
        headline: '', // 标题
        inventoryQuantityId: '', // 原辅料id,不做展示,只传值
        inventoryQuantityId: '', // 原材料id,不做展示,只传值
        supplierName: '', // 供应商名称
        materialName: '', // 物料名称
        productionBatch: '', // 生产批次
@@ -155,7 +155,7 @@
            this.unPassForm.insOrderId = res.data.insOrder.id // 订单id
            this.unPassForm.materialName = res.data.insOrder.sampleType // 物料名称
            this.unPassForm.specsModels = res.data.insOrder.partDetail // 规格型号
            this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // 原辅料id
            this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // 原材料id
            this.unPassForm.supplierName = res.data.insOrderTemplate.supplierName // 供应商名称
            this.unPassForm.productionBatch = res.data.insOrderTemplate.updateBatchNo // 生产批次
            this.unPassForm.cargoQuantity = res.data.insOrderTemplate.qtyArrived + res.data.insOrderTemplate.buyUnitMeas // 到货数量
src/views/statisticalCharts/itemInspectionAnalysis/index.vue
@@ -3,8 +3,16 @@
    <div v-if="!isShowDataCom">
      <el-form ref="entity" size="small" :inline="true">
        <el-form-item style="width: 16%;">
          <el-date-picker v-model="datePicker" end-placeholder="结束日期" format="yyyy-MM-dd" placeholder="选择日期"
            range-separator="至" size="small" start-placeholder="开始日期" style="width: 100%;" type="daterange"
          <el-date-picker
            v-model="datePicker"
            end-placeholder="结束日期"
            format="yyyy-MM-dd"
            placeholder="选择日期"
            range-separator="至"
            size="small"
            start-placeholder="开始日期"
            style="width: 100%;"
            type="daterange"
            value-format="yyyy-MM-dd">
          </el-date-picker>
        </el-form-item>
@@ -18,9 +26,13 @@
          <el-input v-model="supplierName" clearable placeholder="请输入供应商名称" size="small"></el-input>
        </el-form-item>
        <el-form-item label="检验项名称" prop="supplierName">
          <el-select v-model="itemNames" :loading="selectLoading" clearable multiple placeholder="请选择" size="small"
            style="width: 90%;" @focus="getItemList">
            <el-option v-for="item in itemNamesList" :key="item.value" :label="item.label" :value="item.value">
          <el-select v-model="itemNames" :loading="selectLoading" clearable multiple placeholder="请选择"
                     size="small" style="width: 90%;" @focus="getItemList">
            <el-option
              v-for="item in itemNamesList"
              :key="item.value"
              :label="item.label"
              :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
@@ -34,11 +46,13 @@
        <el-col :span="24">
          <div class="inspection-card">
            <div style="display: flex;align-items: center;margin-bottom: 10px;justify-content: space-between;">
              <div>原辅料项检分析列表</div>
              <div>原材料项检分析列表</div>
              <el-button size="small" type="primary" @click="openShowData">查看数据分析</el-button>
            </div>
            <lims-table :tableData="editTableData" :column="editColumn" height="400" key="tableData" :isSelection="true"
              :handleSelectionChange="handleSelectionChange" :tableLoading="editLoading"></lims-table>
            <lims-table :tableData="editTableData" :column="editColumn"
                        height="400" key="tableData" :isSelection="true"
                        :handleSelectionChange="handleSelectionChange"
                        :tableLoading="editLoading"></lims-table>
          </div>
        </el-col>
      </el-row>
@@ -46,9 +60,14 @@
        <el-col :span="6" style="padding-top: 14px">
          <div style="display: flex;margin-left: 10px;align-items: center">
            <span style="width: 100px">分组类型:</span>
            <el-select v-model="groupType" clearable placeholder="请选择" size="small" style="width: 90%;"
              @change="getBarInfo">
              <el-option v-for="item in groupTypeList" :key="item.value" :label="item.label" :value="item.value">
            <el-select v-model="groupType" clearable placeholder="请选择"
                       size="small"
                       style="width: 90%;" @change="getBarInfo">
              <el-option
                v-for="item in groupTypeList"
                :key="item.value"
                :label="item.label"
                :value="item.value">
              </el-option>
            </el-select>
          </div>
@@ -58,30 +77,46 @@
        <el-col :span="24">
          <div class="inspection-card">
            <div class="title">检验项数据对比</div>
            <Echarts ref="chart" :chartStyle="chartStyle" :dataset="dataset" :grid="grid" :options="echartsOptions"
              :series="echartsSeries" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis" style="height: 40vh;"></Echarts>
            <Echarts ref="chart"
                     :chartStyle="chartStyle"
                     :dataset="dataset"
                     :grid="grid"
                     :options="echartsOptions"
                     :series="echartsSeries"
                     :tooltip="tooltip"
                     :xAxis="xAxis"
                     :yAxis="yAxis"
                     style="height: 40vh;"></Echarts>
          </div>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="24">
          <div class="inspection-card">
            <div class="title">原辅料项检合格率</div>
            <Echarts ref="chart" :chartStyle="chartStyle" :dataset="dataset1" :grid="grid" :options="echartsOptions1"
              :series="echartsSeries1" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis1" style="height: 40vh;">
            </Echarts>
            <div class="title">原材料项检合格率</div>
            <Echarts ref="chart"
                     :chartStyle="chartStyle"
                     :dataset="dataset1"
                     :grid="grid"
                     :options="echartsOptions1"
                     :series="echartsSeries1"
                     :tooltip="tooltip"
                     :xAxis="xAxis"
                     :yAxis="yAxis1"
                     style="height: 40vh;"></Echarts>
          </div>
        </el-col>
      </el-row>
    </div>
    <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
      <div v-if="dataDialogVisible" style="height: 70vh;overflow-y: auto;">
        <lims-table :tableData="tableData" :column="column" @pagination="pagination" key="tableData" :page="page"
          :tableLoading="tableLoading"></lims-table>
        <lims-table :tableData="tableData" :column="column"
                    @pagination="pagination" key="tableData"
                    :page="page" :tableLoading="tableLoading"></lims-table>
      </div>
    </el-dialog>
    <DataComparison v-if="isShowDataCom" :comparisonData="comparisonData" :selectRow="selectRow" @goBack="goBack">
    </DataComparison>
    <DataComparison v-if="isShowDataCom" :comparisonData="comparisonData"
                    :selectRow="selectRow" @goBack="goBack"></DataComparison>
  </div>
</template>
@@ -95,20 +130,20 @@
  getRawProductAnalysisAllList,
  getRawProductAnalysisRawPass, getRawSupplierCompare
} from "@/api/statisticalCharts/dataAnalysis";
import { selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
import {selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder";
export default {
  name: "ItemInspectionAnalysis",
  // import 引入的组件需要注入到对象中才能使用
  components: { limsTable, Echarts, DataComparison },
  components: {limsTable, Echarts, DataComparison},
  data() {
    // 这里存放数据
    return {
      selectChangeRows: [], // 选中的数据
      groupTypeList: [
        { label: '样品', value: '0' },
        { label: '同一厂家, 同一型号, 不同批次', value: '1' },
        { label: '同一型号, 不同厂家', value: '2' },
        {label: '样品', value: '0'},
        {label: '同一厂家, 同一型号, 不同批次', value: '1'},
        {label: '同一型号, 不同厂家', value: '2'},
      ],
      itemNames: [], // 检验项名称
      itemNamesList: [],
@@ -206,15 +241,15 @@
          label: '样品型号',
          minWidth: '300px',
          prop: 'sampleModel'
        }, {
        },{
          label: '下发时间',
          minWidth: '120px',
          prop: 'sendTime'
        }, {
        },{
          label: '抵达的采购数量',
          minWidth: '130px',
          prop: 'qtyArrived'
        }, {
        },{
          label: '单位',
          minWidth: '120px',
          prop: 'buyUnitMeas'
@@ -241,17 +276,17 @@
      tableData: [],
      tableLoading: false,
      column: [
        { label: '样品编号', prop: 'sampleCode' },
        { label: '样品名称', prop: 'sample' },
        { label: '检验项分类', prop: 'inspectionItemClass' },
        { label: '检验项', prop: 'inspectionItem' },
        { label: '检验子项', prop: 'inspectionItemSubclass' },
        { label: '单位', prop: 'unit' },
        { label: '样品型号', prop: 'model' },
        { label: '条件', prop: 'radius' },
        { label: '电缆标识', prop: 'cableTag' },
        { label: '试验要求', prop: 'tell' },
        { label: '检验结果', prop: 'lastValue' },
        {label: '样品编号', prop: 'sampleCode'},
        {label: '样品名称', prop: 'sample'},
        {label: '检验项分类', prop: 'inspectionItemClass'},
        {label: '检验项', prop: 'inspectionItem'},
        {label: '检验子项', prop: 'inspectionItemSubclass'},
        {label: '单位', prop: 'unit'},
        {label: '样品型号', prop: 'model'},
        {label: '条件', prop: 'radius'},
        {label: '电缆标识', prop: 'cableTag'},
        {label: '试验要求', prop: 'tell'},
        {label: '检验结果', prop: 'lastValue'},
        {
          dataType: 'tag',
          label: '结果判定',
@@ -274,16 +309,16 @@
              return 'danger'
            } else if (params == 3) {
              return ''
            } else {
            }  else {
              return null
            }
          }
        }
      ],
      page: {
        total: 0,
        size: 10,
        current: 1
        total:0,
        size:10,
        current:1
      },
      currentRow: {},
      isShowDataCom: false,
@@ -296,7 +331,7 @@
  },
  // 方法集合
  methods: {
    getBarInfo(val) {
    getBarInfo (val) {
      if (val === '1') {
        if (!this.modelName || !this.supplierName) {
          this.$message.warning('型号或供应商不能为空')
@@ -336,12 +371,10 @@
          return
        }
        for (let i = 0; i < res.data.itemNames.length; i++) {
          this.echartsSeries.push({
            type: 'line', label: {
          this.echartsSeries.push({type: 'line', label: {
              show: true,
              position: 'top'
            },
          })
            },})
        }
        this.dataset.dimensions = this.HaveJson(res.data.itemNames)
        this.dataset.dimensions.unshift('product')
@@ -366,17 +399,15 @@
          return
        }
        for (let i = 0; i < res.data.itemNames.length; i++) {
          this.echartsSeries1.push({
            type: 'line', tooltip: {
          this.echartsSeries1.push({type: 'line',tooltip: {
              valueFormatter: function (value) {
                return value + '%';
              }
            }, label: {
            },label: {
              show: true,
              position: 'top',
              formatter: (params) => params.value[params.dimensionNames[params.encode.y[0]]] + '%'
            },
          })
            },})
        }
        this.dataset1.dimensions = this.HaveJson(res.data.itemNames)
        this.dataset1.dimensions.unshift('product')
@@ -392,7 +423,7 @@
    },
    // 查询回调
    refreshTable(row) {
      selectSampleAndProductByOrderId({ id: row.id, ...this.page }).then(res => {
      selectSampleAndProductByOrderId({id: row.id, ...this.page}).then(res => {
        this.tableLoading = false
        if (res.code === 200) {
          this.tableData = res.data.records
@@ -402,11 +433,11 @@
        this.tableLoading = false
      })
    },
    pagination(page) {
    pagination (page) {
      this.page.size = page.limit
      this.refreshTable(this.currentRow)
    },
    changeData() {
    changeData () {
      if (this.datePicker !== null && this.datePicker.length > 0) {
        this.beginDate = this.datePicker[0] + ' 00:00:00'
        this.endDate = this.datePicker[1] + ' 23:59:59'
@@ -418,7 +449,7 @@
      this.getBar1()
      this.getTableData()
    },
    getTableData() {
    getTableData () {
      this.editLoading = true
      const params = {
        beginDate: this.beginDate,
@@ -436,7 +467,7 @@
      })
    },
    // 获取检验项下拉框
    getItemList() {
    getItemList () {
      this.selectLoading = true
      this.itemNamesList = []
      const params = {
@@ -459,10 +490,10 @@
        this.selectLoading = false
      })
    },
    goBack() {
    goBack () {
      this.isShowDataCom = false
    },
    openShowData() {
    openShowData () {
      if (this.selectChangeRows.length !== 5) {
        this.$message.warning('请选择5条数据')
        return
@@ -489,7 +520,7 @@
        this.isShowDataCom = true
      })
    },
    handleSelectionChange(val) {
    handleSelectionChange (val) {
      this.selectChangeRows = val
    },
  },
@@ -497,7 +528,7 @@
</script>
<style scoped>
.inspection-card {
.inspection-card{
  width: 100%;
  margin-top: 10px;
}
src/views/statisticalCharts/qualificationRateStatistics/index.vue
@@ -11,9 +11,18 @@
      <el-col :span="20">
        <el-form ref="entity" size="small" :inline="true">
          <el-form-item style="width: 20%;">
            <el-date-picker v-model="datePicker" end-placeholder="结束日期" format="yyyy-MM-dd" placeholder="选择日期"
              range-separator="至" size="small" start-placeholder="开始日期" type="daterange" style="width: 100%;"
              value-format="yyyy-MM-dd" @change="changeDatePicker">
            <el-date-picker
              v-model="datePicker"
              end-placeholder="结束日期"
              format="yyyy-MM-dd"
              placeholder="选择日期"
              range-separator="至"
              size="small"
              start-placeholder="开始日期"
              type="daterange"
              style="width: 100%;"
              value-format="yyyy-MM-dd"
              @change="changeDatePicker">
            </el-date-picker>
          </el-form-item>
          <el-form-item label="样品名称" prop="sampleName">
@@ -23,8 +32,7 @@
            <el-input v-model="modelName" clearable placeholder="请输入型号" size="small" @change="changeDate"></el-input>
          </el-form-item>
          <el-form-item label="供应商名称" prop="supplierName">
            <el-input v-model="supplierName" clearable placeholder="请输入供应商名称" size="small"
              @change="changeDate"></el-input>
            <el-input v-model="supplierName" clearable placeholder="请输入供应商名称" size="small" @change="changeDate"></el-input>
          </el-form-item>
        </el-form>
      </el-col>
@@ -32,24 +40,39 @@
    <el-row :gutter="20">
      <el-col :span="8">
        <div class="pie-card">
          <div class="title">原辅料合格率</div>
          <span class="data">{{ passRate }}</span>
          <Echarts ref="chart" :legend="pieLegend" :series="materialPieSeries" :tooltip="pieTooltip"
            style="height: 36vh;"></Echarts>
          <div class="title">原材料合格率</div>
          <span class="data">{{passRate}}</span>
          <Echarts ref="chart"
                   :legend="pieLegend"
                   :series="materialPieSeries"
                   :tooltip="pieTooltip"
                   style="height: 36vh;"></Echarts>
        </div>
      </el-col>
      <el-col :span="8">
        <div class="pie-card">
          <div class="title"><span style="color: #F56C6C">本月</span>检验类型数量</div>
          <Echarts ref="chart" :chartStyle="chartStyle2" :legend="pieLegend" :series="materialPieSeries1"
            :tooltip="pieTooltip" style="height: 36vh;"></Echarts>
          <Echarts ref="chart"
                   :chartStyle="chartStyle2"
                   :legend="pieLegend"
                   :series="materialPieSeries1"
                   :tooltip="pieTooltip"
                   style="height: 36vh;"></Echarts>
        </div>
      </el-col>
      <el-col :span="8">
        <div class="pie-card">
          <div class="title">原辅料<span style="color: #F56C6C">本月</span>与<span style="color: #F56C6C">上月</span>合格率对比</div>
          <Echarts ref="chart" :barColors="barColors2" :chartStyle="chartStyle" :grid="grid" :legend="barLegend"
            :series="barSeries" :tooltip="tooltip" :xAxis="xAxis1" :yAxis="yAxis1" style="height: 36vh;"></Echarts>
          <div class="title">原材料<span style="color: #F56C6C">本月</span>与<span style="color: #F56C6C">上月</span>合格率对比</div>
          <Echarts ref="chart"
                   :barColors="barColors2"
                   :chartStyle="chartStyle"
                   :grid="grid"
                   :legend="barLegend"
                   :series="barSeries"
                   :tooltip="tooltip"
                   :xAxis="xAxis1"
                   :yAxis="yAxis1"
                   style="height: 36vh;"></Echarts>
        </div>
      </el-col>
    </el-row>
@@ -57,9 +80,17 @@
      <el-col :span="24">
        <div class="inspection-card">
          <div class="title">合格率</div>
          <Echarts ref="chart" :barColors="barColors" :grid="grid" :legend="legend" :lineColors="lineColors"
            :options="echartsOptions" :series="echartsSeries" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis"
            style="height: 40vh;"></Echarts>
          <Echarts ref="chart"
                   :barColors="barColors"
                   :grid="grid"
                   :legend="legend"
                   :lineColors="lineColors"
                   :options="echartsOptions"
                   :series="echartsSeries"
                   :tooltip="tooltip"
                   :xAxis="xAxis"
                   :yAxis="yAxis"
                   style="height: 40vh;"></Echarts>
        </div>
      </el-col>
    </el-row>
@@ -78,7 +109,7 @@
export default {
  name: "QualificationRateStatistics",
  // import 引入的组件需要注入到对象中才能使用
  components: { Echarts },
  components: {Echarts},
  data() {
    // 这里存放数据
    return {
@@ -158,7 +189,7 @@
        containLabel: true
      },
      legend: {
        data: ['总数', '合格率']
        data: ['总数','合格率']
      },
      tooltip: {
        trigger: 'axis',
@@ -324,7 +355,7 @@
        this.xAxis[0].data = xAxis
      })
    },
    // 获取原辅料合格率图表数据
    // 获取原材料合格率图表数据
    getRawPass() {
      const params = {
        dateType: this.dateType,
@@ -362,13 +393,13 @@
        this.barSeries[0].data = barData
      })
    },
    changeDate() {
    changeDate () {
      this.getBar()
      this.getRawPass()
      // this.getOrderType()
      // this.getPassRateCom()
    },
    changeDatePicker(val) {
    changeDatePicker (val) {
      if (val) {
        this.beginDate = val[0] + ' 00:00:00'
        this.endDate = val[1] + ' 23:59:59'
@@ -389,18 +420,15 @@
.title {
  padding: 10px 0 0 20px;
}
.table {
  padding: 0 10px 10px;
}
.pie-card {
  width: 100%;
  background: #FFFFFF;
  margin-top: 10px;
  position: relative;
}
.data {
  position: absolute;
  font-size: 20px;
@@ -409,8 +437,7 @@
  top: 42%;
  z-index: 1;
}
.inspection-card {
.inspection-card{
  width: 100%;
  background: #FFFFFF;
  margin-top: 10px;