XiaoRuby
2023-08-26 7264eb37b4332ae414ed1bb7a2bad22a5e27ddb2
Merge remote-tracking branch 'origin/master'
已修改17个文件
已添加1个文件
803 ■■■■■ 文件已修改
.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/experiment/planAssignments.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inspection/commisioninspection.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/standardLibrary.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/experiment/checkTheReport/index.vue 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/chart/work/index.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/checkTheReport/index.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/inspectionApplication/Viewdetails/index.vue 177 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/inspectionApplication/index.vue 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/reportAuditing/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inspectionManagement/commissionInspection/addCommision.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inspectionManagement/commissionInspection/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/standardLibrary/index.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -2,4 +2,4 @@
ENV = 'development'
# base api
VUE_APP_BASE_API =  'http://localhost:1234/'
VUE_APP_BASE_API =  'http://192.168.110.107:1234/'
package.json
@@ -25,6 +25,7 @@
    "nprogress": "0.2.0",
    "path-to-regexp": "2.4.0",
    "postcss-pxtorem": "^5.1.1",
    "print-js": "^1.6.0",
    "vue": "2.6.10",
    "vue-clipboard2": "^0.3.3",
    "vue-router": "3.0.6",
src/api/experiment/planAssignments.js
@@ -30,4 +30,28 @@
    method: 'post',
    data
  })
}
}
//检验单详情
export function selectInspectsListById(params){
  return request({
    url: '/inspection/selectInspectsListById',
    method: 'get',
    params
  })
}
//选择责任项目检验人
export function selectUser(params){
  return request({
    url: '/inspection/selectUser',
    method: 'get',
    params
  })
}
// å§”托检验列表
export function getCommisionList(params) {
  return request({
    url: '/link-basic-table/page',
    method: 'get',
    params
  })
}
src/api/inspection/commisioninspection.js
@@ -25,7 +25,7 @@
  })
}
//规格型号
export function getModelSpecification(params){
  return request({
    url: '/link-basic/specification',
src/api/standardLibrary.js
@@ -7,6 +7,24 @@
  })
}
//获取所有版本
export function getVersion(params){
  return request({
    url: '/product/chooseVersion',
    method: 'get',
    params
  })
}
//添加同一个型号的其他版本
export function addVersion(params){
  return request({
    url: '/product/addVersion',
    method: 'post',
    params
  })
}
// èŽ·å–æ‰€æœ‰é¡¹ç›®
export function getProductList(params) {
  return request({
src/components/experiment/checkTheReport/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
<template>
    <div class="preview-main">
        <div class="logo">
            <img :src="logoSrc" />
        </div>
        <div class="center">
            <h1>原材料检测报告</h1>
            <table>
                <tr>
                    <td>材料名称</td>
                    <td colspan="5"></td>
                </tr>
                <tr>
                    <td>规格型号</td>
                    <td colspan="2"></td>
                    <td>材料厂家</td>
                    <td colspan="2"></td>
                </tr>
                <tr>
                    <td>材料批号</td>
                    <td colspan="2"></td>
                    <td>检测编号</td>
                    <td colspan="2"></td>
                </tr>
                <tr>
                    <td>检测依据</td>
                    <td colspan="2"></td>
                    <td>检测类别</td>
                    <td colspan="2"></td>
                </tr>
                <tr>
                    <td>序号</td>
                    <td>检验项目</td>
                    <td>单位</td>
                    <td>标准要求</td>
                    <td>检测结果</td>
                    <td>单项判断</td>
                </tr>
                <tr v-for="item in 15" :key="item">
                    <td>{{item}}</td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td colspan="6">检验结论:</td>
                </tr>
                <tr>
                    <td colspan="6">
                        æ³¨ï¼šâ€œâˆšâ€è¡¨ç¤ºè¯¥é¡¹ç›®åˆæ ¼ï¼Œâ€œÃ—”表示该项目不合格“—”表示该项目不要求检测。
                    </td>
                </tr>
            </table>
            <el-row class="date-group" :gutter="20">
                <el-col :span="8">检测、日期:<span>2023-08-25</span></el-col>
                <el-col :span="8">审核、日期:<span>2023-08-25</span></el-col>
                <el-col :span="8">批准、日期:<span>2023-08-25</span></el-col>
            </el-row>
            <p class="footer">
                <span>编号:</span><span>ZTT/ICSRCP18-003</span>
                <span> å‘行日期:</span><span>2023-08-25</span>
                <span> å‘行部门:</span><span>质量部</span>
                <span> ä¿å­˜æœŸé™:</span><span>长期</span>
            </p>
        </div>
    </div>
</template>
<script>
export default({
    data() {
        return {
            logoSrc : require("@/assets/404_images/logo.png"),
        }
    }
})
</script>
<style scoped lang="scss">
     .preview-main{
        margin: 0;
        padding: 0;
        width:90%;
        margin-left: 5%;
        .logo{
            img{
                width: 150px;
                height: 60px;
            }
        }
        .center{
            width: 100%;
            h1{
                width:100%;
                font-family: "微软雅黑" !important;
                text-align: center;
            }
            table{
                width:100%;
                height:100vh;
                border-collapse: collapse;
                font-size: 18px;
            }
            table,tr,th,td{
                border: 2px solid black;
            }
            tr,td,th{
                padding: 15px 20px;
            }
            .date-group .el-col{
                text-align: center;
                padding: 50px 0px;
                font-size: 18px;
            }
            .footer{
                margin: 0;
                padding: 0;
                width:90%;
                margin-left: 5%;
                color: gray;
                text-align: center;
                margin-top: 250px;
            }
        }
     }
</style>
src/layout/components/Navbar.vue
@@ -24,7 +24,7 @@
          </el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
      <el-dialog title="修改密码" :visible.sync="dialogFormVisible" :append-to-body="true">
      <el-dialog title="修改密码" :visible.sync="dialogFormVisible" :append-to-body="true" width="40%">
        <el-form :model="form">
          <el-form-item label="旧密码" :label-width="formLabelWidth">
            <el-input v-model="form.oldPwd" autocomplete="off"></el-input>
src/main.js
@@ -20,6 +20,7 @@
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
import print from 'print-js'
import '@/icons' // icon
import '@/permission' // permission control
src/router/index.js
@@ -437,7 +437,6 @@
      {
        path: 'message',
        name: 'Message',
        // hidden: true,
        component: () => import('@/views/message/message/index'),
        // meta: { title: '我的消息', icon: 'table' }
      },
src/utils/request.js
@@ -48,7 +48,6 @@
    // if the custom code is not 20000, it is judged as an error.
    if (res.code !== 200) {
      console.log(res.message || 'Error')
      // Message({
      //   message: res.message || 'Error',
      //   type: 'error',
src/views/chart/work/index.vue
@@ -90,12 +90,7 @@
        },
      }
    },
    mounted(){
      // this.initLeaderStatiChart("");
      this.initLeaderTimelyChart("leaderTimely");
      this.initTesterStatiChart("testerStati");
      this.initTesterTimelyChart("testerTimely");
    },
    mounted(){},
    methods: {
      async queryData(){
        let date = this.formInline.date;
@@ -182,7 +177,7 @@
          series: [
            {
              name: '已完成',
              barWidth: '20%',
              barWidth: '30%',
              type: 'bar',
              stack: 'one',
              emphasis: emphasisStyle,
@@ -207,22 +202,25 @@
        option && myChart.setOption(option);
      },
      initTesterStatiChart(id,executeMater){
        console.log("qqq----",executeMater);
        var chartDom = document.getElementById(id);
        var myChart = echarts.init(chartDom);
          window.addEventListener('resize', function() {
          myChart.resize();
        });
        var option;
        let max = 0;
        let xAxisData = [];
        let data1 = [];
        let data2 = [];
        // for(let i=0;i<executeMater.length;i++){
        //   xAxisData.push(executeMater[i].name);
        //   data1.push(executeMater[i].finsh);
        //   data2.push(executeMater[i].unfinsh);
        // }
        for(let i=0;i<executeMater.length;i++){
          xAxisData.push(executeMater[i].name);
          data1.push(executeMater[i].finsh);
          data2.push(executeMater[i].unfinsh);
          let sum = executeMater[i].finsh + executeMater[i].unfinsh;
          if(sum > max){
            max = sum;
          }
        }
        var emphasisStyle = {
          itemStyle: {
            shadowBlur: 10,
@@ -244,8 +242,8 @@
          },
          yAxis: {
            min: 0,
            max: 60,
            interval: 10,
            max: max,
            interval: 1,
          },
          grid: {
            bottom: 100
@@ -255,6 +253,7 @@
              name: '数据1',
              type: 'bar',
              stack: 'one',
              barWidth: '30%',
              emphasis: emphasisStyle,
              data: data1,
              itemStyle:{
@@ -265,6 +264,7 @@
              name: '数据2',
              type: 'bar',
              stack: 'one',
              barWidth: '30%',
              emphasis: emphasisStyle,
              data: data2,
              itemStyle:{
@@ -282,6 +282,18 @@
          myChart.resize();
        });
        var option;
        let xAxisData = [];
        let data1 = [];
        let data2 = [];
        let yAxisData1 = 0;
        for(let i=0;i<dutyTimely.length;i++){
          xAxisData.push(dutyTimely[i].name);
          data1.push(dutyTimely[i].total);
          data2.push(dutyTimely[i].timely);
          if(dutyTimely[i].total > yAxisData1){
            yAxisData1 = dutyTimely[i].total;
          }
        }
        option = {
          tooltip: {
            trigger: 'axis',
@@ -299,13 +311,10 @@
            {
              name: '姓名',
              type: 'category',
              data: ['沐秋',],
              data: xAxisData,
              axisPointer: {
                type: 'shadow'
              },
              itemStyle: {
                top: '20px'
              }
            }
          ],
          yAxis: [
@@ -313,7 +322,7 @@
              type: 'value',
              name: '数量',
              min: 0,
              max: 10,
              max: yAxisData1,
              interval: 1,
              axisLabel: {
                formatter: '{value}'
@@ -334,13 +343,13 @@
            {
              name: '样品数',
              type: 'bar',
              barWidth: '20%',
              barWidth: '30%',
              tooltip: {
                valueFormatter: function (value) {
                  return value;
                }
              },
              data: [4.0],
              data: data1,
              itemStyle: {
                color: '#9fceff'
              }
@@ -348,19 +357,19 @@
            {
              name: '完成及时率',
              type: 'line',
              yAxisIndex: 1,
              tooltip: {
                valueFormatter: function (value) {
                  return value + ' %';
                }
              },
              data: [7.5],
              data: [{value:20},{value:40}],
              itemStyle: {
                color: '#d2eec5'
              }
            },
          ]
        };
        option && myChart.setOption(option);
      },
      initTesterTimelyChart(id,executeTimely){
@@ -370,6 +379,18 @@
          myChart.resize();
        });
        var option;
        let xAxisData = [];
        let data1 = [];
        let data2 = [];
        let yAxisData1 = 0;
        for(let i=0;i<executeTimely.length;i++){
          xAxisData.push(executeTimely[i].name);
          data1.push(executeTimely[i].total);
          data2.push(executeTimely[i].timely);
          if(executeTimely[i].total > yAxisData1){
            yAxisData1 = executeTimely[i].total;
          }
        }
        option = {
          tooltip: {
            trigger: 'axis',
@@ -387,7 +408,7 @@
          xAxis: [
            {
              type: 'category',
              data: ["","",""],
              data: xAxisData,
              axisPointer: {
                type: 'shadow'
              }
@@ -398,8 +419,8 @@
              type: 'value',
              name: '',
              min: 0,
              max: 50,
              interval: 5,
              max: yAxisData1,
              interval: 1,
              axisLabel: {
                formatter: '{value}'
              }
@@ -419,12 +440,13 @@
            {
              name: '项目数',
              type: 'bar',
              barWidth: '30%',
              tooltip: {
                valueFormatter: function (value) {
                  return value ;
                }
              },
              data: [2.0, 4.9, 7.0],
              data: data1,
              itemStyle: {
                color: '#5087ec'
              }
@@ -438,7 +460,7 @@
                  return value + ' %';
                }
              },
              data: [2.0, 2.2, 3.3],
              data: data2,
              itemStyle: {
                color: '#68bbc4'
              }
src/views/experiment/checkTheReport/index.vue
@@ -51,6 +51,18 @@
          >
        </div>
      </div>
      <el-dialog
        top="10vh"
        title="报告预览"
        :visible.sync="dialogVisible"
        width="60%">
        <span slot="footer" class="dialog-footer">
          <el-button type="primary" size="small" @click="printFun()">打印</el-button>
        </span>
        <div class="printStyle">
          <preview id="printDiv"></preview>
        </div>
      </el-dialog>
      <div class="table-box">
        <el-table
          ref="reportTable"
@@ -143,10 +155,9 @@
              <el-button
                type="text"
                size="small"
                @click="handleClick(scope.row)"
                >预览</el-button
                @click="previewFun(scope.row)"
                >查看报告</el-button
              >
              <el-button type="text" size="small">打印</el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -169,6 +180,8 @@
<script>
import { selectAllReport } from "@/api/experiment/checkTheReport";
import Preview from "@/components/experiment/checkTheReport/index.vue";
import PrintJS from 'print-js'
export default {
  data() {
    return {
@@ -183,12 +196,33 @@
      total: 0,
      pageSize: 10,
      checked: true,
      dialogVisible: false,
    };
  },
  created() {
    this.getData();
  },
  mounted(){
    // this.dialogVisible = true;
  },
  components:{
    Preview
  },
  methods: {
    //预览按钮
    previewFun(){
      this.dialogVisible = true;
    },
    //打印按钮
    printFun(){
        PrintJS({
          printable: "printDiv",
          type: "html",
          // header: "原材料检测报告",
          targetStyles: ["*"],
          ignoreElements: ["no-ignore"],
        });
    },
    // çŠ¶æ€æŒ‰é’®
    handleRadioChange() {
      this.getData();
@@ -227,6 +261,7 @@
      };
      const { data } = await selectAllReport(params);
      this.reportTable = data.row;
      console.log(data.row);
      this.total = data.total;
    },
  },
@@ -280,5 +315,14 @@
      margin: 10px 0;
    }
  }
  .printStyle{
    overflow: scroll;
    height:600px;
    .el-button{
      position: absolute;
      top: 10vh;
      left: 90%;
    }
  }
}
</style>
src/views/experiment/inspectionApplication/Viewdetails/index.vue
@@ -12,7 +12,7 @@
                <el-form ref="form" :model="searchData" label-width="80px">
                    <el-col :span="6">
                        <el-form-item label="来料日期:" >
                            <el-input :disabled="true" v-model="searchData.from_time"></el-input>
                            <el-input :disabled="true" v-model="searchData.formTime"></el-input>
                            
                        </el-form-item>
                    </el-col>
@@ -23,7 +23,7 @@
                    </el-col>                    
                    <el-col :span="6">
                        <el-form-item label="产品编号:">
                            <el-input :disabled="true" v-model="searchData.mcode"></el-input>
                            <el-input :disabled="true" v-model="searchData.code"></el-input>
                        </el-form-item> 
                    </el-col>
                </el-form>
@@ -60,7 +60,7 @@
                    <el-col :span="6">
                        <el-form-item label="登记日期:">
                            <el-input :disabled="true" v-model="searchData.end_time"></el-input>
                            <el-input :disabled="true" v-model="searchData.endTime"></el-input>
                        </el-form-item>
                    </el-col>
                    
@@ -86,7 +86,7 @@
        <div>        
            <el-card style="margin: 10px;">
                <el-table
                    :data="tableData"
                    :data="insProducts"
                    border      
                    style="width: 100%">
                    <el-table-column
@@ -95,52 +95,37 @@
                    width="50">
                    </el-table-column>
                    <el-table-column
                        prop="date"
                        prop="name"
                        label="项目"
                        width="180">
                    </el-table-column>
                    <el-table-column
                        prop="name"
                        prop="unit"
                        label="单位"
                        width="180">
                    </el-table-column>
                    <el-table-column
                        prop="kk"
                        prop="internal"
                        label="标准值">
                    </el-table-column>
                    <el-table-column
                        prop="zz"
                        prop="required"
                        label="内控值">
                    </el-table-column>
                    <el-table-column
                        prop="oo"
                        wight="200"
                        label="经验人">
                        <template>
                            <el-select v-model="value" placeholder="黄晓明">
                                <el-option
                                    v-for="item in cities"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                                    <span style="float: left">{{ item.label }}</span>
                                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>
                                    </el-option>
                    <el-table-column prop="userName" label="经验人">
                        <template slot-scope="scope">
                            <el-select v-model="value" size="small" slot="append" style="width: 220px;">
                            <el-option v-for="item in ZERENren" :key="item.id" :label="item.name"  :value="item.name"></el-option>
                            </el-select>
                        </template>
                    </el-table-column>
                    <el-table-column
                        prop="pp"
                        prop="inspectionMaterialId"
                        label="实验设备">
                        <template>
                            <el-select v-model="value" placeholder="拉力机">
                                <el-option
                                v-for="item in cities"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value">
                                </el-option>
                            </el-select>
                            <!-- <el-select v-model="scope.row.checker" size="small" slot="append" style="width: 260px;">
                            <el-option v-for="item in checkeroptions" :key="item.value" :label="item.label">{{ item.label }}</el-option>
                            </el-select> -->
                        </template>
                    </el-table-column>
                </el-table>
@@ -151,126 +136,38 @@
</div>       
</template>
<script>
  import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments'
  import { selectInspectsListById,selectUser} from '@/api/experiment/planAssignments'
export default {
    data(){
        return {
            searchData:{
                from_time:'',
                supplier:'',
                mcode:'',
                name:'',
                specifications:'',
                unit:'',
                num:'',
                userName:'',
                end_time:'',
            },
            value:{},
            cities:[{
                value: 'Beijing',
                label: '黄小明'
                }, {
                value: 'Shanghai',
                label: '黄小明'
                }, {
            }],
            tableData:[{
            date: '导线',
            name: 'mm',
            kk:'30.0',
            zz:'30.0',
            oo:'黄晓明',
            pp:'拉力机',
          },{
            date: '导线',
            name: 'mm',
            kk:'30.0',
            zz:'30.0',
            oo:'黄晓明',
            pp:'拉力机',
          },{
            date: '导线',
            name: 'mm',
            kk:'30.0',
            zz:'30.0',
            oo:'黄晓明',
            pp:'拉力机',
          },{
            date: '导线',
            name: 'mm',
            kk:'30.0',
            zz:'30.0',
            oo:'黄晓明',
            pp:'拉力机',
          },{
            date: '导线',
            name: 'mm',
            kk:'30.0',
            zz:'30.0',
            oo:'黄晓明',
            pp:'拉力机',
          }],
          currentPage:1,
          pageSize:8,
          id:''
            searchData:{ },
            insProducts:[],
            uu:'',
            value:''
        }
    },
    created(){
        console.log(this.$route.query.icode);
        this.id = this.$route.query.icode;
        this.selectInspectsList()
        this.uu = this.$route.query.id;
        this.selectInspectsListById()
        this.selectUser()
    },
    methods: {
      async goback(){
        //返回
      async goback(){
        this.$router.push({name:'inspectionApplication'})
      },
      async selectInspectsList() {
        // èŽ·å–åˆ†é¡µåˆ—è¡¨
        const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage ,message:this.id})
        // this.inspectionTable = data
        console.log(res)
    //     res.data.forEach((item) => {
    //       var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"]
    //       var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"]
    //       var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"]
    //       var checkdate = startTime + '~' + endTime
    //       var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%m-%d')"]
    //       item['formTime'] = formTime // æ¥æ–™æ—¥æœŸ
    //       item['checkdate'] = checkdate // æ£€éªŒæ—¥æœŸ
    //       item['createTime'] = createTime // ç™»è®°æ—¥æœŸ
    //   })
        this.searchData.mcode = res.data.row[0].mcode
        this.searchData.supplier = res.data.row[0].supplier
        this.searchData.from_time = res.data.row[0]["DATE_FORMAT(`form_time`,'%Y-%m-%d')"]
        this.searchData.name = res.data.row[0].name
        this.searchData.specifications = res.data.row[0].specifications
        this.searchData.unit = res.data.row[0].unit
        this.searchData.num = res.data.row[0].num
        this.searchData.end_time = res.data.row[0]["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"]
        this.searchData.userName = res.data.row[0].userName
        const data = res.data.row
        data.forEach((item) => {
          var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"]
          var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"]
          var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"]
          var checkdate = startTime + '~' + endTime
          var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%m-%d')"]
          item['formTime'] = formTime // æ¥æ–™æ—¥æœŸ
          item['checkdate'] = checkdate // æ£€éªŒæ—¥æœŸ
          item['createTime'] = createTime // ç™»è®°æ—¥æœŸ
      })
        this.inspectionTable = data
        this.total = res.data.total
      //检验单责任人
      async selectUser(){
        const res = await selectUser()
        this.ZERENren = res.data
        // console.log(this.ZERENren);
      },
      //检验单表
      async selectInspectsListById() {
        const res = await selectInspectsListById({id:this.uu})
        this.searchData = res.data
        this.insProducts = res.data.insProducts
      }
}
}
</script>
src/views/experiment/inspectionApplication/index.vue
@@ -82,7 +82,7 @@
                  label="检验类型"
                  min-width="80px">
                  <template slot-scope="scope">
                    <div v-if="scope.row.type === 0" ><span>原材料检验</span></div>
                    <div v-if="scope.row.type === 0" ><span >原材料检验</span></div>
                    <div v-if="scope.row.type === 1" ><span>委托检验</span></div>
                    <div v-if="scope.row.type === 2" ><span>成品检验</span></div>
                  </template>
@@ -180,16 +180,17 @@
              title="新增检验单"
              :visible.sync="checkTypeVisible"
              width="50%"
                            top="10vh"
            >
              <div class="check-box">
                <el-radio-group v-model="type" @change="handleRadioChange">
                  <el-radio :label="0" border >原材料检验</el-radio>
                  <el-radio :label="1" border>委托检验</el-radio>
                  <el-radio :label="2" border>成品检验</el-radio>
                <el-radio-group v-model="type" @click.native="handleRadioChange">
                  <el-radio :style="`background-color: ${type==0?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="0" border>原材料检验</el-radio>
                  <el-radio :style="`background-color: ${type==1?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="1" border>委托检验</el-radio>
                  <el-radio :style="`background-color: ${type==2?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="2" border>成品检验</el-radio>
                </el-radio-group>
              </div>
              <div v-if="type === 0 || type === ''">
                <el-form :model="infoForm" ref="infoForm" class="checkTypeForm" label-position="top" label-width="200px" size="mini">
              <div v-if="type === 0">
                <el-form :model="infoForm" ref="infoForm" class="checkTypeForm" label-position="top" label-width="200px" size="medium">
                  <el-row :gutter="100">
                      <el-col :span="10">
                          <el-form-item label="来料日期:">
@@ -367,11 +368,86 @@
              </div>
              <span slot="footer" class="dialog-footer">
                <el-button @click="checkTypeVisible = false">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="addInspection">ç¡® å®š</el-button>
                <!-- <el-button type="primary" @click="addInspection">ç¡® å®š</el-button> -->
                <el-button type="primary" @click="QUEding">ç¡® å®š</el-button>
              </span>
            </el-dialog>
          </div>
        </div>
        <!-- ç¡®å®šè·³è½¬åŸºæœ¬åº“弹窗 -->
        <el-dialog
              title="标准库"
              :visible.sync="Standardframe"
              width="48%"
              >
              <!-- <el-form :model="form">
                <el-form-item label="请选择审核结果:" :label-width="formLabelWidth">
                </el-form-item>
              </el-form> -->
              <!-- <div slot="footer" class="dialog-footer"> -->
                <el-table
                    :data="tableData"
                    style="width: 100%; margin-bottom: 20px"
                    row-key="name"
                    border
                    height="calc(100vh - 250px)"
                    default-expand-all
                    ref="multipleTable"
                    :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
                  >
                    <el-table-column type="selection" label="序号"> </el-table-column>
                    <el-table-column
                      type="index"
                      width="50px"
                      label="序号"
                    ></el-table-column>
                    <el-table-column label="项目名称" sortable>
                      <template scope="scope">
                        <el-tag
                          ><div
                            class="firstDiv"
                            :style="`color: ${
                              scope.row.code == '[1]' ? '#16a7ff' : '#58c173'
                            }`"
                          >
                            {{ scope.row.code == "[1]" ? "01" : "02" }}
                          </div>
                          <span style="color: black">{{ scope.row.name }}</span></el-tag
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      prop="unit"
                      label="单位"
                      sortable
                    ></el-table-column>
                    <el-table-column label="标准值" sortable>
                      <template scope="scope">
                        <el-input
                          v-if="scope.row.edit === true || scope.row.code === '[2]'"
                          @blur="requiredOnfocus(scope)"
                          v-model="scope.row.required"
                          placeholder="请输入标准值"
                        ></el-input>
                      </template>
                    </el-table-column>
                    <el-table-column prop="internal" label="内控值" sortable>
                      <template scope="scope">
                        <el-input
                          v-if="scope.row.edit === true || scope.row.code === '[2]'"
                          @blur="requiredOnfocus(scope)"
                          v-model="scope.row.internal"
                          placeholder="请输入内控值"
                        ></el-input>
                      </template>
                    </el-table-column>
                  </el-table>
              <!-- </div> -->
            </el-dialog>
        <!-- åŽŸææ–™æ£€éªŒæ¨¡æ€æ¡† -->
        <el-dialog
        title="原材料检验"
@@ -491,7 +567,7 @@
                />
                <el-table-column
                  prop="formTime"
                  label="来料日期"
                  label="委托bian'ha"
                  min-width="10%"
                />
                <el-table-column
@@ -534,13 +610,12 @@
      </template>
      <template v-else>
        <router-view />
      </template>
    </div>
  </template>
  <script>
  import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments'
  import { selectInspectsList, selectAll, addInspect,getCommisionList} from '@/api/experiment/planAssignments'
  export default {
    data() {
      return {
@@ -588,7 +663,7 @@
          amount: '',
          checkdate: []
        },
        infoForm:'',
        infoForm:{},
        commisionSelection:{
          entrust_coding: '',
          entrusted: '',
@@ -629,10 +704,12 @@
        pageSize: 8, // æ¯é¡µçš„æ•°æ®æ¡æ•°
        radioValue: '全部',
        checkTypeVisible: false,
        type: '', // é»˜è®¤ä¸é€‰ä¸­çš„状态
        type: 0, // é»˜è®¤ä¸é€‰ä¸­çš„状态
        rawmaterialVisible: false,
        commisionVisible: false,
        tmp: ''
        tmp: '',
        Standardframe: false,
                tableData: []
      }
    },
    watch: {
@@ -653,23 +730,20 @@
    },
    methods: {
      async handleClick(row){
        // console.log(item);
        // const res = await ddd({goodId:id})
        // this.$message({
        //   message: '恭喜你,这是一条成功消息',
        //   type: 'success'
        // });
        // console.log(res);
        this.inspectionTable = row;
        console.log(row.icode);
        this.icode = row.icode
        this.$router.push({name:'Viewdetails',query: {icode:row.icode}});
        this.id = row.id
        this.$router.push({name:'Viewdetails',query: {id:row.id}});
        this.selectInspectsList()
      },
      //委托检验
      async getCommisionList() {
        const res = await getCommisionList({pageNo:1,pageSize:10 })
        this.commisionTable = res.data
        console.log(this.commisionTable);
      },
      async selectInspectsList() {
        // èŽ·å–åˆ†é¡µåˆ—è¡¨
        const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage,message:this.icode})
        const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage,message:this.id})
        // this.inspectionTable = data
        // console.log(res.data.row)
        const data = res.data.row
@@ -699,7 +773,6 @@
          item['checkdate'] = checkdate // æ£€éªŒæ—¥æœŸ
          item['createTime'] = createTime // ç™»è®°æ—¥æœŸ
      })
      console.log('data:',data)
      this.inspectionTable = data
      if(this.searchData.type !== ''){
        if(this.searchData.state !== ''){
@@ -742,33 +815,29 @@
      this.infoForm = this.tmp
      this.rawmaterialVisible = false
    },
    async handleRadioChange(){
      if(this.type === 0){
        // åŽŸææ–™æŠ¥æ£€
        // this.rawmaterialVisible = true
        // const res = await selectAll({type: this.type})
        // var data = res.data
        // data.forEach((item)=>{
        //   var checkdate = []
        //   checkdate.push(item['createTime'])
        //   checkdate.push(item['updateTime'])
        //   item['checkdate'] = checkdate // æ£€éªŒæ—¥æœŸ
        // })
        this.$router.push({ name: 'ReportForInspection' });
      }else if(this.type === 1){
        // this.commisionVisible = true
        // const res = await selectAll({type: this.type})
        // var data = res.data
        // data.forEach((item)=>{
        //   var checkdate = []
        //   checkdate.push(item['startTime'])
        //   checkdate.push(item['endTime'])
        //   item['checkdate_'] = item['startTime'] + '~' + item['endTime']
        //   item['checkdate'] = checkdate // æ£€éªŒæ—¥æœŸ
        // })
        // this.commisionTable = res.data
        this.$router.push({ name: 'CommissionInspection' });
      }
    handleRadioChange(){
      setTimeout(()=>{
                if(this.type === 0){
                  // åŽŸææ–™æŠ¥æ£€
                  this.rawmaterialVisible = true
                  selectAll({type: this.type}).then(res=>{
                        var data = res.data
                        data.forEach((item)=>{
                          var checkdate = []
                          checkdate.push(item['createTime'])
                          checkdate.push(item['updateTime'])
                          item['checkdate'] = checkdate // æ£€éªŒæ—¥æœŸ
                        })
                        this.rawMaterialTable = res.data
                    })
                  // this.$router.push({ name: 'ReportForInspection' });
                }else if(this.type === 1){
                  this.commisionVisible = true
                  getCommisionList({pageNo:1,pageSize:10}).then(res=>{
                        this.commisionTable = res.data
                    })
                }
            },100)
    },
    // æ–°å¢žæ£€éªŒ
    async addInspection(){
@@ -811,7 +880,7 @@
          type: this.type,
          unit: this.finishedTable.unit })
      }
      this.type = ''
      this.type = 0
      this.checkTypeVisible = false
      this.$message({
          message: '添加成功!',
@@ -830,6 +899,10 @@
        console.log(`当前页: ${val}`)
        this.currentPage = val
        this.selectInspectsList()
      },
      //确定跳转
      QUEding(){
        this.Standardframe = true
      }
    }
  }
@@ -854,7 +927,7 @@
          }
          height: auto;
          font-size: 22px !important;
          padding: 20px 40px !important;
          padding: 40px 50px !important;
          ::v-deep  .el-radio__label{
            font-size: 22px !important;
            padding-left: 0px !important;
src/views/experiment/reportAuditing/index.vue
@@ -78,7 +78,7 @@
              </span>
            </template></el-table-column
          >
          <el-table-column
          <el-table-columne
            prop="materialName"
            label="样品名称"
            min-width="10%"
@@ -86,7 +86,7 @@
          <el-table-column prop="status" label="审批状态" min-width="8%" v-model="Auditconclusion">
            <template slot-scope="scope">
              <span>
                <el-tag type="warning">{{
                <el-tag :color="scope.row.status == 0 ? '' : 'rgb(187, 237, 221)'" type="warning">{{
                  scope.row.status == 0 ? "待通过" : "通过"
                }}</el-tag>
              </span>
@@ -109,7 +109,7 @@
              title="原始记录审核"
              :visible.sync="checkskipvisible"
              width="30%"
              >
              <el-form :model="form">
                <el-form-item label="请选择审核结果:" :label-width="formLabelWidth">
@@ -153,7 +153,7 @@
      reportTable: [],
      page: 1,
      total: 0,
      pageSize: 10,
      pageSize: 8,
      checkskipvisible: false,
      form:{},
      // handleClose:{},
@@ -163,7 +163,7 @@
      Auditconclusion:{},
      tableRow: {},
    };
  },
  created() {
@@ -201,9 +201,13 @@
    //通过
    async checkskip(row) {
      console.log(this.tableRow);
      this.reportTable[this.tableRow.$index].status=2
      this.reportTable[this.tableRow.$index].status=1
      this.transmitData(this.tableRow.row.id)
      this.checkskipvisible= false
      this.$message({
          message: '通过成功',
          type: 'success'
        });
    },
    //不通过
@@ -212,12 +216,16 @@
      this.reportTable[this.tableRow.$index].status=0
      this.transmitData(this.tableRow.row.id)
      this.checkskipvisible= false
      this.$message({
          message: '待通过',
          type: 'warning'
        });
    },
    //审核
    async transmitData(id) {
      let param={"id":id,"result":1}
     let data = await checkApi(param)
    async transmitData(id) {
      let param={"id":id,"result":2}
     let data = await checkApi(param)
    },
    // æŸ¥è¯¢åˆ—表
    async getData() {
src/views/inspectionManagement/commissionInspection/addCommision.vue
@@ -22,7 +22,9 @@
                        :data="detectionInfo" style="width: 100%;margin-bottom: 20px;">
                        <el-table-column type="index" label="序号" min-width="10%" />
                        <el-table-column prop="sampleNumber" label="样品编号" min-width="8%" />
                        <el-table-column prop="sampleName" label="样品名称" min-width="10%" />
                        <el-table-column prop="specificationsModels" label="规格型号" min-width="10%" />
                        <el-table-column prop="unit" label="单位" min-width="8%" />
                        <el-table-column prop="samplesNumber" label="数量" min-width="8%" />
@@ -165,6 +167,14 @@
                        </el-row>
                        <el-row :gutter="50">
                            <el-col :span="11">
                                <el-form-item label="评定标准:">
                                    <el-select v-model="addPointerForm.addway" size="small" placeholder="请选择评定标准">
                                        <el-option v-for="options in model_spe_options" :value="options.value"
                                            :key="options.key">{{ options.value }}</el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="11">
                                <el-form-item label="规格型号:">
                                    <el-select v-model="addPointerForm.specificationsModels" size="small" placeholder="请先选择样品名称">
                                        <el-option v-for="options in model_spe_options" :value="options.value"
@@ -172,31 +182,35 @@
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="50">
                            <el-col :span="11">
                                <el-form-item label="样品单位:">
                                    <el-input type="text" v-model="addPointerForm.unit" placeholder="请输入单位" autocomplete="off" />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="50">
                            <el-col :span="11">
                                <el-form-item label="样品数量:">
                                    <el-input type="text" v-model="addPointerForm.samplesNumber" placeholder="请输入数量" autocomplete="off" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="11">
                                <el-form-item label="备注:">
                                    <el-input type="text" v-model="addPointerForm.remarks" placeholder="请输入备注" autocomplete="off" />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="50">
                            <el-col :span="10">
                            <el-col :span="9">
                                <el-form-item label="添加项目:">
                                    <el-checkbox-group v-model="addPointerForm.experiment" style="display: flex; flex-direction: column;">
                                        <el-checkbox v-for="expers in experList" :label="expers.label"
                                            :key="expers.key">{{ expers.label }}</el-checkbox>
                                    </el-checkbox-group>
                                </el-form-item>
                            </el-col>
                            <el-col :span="41">
                                <el-form-item label="备注:">
                                    <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 20}"  style="width: 200px;" v-model="addPointerForm.remarks" placeholder="请输入备注" autocomplete="off" />
                                </el-form-item>
                            </el-col>
                        </el-row>
@@ -337,6 +351,7 @@
                for (let i = 1; i < this.addPointerForm.experiment.length; i++) {
                    exper += ',' + this.addPointerForm.experiment[i]
                }
                // console.log(exper)
                this.addPointerForm.experiment = exper
                let tmp = this.addPointerForm
src/views/inspectionManagement/commissionInspection/index.vue
@@ -452,4 +452,4 @@
        text-align: center;
        color: #0166e2;
    }
</style>
</style>
src/views/standardLibrary/index.vue
@@ -25,6 +25,16 @@
        <div class="table-header">
          <div class="serve-btn">
            <span class="tipMsg">{{ msg !== "" ? msg : "" }}</span>
            <el-select v-model="versionValue" @change="changeSelect" placeholder="请选择版本号">
              <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value"
                >
              </el-option>
            </el-select>
            <el-button type="primary" @click="addVersionFun">新增版本号</el-button>
            <el-button
              type="primary"
              icon="el-icon-plus"
@@ -161,12 +171,16 @@
  addSpecifications,
  deleteListApi,
  blurUpdateApi,
  getVersion,
  addVersion
} from "@/api/standardLibrary";
import { selectproductModelApi } from "@/api/basicData/index";
export default {
  data() {
    return {
      options:[],
      versionValue: '',
      deleteList: [],
      msg: "",
      isAllSelect: false,
@@ -199,7 +213,48 @@
  created() {
    this.getStandardTree();
  },
  mounted(){
  },
  methods: {
    async initSelect(){
        this.options = [];
        this.versionValue = "";
        const response = await getVersion({"specificationsId":this.selectData.id});
        if(response.code===200 && response.data.length>0){
          this.getTableByClick(this.selectData,response.data[0])
          for(let i=0;i<response.data.length;i++){
            this.options.push({
              value: response.data[i],
              label: "V" + response.data[i]
            })
            this.versionValue = response.data[0];
          }
        }
    },
    changeSelect(){
      this.tableData = [];
      this.getTableByClick(this.selectData,this.versionValue);
    },
    async insertVersion(){
      const resp = await addVersion({"specificationsId":this.selectData.id});
      if(resp.code===200){
        this.initSelect();
        this.$message({
            type: 'success',
            message: resp.message
          });
      }
    },
     addVersionFun() {
        this.$confirm('确认添加新的版本号吗?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.insertVersion();
        }).catch(() => {});
    },
    filterNode(value, data) {
      if (!value) return true;
      return data.name.indexOf(value) !== -1;
@@ -253,7 +308,8 @@
        this.getParentData(node.parent, node.data.name);
        // å­˜ä¸‹é€‰ä¸­èŠ‚ç‚¹
        this.selectData = data;
        this.getTableByClick(data);
        this.getTableByClick(data,this.versionValue);
        this.initSelect();
      }
      if (!("children" in data)) {
        return;
@@ -268,9 +324,10 @@
        this.getParentData(node.parent, this.msg);
      }
    },
    async getTableByClick(data) {
    async getTableByClick(data,versionVal) {
      await getProductList({
        specificationsId: data.id,
        version: versionVal
      }).then((res) => {
        res.data.forEach((i) => {
          if (i.name === undefined) {
@@ -351,7 +408,7 @@
        addTypeArr: [],
      };
      this.getStandardTree();
      this.getTableByClick(this.selectData);
      this.getTableByClick(this.selectData,this.versionValue);
    },
    changeCascader(data) {
      this.addTreeForm.addTypeArr = data;
@@ -457,7 +514,7 @@
          message: res.message,
          type: "success",
        });
        this.getTableByClick(this.selectData);
        this.getTableByClick(this.selectData,this.versionValue);
      });
    },
    async requiredOnfocus(scope) {
@@ -472,7 +529,7 @@
          message: res.message,
          type: "success",
        });
        this.getTableByClick(this.selectData);
        this.getTableByClick(this.selectData,this.versionValue);
      });
    },
  },
@@ -608,6 +665,9 @@
  width: 100%;
  padding-bottom: 6px;
  text-align: right;
  .el-select{
    margin-right:10px;
  }
}
.tipMsg {
  float: left;