zouyu
2023-09-01 bd4fdac0fee9cf4f96dd947fef6f6ae950a450fe
src/views/inspectionManagement/reportForInspection/index.vue
@@ -1,6 +1,6 @@
<template>
   <div class="content-main">
      <div class="rawPage" v-if="!showNewPage">
      <div class="rawPage">
         <div class="top-bar">
            <el-form ref="form" :inline="true" :model="searchData">
               <el-form-item label="材料编码:" position="left" class="sermargin">
@@ -64,12 +64,6 @@
         </el-dialog>
         <div class="library-table">
            <div class="table-header">
               <div class="search-bar">
                  <el-radio-group v-model="radioValue" @change="radioclick">
                     <el-radio-button v-for="option in radioOptions" :key="option.value"
                        :label="option.value">{{ option.label }}</el-radio-button>
                  </el-radio-group>
               </div>
               <div class="generateInsp">
                  <el-button @click="addReportBtn" type="primary" size="mini" icon="el-icon-document"
                     style="background-color: rgb(1, 102, 226);">生成报检单</el-button>
@@ -79,8 +73,7 @@
               <el-table ref="inspectionTable" :max-height="600" :cell-style="{textAlign: 'center'}"
                  :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
                  :data="inspectionTable" style="width: 100%" @selection-change="handleSelectionChange">
                  <el-table-column type="selection" :selectable="checkSelect" min-width="5%">
                  </el-table-column>
                  <el-table-column type="selection" :selectable="checkSelect" min-width="5%"></el-table-column>
                  <el-table-column type="index" label="序号" min-width="8%" />
                  <el-table-column prop="dateSurvey" label="来料日期" min-width="8%" />
                  <el-table-column prop="supplierName" label="供应商名称" min-width="12%" />
@@ -91,7 +84,6 @@
                  <el-table-column prop="quantity" label="数量" min-width="5%" />
                  <el-table-column prop="inspectionDate" label="报检日期" min-width="8%" />
                  <el-table-column prop="surveyor" label="检验人" min-width="8%" />
                  <el-table-column prop="insTime" label="检验日期" min-width="8%" />
                  <el-table-column prop="type" label="状态" min-width="8%">
                     <template slot-scope="scope">
                        <span :style="{ color: scope.row.type === 1 ? 'green' : 'red' }">
@@ -116,7 +108,7 @@
         </div>
      </div>
      <el-dialog title="选择日期" :visible.sync="addReportDialog" width="60%">
         <el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="addInspectionForm">
         <el-form :model="addInspectionForm" :rules="addInspectionFormRules" ref="addInspectionForm">
            <el-form-item label="检验日期" label-width="100px" prop="inspectionDate">
               <el-date-picker v-model="addInspectionForm.inspectionDate" type="daterange" value-format="yyyy-MM-dd"
                  range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
@@ -144,105 +136,6 @@
            <el-button type="primary" @click="confirmBtn('addInspectionForm')">确 定</el-button>
         </div>
      </el-dialog>
      <!-- 生成报检单 -->
      <div class="newPage" v-if="showNewPage">
         <!-- 新增页面 -->
         <div class="inspectionForm">
            <el-form :model="inspectionForm" label-position="right" label-width="100px" size="mini">
               <div class="formwrapper">
                  <el-row>
                     <el-col :span="8">
                        <el-form-item label="来料日期:">
                           <el-input style="width: 180px;" :value="inspectionForm.formTime" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                     <el-col :span="8">
                        <el-form-item label="供应商名称:">
                           <el-input style="width: 180px;" :value="inspectionForm.supplier" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                     <el-col :span="8">
                        <el-form-item label="样品编号:">
                           <el-input style="width: 180px;" :value="inspectionForm.code" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                  </el-row>
                  <el-row>
                     <el-col :span="8">
                        <el-form-item label="样品名称:">
                           <el-input style="width: 180px;" :value="inspectionForm.name" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                     <el-col :span="8">
                        <el-form-item label="规格型号:">
                           <el-input style="width: 180px;" :value="inspectionForm.specifications" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                     <el-col :span="8">
                        <el-form-item label="单位:">
                           <el-input style="width: 180px;" :value="inspectionForm.unit" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                  </el-row>
                  <el-row>
                     <el-col :span="8">
                        <el-form-item label="数量:">
                           <el-input style="width: 180px;" :value="inspectionForm.num" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                     <el-col :span="8">
                        <el-form-item label="报检日期:">
                           <el-input style="width: 180px;" :value="inspectionForm.endTime" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                     <el-col :span="8">
                        <el-form-item label="报检人:">
                           <el-input style="width: 180px;" :value="inspectionForm.userName" disabled autocomplete="off" />
                        </el-form-item>
                     </el-col>
                  </el-row>
               </div>
            </el-form>
         </div>
         <div class="inspectionProject">
            <div class="header">
               <span style="font-size: 14px">检验项目</span>
               <div>
                  <!-- <el-button  type="primary" plain size="mini">保存</el-button> -->
                  <el-button @click="showNewPage = false" type="primary" plain size="mini" icon="el-icon-back">返回</el-button>
               </div>
            </div>
            <el-table :max-height="800" :cell-style="{textAlign: 'center'}"
               :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
               :data="inspectionItems">
               <el-table-column type="index" label="序号" width="60"></el-table-column>
               <el-table-column prop="name" label="项目" width="250"></el-table-column>
               <el-table-column prop="unit" label="单位" width="125"></el-table-column>
               <el-table-column prop="required" label="标准值" width="125"></el-table-column>
               <el-table-column prop="internal" label="内测值" width="125"></el-table-column>
               <el-table-column prop="testValue" label="检验值" width="125"></el-table-column>
               <el-table-column prop="userName" label="检验人">
                  <template slot-scope="scope">
                     <el-select @blur="blurOptions(scope.row)" v-model="scope.row.check" size="small" slot="append"
                        style="width: 260px;">
                        <el-option v-for="(item,index) in checkeroptions" :key="index" :value="item.id"
                           :label="item.name"></el-option>
                     </el-select>
                  </template>
               </el-table-column>
               <el-table-column prop="device" label="试验设备">
                  <template slot-scope="scope">
                     <el-select @blur="blurOptions(scope.row)" v-model="scope.row.device" size="small" slot="append"
                        style="width: 260px;">
                        <el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.id"
                           :label="item.equipmentName"></el-option>
                     </el-select>
                  </template>
               </el-table-column>
            </el-table>
         </div>
      </div>
   </div>
</template>
@@ -265,8 +158,6 @@
         return {
        standardLibraryData:[],
        chooseVersion: [],
            userName: "",
            devices: "",
            addInspectionForm: {
               inspectionDate: [],
               version: null
@@ -322,20 +213,6 @@
               value: 0,
               label: '未报检'
            }],
            deviceoptions: [{
               value: 0,
               label: '拉力机'
            }, {
               value: 1,
               label: '拖拉机'
            }],
            checkeroptions: [{
               value: 0,
               label: '黄小明'
            }, {
               value: 1,
               label: '张三'
            }],
            radioOptions: [{
               label: '全部',
               value: null
@@ -352,18 +229,6 @@
            pageSize: 10,
            total: 20,
            data: '',
            showNewPage: false,
            inspectionForm: {},
            inspectionItems: [{
               index: 1,
               name: "aaa",
               unit: "KB",
               required: "1",
               internal: "2",
               testValue: "3",
               userName: "",
               device: ""
            }],
            insertRule: {
               fromDate: [{
                  required: true,
@@ -424,17 +289,9 @@
               this.$message.error(error.message);
            });
         },
         blurOptions(row) {
         },
         async initNewSelection() {
            const res = await selectUser();
            const res2 = await selectEquipment();
            this.checkeroptions = res.data;
            this.deviceoptions = res2.data;
         },
         resetForm(formName) {
            // this.addInspectionForm.inspectionDate = [],
            // this.$refs[formName].resetFields();
            this.addInspectionForm.inspectionDate = [],
            this.$refs[formName].resetFields();
            this.addReportDialog = false
         },
         removeFun(row, index) {
@@ -446,7 +303,7 @@
               this.deleteMaterialFun(row, index);
            }).catch(() => {});
         },
         checkSelect(row, index) {
         checkSelect(row) {
            if (row.type === 1) {
               return false;
            } else {
@@ -454,6 +311,10 @@
            }
         },
         handleSelectionChange(val) {
        if (val.length > 1) {
               this.$refs.inspectionTable.clearSelection();
               this.$refs.inspectionTable.toggleRowSelection(val.pop())
            }
            this.checkData = val;
         },
         //生成报检单按钮
@@ -513,28 +374,30 @@
      },
         //生成报检单确认按钮
         confirmBtn(formName) {
            let dateArr = this.addInspectionForm.inspectionDate;
            //添加报检单
            let val = this.checkData[0];
            let obj = {
               "endTime": dateArr[1],
               "experiment": "",
               "formTime": val.createTime,
               "id": val.id,
               "mcode": val.materialCoding,
               "name": val.materialName,
               "num": val.quantity,
               "specifications": val.specificationsModels,
               "startTime": dateArr[0],
               "supplier": val.supplierName,
               "type": val.type,
               "unit": val.unit,
               "version": this.addInspectionForm.version
            }
            this.createReport(obj);
            // this.addReportDialog = false;
            // this.initNewSelection();
            // this.showNewPage = true;
        this.$refs[formName].validate((valid=>{
          if(valid){
            let dateArr = this.addInspectionForm.inspectionDate;
            //添加报检单
            let val = this.checkData[0];
            let obj = {
              "endTime": dateArr[1],
              "experiment": "",
              "formTime": val.createTime,
              "id": val.id,
              "mcode": val.materialCoding,
              "name": val.materialName,
              "num": val.quantity,
              "specifications": val.specificationsModels,
              "startTime": dateArr[0],
              "supplier": val.supplierName,
              "type": val.type,
              "unit": val.unit,
              "version": this.addInspectionForm.version
            }
            this.createReport(obj);
            this.addReportDialog = false;
          }
        }));
         },
         //生成报检单
         async createReport(param) {
@@ -575,20 +438,6 @@
               date: ''
            }
            this.getRawMaterialList()
         },
         radioclick() {
            if (this.radioValue === 0) {
            }
         },
         getAllTableData() {
            this.getRawMaterialList()
         },
         getCheckData() {
         },
         getUnCheckData() {
         },
         // 每页条数改变时触发 选择一页显示多少行
         handleSizeChange(val) {
@@ -686,10 +535,15 @@
         flex-direction: column;
         .table-header {
        width: 100%;
        height: 70px;
            padding: 20px;
            display: flex;
            justify-content: space-between;
        .generateInsp{
          position: relative;
          left: 92%;
        }
            .el-form-item {
               margin-bottom: 30px !important;
            }