Fixiaobai
2023-08-30 a2c4dc4fbd62ac4e05b9318a1e05d147c8ae4d8c
src/views/inspectionManagement/reportForInspection/index.vue
@@ -40,9 +40,33 @@
            <el-form-item>
              <el-button type="primary" @click="search">查询</el-button>
              <el-button type="primary" plain @click="reset">重置</el-button>
              <el-button type="primary" icon="el-icon-plus" @click="addReportVisible = true">新增</el-button>
            </el-form-item>
            </el-form>
        </div>
        <el-dialog
          title="新增原材料报检"
          :visible.sync="addReportVisible"
          width="40%">
          <el-form v-model="insertData" label-position="left" label-width="80px">
            <el-form-item label="标准类型">
              <el-input v-model="insertData.materialName" />
            </el-form-item>
            <el-form-item label="物料名称">
              <el-input v-model="insertData.materialName" />
            </el-form-item>
            <el-form-item label="执行标准">
              <el-input v-model="insertData.standardName" />
            </el-form-item>
            <el-form-item label="规格型号">
              <el-input v-model="insertData.specificationsName" />
            </el-form-item>
          </el-form>
          <span slot="footer" class="dialog-footer">
            <el-button @click="addReportVisible = false">取 消</el-button>
            <el-button type="primary" @click="insert()">确 定</el-button>
          </span>
        </el-dialog>
        <div class="library-table">
          <div class="table-header">
            <div class="search-bar">
@@ -51,8 +75,9 @@
              </el-radio-group>
            </div>
            <div class="generateInsp">
              <el-button @click="showNewPage = true" type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">生成报检单</el-button>
              <el-button @click="addReportBtn" type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">生成报检单</el-button>
            </div>
          </div>
          <div class="table-box">
            <el-table
@@ -62,11 +87,13 @@
              :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"
                min-width="10%"
              />
                :selectable="checkSelect"
                min-width="5%">
              </el-table-column>
              <el-table-column
                type="index"
                label="序号"
@@ -129,9 +156,16 @@
              >
              <template slot-scope="scope">
                <span :style="{ color: scope.row.type === 1 ? 'green' : 'red' }">
                  {{ scope.row.type === 1 ? '已检测':'未检测' }}
                  {{ scope.row.type === 1 ? '已报检':'未报检' }}
                </span>
              </template>
              </el-table-column>
              <el-table-column
                label="操作"
                min-width="8%">
                <template slot-scope="scope">
                  <el-button type="text" size="small" @click="removeFun(scope.row)">删除</el-button>
                </template>
              </el-table-column>
            </el-table>
            <!-- 分页器 -->
@@ -159,28 +193,28 @@
              <el-row>
                <el-col  :span="8">
                  <el-form-item label="来料日期:">
                    <el-input  style="width: 180px;" :value="inspectionForm.createTime" disabled autocomplete="off" />
                    <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_name" disabled autocomplete="off" />                  </el-form-item>
                    <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.materialCoding" disabled autocomplete="off" />
                    <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.materialName" disabled autocomplete="off" />
                    <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.specificationsModels" disabled autocomplete="off" />
                    <el-input style="width: 180px;" :value="inspectionForm.specifications" disabled autocomplete="off" />
                  </el-form-item>
                </el-col>
                <el-col  :span="8">
@@ -192,17 +226,17 @@
              <el-row >
                <el-col  :span="8">
                  <el-form-item label="数量:" >
                    <el-input style="width: 180px;" :value="inspectionForm.quantity" disabled autocomplete="off" />
                    <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.dateSurvey" disabled autocomplete="off" />
                      <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.surveyor" disabled autocomplete="off" />
                        <el-input style="width: 180px;" :value="inspectionForm.userName" disabled autocomplete="off" />
                    </el-form-item>
                  </el-col>
                </el-row>
@@ -213,7 +247,7 @@
          <div class="header">
            <span style="font-size: 14px">检验项目</span>
            <div>
            <el-button  type="primary" plain size="mini">保存</el-button>
            <!-- <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>
@@ -223,22 +257,22 @@
              :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="project" label="项目" width="250"></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="standardVal" label="标准值" width="125"></el-table-column>
            <el-table-column prop="controlVal" label="内测值" width="125"></el-table-column>
            <el-table-column prop="detectionVal" label="检验值" width="125"></el-table-column>
            <el-table-column prop="checker" label="检验人">
            <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 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-option v-for="(item,index) in checkeroptions" :key="index" :value="item.value" :label="item.label">{{ item.label }}</el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="device" label="试验设备">
                <template slot-scope="scope">
                <el-select v-model="scope.row.device" size="small" slot="append" style="width: 260px;">
                    <el-option v-for="item in deviceoptions" :key="item.value" :label="item.label">{{ item.label }}</el-option>
                    <el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.value" :label="item.label">{{ item.label }}</el-option>
                </el-select>
            </template>
            </el-table-column>
@@ -249,10 +283,17 @@
</template>
<script>
import { getRawMaterialList } from '@/api/inspection/rawmaterial'
import { getRawMaterialList,addInspect,selectInspectsListById } from '@/api/inspection/rawmaterial'
export default {
  data() {
    return {
      insertData:{
      },
      addReportVisible: false,
      checked: false,
      resultData : {},
      checkData:[],
      form: [],
      searchData: {
        code: '',
@@ -313,80 +354,82 @@
      total:20,
      data: '',
      showNewPage: false,
      inspectionForm:{
        createTime: '2023-07-28',
        supplier_name: '国网山东省电力有限公司',
        materialCoding: 'BP214274',
        materialName: '铝包钢绞线',
        specificationsModels: 'JLHA/G1A-185/30-26/7',
        unit: '吨',
        quantity: 21,
        dateSurvey: '2023-08-02',
        surveyor: '黄小明',
        inspectionDate: '2023-12-09',
      },
      inspectionItems:[{
        project:'导线外径',
        unit: 'mm',
        standardVal: '30.0',
        controlVal: '30.0',
        detectionVal: '30.0',
        device:'',
        checker: '',
      },{
        project:'导线外径',
        unit: 'mm',
        standardVal: '30.0',
        controlVal: '30.0',
        detectionVal: '30.0',
        device:'',
        checker: ''
      },{
        project:'导线外径',
        unit: 'mm',
        standardVal: '30.0',
        controlVal: '30.0',
        detectionVal: '30.0',
        device:'',
        checker: ''
      },{
        project:'导线外径',
        unit: 'mm',
        standardVal: '30.0',
        controlVal: '30.0',
        detectionVal: '30.0',
        device:'',
        checker: ''
      },{
        project:'导线外径',
        unit: 'mm',
        standardVal: '30.0',
        controlVal: '30.0',
        detectionVal: '30.0',
        device:'',
        checker: ''
      },{
        project:'导线外径',
        unit: 'mm',
        standardVal: '30.0',
        controlVal: '30.0',
        detectionVal: '30.0',
        device:'',
        checker: ''
      }]
      inspectionForm:{},
      inspectionItems:[]
    }
  },
  created(){
    this.getRawMaterialList()
  },
  methods: {
    removeFun(row){
      this.$confirm('确认删除该数据吗?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.$message({
            type: 'success',
            message: '删除成功!'
          });
        }).catch(() => {});
    },
    checkSelect(row,index){
      if(row.type === 1){
        return false;
      }else{
        return true;
      }
    },
    handleSelectionChange(val){
      this.checkData = val;
      console.log(val);
    },
    //生成报检单按钮
    addReportBtn(){
      let arr = this.checkData;
      if(arr.length < 1){
        this.$message.error("请选择一条数据!");
      }else{
        if(arr.length > 1){
          this.$message.error("最多选择一条数据!");
        }else{
          //添加报检单
          let val = arr[0];
          let obj = {
            "endTime": val.dateSurvey,
            "experiment": "",
            "formTime": val.createTime,
            "id": val.id,
            "mcode": val.materialCoding,
            "name": val.materialName,
            "num": val.quantity,
            "specifications": val.specificationsModels,
            "startTime": val.inspectionDate,
            "supplier": val.supplierName,
            "type": val.type,
            "unit": val.unit,
            "version": val.version
          }
          this.createReport(obj);
          this.showNewPage = true;
        }
      }
    },
    //生成报价单
    async createReport(param){
      await addInspect(param);
      const res2 = await selectInspectsListById({ id : 59});
      this.resultData = res2.data;
      this.inspectionForm = res2.data;
      this.inspectionItems = res2.data.insProducts;
    },
    // 获取分页列表数据
    async getRawMaterialList(){
      const res = await getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
      // console.log(res)
      this.inspectionTable = res.data.row
      this.data = res.data.row
      console.log(res.data.row);
      this.total = res.data.total
    },
    async search(){
@@ -398,7 +441,6 @@
        pageNo: this.currentPage,
        pageSize: this.pageSize
      })
      // console.log(res)
      this.inspectionTable = res.data.row
      this.data = res.data.row
      this.total = res.data.total
@@ -414,7 +456,6 @@
    },
    radioclick(){
      this.searchData.state = this.radioValue
      // console.log(this.radioValue)
      this.inspectionTable = this.data.filter((item)=>{
        return item.condition === this.radioValue
      })
@@ -425,13 +466,11 @@
    },
    // 每页条数改变时触发 选择一页显示多少行
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`)
      this.pageSize = val
      this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
    },
    // 当前页改变时触发 跳转其他页
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
      this.currentPage = val
      this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
    }
@@ -439,7 +478,7 @@
}
</script>
<style scoped>
<style scoped lang="scss">
.content-main{
  height: 100%;
  .top-bar{