zouyu
2023-08-31 1270c8e3c5a76532137834ae657a16229a9ff648
Merge branch 'master' of http://192.168.110.209:9001/r/lims-before
已修改2个文件
1217 ■■■■ 文件已修改
src/api/inspection/rawmaterial.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inspectionManagement/reportForInspection/index.vue 1201 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inspection/rawmaterial.js
@@ -61,4 +61,20 @@
    method: 'post',
    data
  })
}
export function getMaterielName(data){
  return request({
    url: '/raw-material/getMaterielName',
    method: 'get',
    data
  })
}
export function getSpecification(params){
  return request({
    url: '/raw-material/specification',
    method: 'get',
    params
  })
}
src/views/inspectionManagement/reportForInspection/index.vue
@@ -1,604 +1,621 @@
<template>
    <div class="content-main">
      <div class="rawPage" v-if="!showNewPage">
        <div class="top-bar">
            <el-form ref="form" :inline="true" :model="searchData">
            <el-form-item label="材料编码:" position="left" class="sermargin">
              <el-input
                v-model="searchData.code"
                class="input-form"
                placeholder="请输入"
              >
              </el-input>
            </el-form-item>
            <el-form-item label="材料名称:" class="sermargin">
              <el-input
                v-model="searchData.name"
                class="input-form"
                placeholder="请输入"
              >
              </el-input>
            </el-form-item>
            <el-form-item label="状态:" class="sermargin">
              <el-select v-model="searchData.state" placeholder="全部">
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="来料日期:" style="margin-right: 20px;">
              <el-input
                v-model="searchData.date"
                class="input-form"
                placeholder="请输入"
              >
              </el-input>
            </el-form-item>
            <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" :inline="true" label-position="right" label-width="80px">
            <el-form-item label="来料日期:">
              <el-date-picker
                v-model="insertData.fromDate"
                type="date"
                value-format="yyyy-MM-dd"
              ></el-date-picker>
            </el-form-item>
            <el-form-item label="供货商名称:">
              <el-input v-model="insertData.supplierName" />
            </el-form-item>
            <el-form-item label="材料名称:">
              <el-select v-model="insertData.mName" placeholder="请选择材料名称">
                  <el-option v-for="(item,index) in 5" :key="index" :label="item" :value="item"></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="材料编码:">
              <el-input disabled v-model="insertData.mCode" />
            </el-form-item>
            <el-form-item label="规格型号:">
              <el-cascader
                v-model="insertData.specificationsNumber"
                :options="childrenOptions"
                @change="handleChange"></el-cascader>
            </el-form-item>
            <el-form-item label="单位:">
              <el-input type="text" v-model="insertData.unit" />
            </el-form-item>
            <el-form-item label="数量:">
              <el-input type="number" v-model="insertData.num" />
            </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">
              <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>
            </div>
          </div>
          <div class="table-box">
            <el-table
              ref="inspectionTable"
              :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="inspectionTable"
              style="width: 100%"
              @selection-change="handleSelectionChange"
            >
              <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="createTime"
                label="来料日期"
                min-width="8%"
              />
              <el-table-column
                prop="supplierName"
                label="供应商名称"
                min-width="12%"
              />
              <el-table-column
                prop="materialCoding"
                label="材料编码"
                min-width="8%"
              />
              <el-table-column
                prop="materialName"
                label="材料名称"
                min-width="8%"
              />
              <el-table-column
                prop="specificationsModels"
                label="规格型号"
                min-width="12%"
              />
              <el-table-column
                prop="unit"
                label="单位"
                min-width="5%"
              />
              <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="dateSurvey"
                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' }">
                  {{ 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,scope.$index)">删除</el-button>
                </template>
              </el-table-column>
            </el-table>
            <!-- 分页器 -->
            <div>
              <el-pagination
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                :current-page="currentPage"
                :page-sizes="[5, 10, 15, 20]"
                :page-size="pageSize"
                layout="total, sizes, prev, pager, next, jumper"
                :total="total">
              </el-pagination>
            </div>
          </div>
        </div>
      </div>
      <el-dialog title="选择日期" :visible.sync="addReportDialog" width="30%">
        <el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="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="结束日期">
            </el-date-picker>
          </el-form-item>
          <el-form-item label="版本" label-width="100px" prop="version">
            <el-select v-model="addInspectionForm.version" placeholder="请选择版本">
              <el-option v-for="(item,index) in 5" :key="index" :value="item" :label="item"></el-option>
            </el-select>
          </el-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button @click="resetForm('addInspectionForm')">取 消</el-button>
          <el-button type="primary" @click="confirmBtn('addInspectionForm')">确 定</el-button>
        </div>
      </el-dialog>
    <div class="content-main">
        <div class="rawPage" v-if="!showNewPage">
            <div class="top-bar">
                <el-form ref="form" :inline="true" :model="searchData">
                    <el-form-item label="材料编码:" position="left" class="sermargin">
                        <el-input v-model="searchData.code" class="input-form" placeholder="请输入">
                        </el-input>
                    </el-form-item>
                    <el-form-item label="材料名称:" class="sermargin">
                        <el-input v-model="searchData.name" class="input-form" placeholder="请输入">
                        </el-input>
                    </el-form-item>
                    <el-form-item label="状态:" class="sermargin">
                        <el-select v-model="searchData.state" placeholder="全部">
                            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="来料日期:" style="margin-right: 20px;">
                        <el-input v-model="searchData.date" class="input-form" placeholder="请输入">
                        </el-input>
                    </el-form-item>
                    <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 ref="addMaterialForm" :rules="insertRule" :model="insertData" :inline="true" label-position="right"
                    label-width="80px">
                    <el-form-item label="来料日期:" prop="fromDate">
                        <el-date-picker v-model="insertData.fromDate" type="date" value-format="yyyy-MM-dd"></el-date-picker>
                    </el-form-item>
                    <el-form-item label="供货商名称:" prop="supplierName">
                        <el-input v-model="insertData.supplierName" />
                    </el-form-item>
                    <el-form-item label="材料名称:" prop="mName">
                        <el-select v-model="insertData.mName" placeholder="请选择材料名称" @change="(val)=>{getSpecification(val)}">
                            <el-option v-for="(item,index) in materialList" :key="index" :label="item.name"
                                :value="item.id"></el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="材料编码:" prop="mCode">
                        <el-input disabled v-model="insertData.mCode" />
                    </el-form-item>
                    <el-form-item label="规格型号:" prop="specificationsNumber">
                        <el-cascader v-model="insertData.specificationsNumber" :options="childrenOptions"
                            :props="{label: 'Name', value: 'Name'}" separator="-"></el-cascader>
                    </el-form-item>
                    <el-form-item label="单位:" prop="unit">
                        <el-input type="text" v-model="insertData.unit" />
                    </el-form-item>
                    <el-form-item label="数量:" prop="num">
                        <el-input type="number" v-model="insertData.num"/>
                    </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">
                        <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>
                    </div>
                </div>
                <div class="table-box">
                    <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="index" label="序号" min-width="8%" />
                        <el-table-column prop="createTime" label="来料日期" min-width="8%" />
                        <el-table-column prop="supplierName" label="供应商名称" min-width="12%" />
                        <el-table-column prop="materialCoding" label="材料编码" min-width="8%" />
                        <el-table-column prop="materialName" label="材料名称" min-width="8%" />
                        <el-table-column prop="specificationsModels" label="规格型号" min-width="12%" />
                        <el-table-column prop="unit" label="单位" min-width="5%" />
                        <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="dateSurvey" 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' }">
                                    {{ 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,scope.$index)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <!-- 分页器 -->
                    <div>
                        <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                            :current-page="currentPage" :page-sizes="[10, 15, 20,30]" :page-size="pageSize"
                            layout="total, sizes, prev, pager, next, jumper" :total="total">
                        </el-pagination>
                    </div>
                </div>
            </div>
        </div>
        <el-dialog title="选择日期" :visible.sync="addReportDialog" width="30%">
            <el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="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="结束日期">
                    </el-date-picker>
                </el-form-item>
                <el-form-item label="版本" label-width="100px" prop="version">
                    <el-select v-model="addInspectionForm.version" placeholder="请选择版本">
                        <el-option v-for="(item,index) in 5" :key="index" :value="item" :label="item"></el-option>
                    </el-select>
                </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footer">
                <el-button @click="resetForm('addInspectionForm')">取 消</el-button>
                <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>
        <!-- 生成报检单 -->
        <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>
<script>
import { getRawMaterialList,
  addInspect,
  selectInspectsListById,
  selectUser,
  selectEquipment,
  deleteMaterial,
  addMaterial
 } from '@/api/inspection/rawmaterial'
export default {
  data() {
    return {
      userName: "",
      devices: "",
      addInspectionForm: {
        inspectionDate: ['2023-08-01','2023-08-31'],
        version: 5
      },
      addInspectionFormRules: {
        inspectionDate: [{required: true, message: '请选择日期区间', trigger: 'change' }],
      },
      addReportDialog: false,
      insertData:{},
      addReportVisible: false,
      checked: false,
      resultData : {},
      checkData:[],
      form: [],
      searchData: {
        code: '',
        name: '',
        state: '',
        date: ''
      },
      childrenOptions: [{
        value: 'zhinan',
        label: '指南',
        children: [{
          value: 'shejiyuanze',
          label: '设计原则',
          children: [{
            value: 'yizhi',
            label: '一致'
          }, {
            value: 'fankui',
            label: '反馈'
          }, {
            value: 'xiaolv',
            label: '效率'
          }, {
            value: 'kekong',
            label: '可控'
          }]
        }]
      }],
      options: [{
        value: null,
        label: '全部'
      }, {
        value: 1,
        label: '已报检'
      }, {
        value: 0,
        label: '未报检'
      }],
      deviceoptions:[{
        value: 0,
        label: '拉力机'
      },{
        value: 1,
        label: '拖拉机'
      }],
      checkeroptions:[{
        value: 0,
        label: '黄小明'
      },{
        value: 1,
        label: '张三'
      }],
      radioOptions:[{
        label: '全部',
        value: null
      },{
        value: 1,
        label: '已报检'
      },{
        value: 0,
        label: '未报检'
      }],
      radioValue: null,
      inspectionTable: [{
        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',
        condition: 1
      }],
      currentPage: 1,
      pageSize: 5,
      total:20,
      data: '',
      showNewPage: false,
      inspectionForm:{},
      inspectionItems:[{
        index: 1,
        name: "aaa",
        unit: "KB",
        required: "1",
        internal: "2",
        testValue: "3",
        userName:"",
        device: ""
      }]
    }
  },
  created(){
    this.getRawMaterialList()
  },
  mounted(){
  },
  methods: {
    handleChange(){
    import {
        getRawMaterialList,
        addInspect,
        selectInspectsListById,
        selectUser,
        selectEquipment,
        deleteMaterial,
        addMaterial,
        getMaterielName,
        getSpecification
    } from '@/api/inspection/rawmaterial'
    export default {
        data() {
            return {
                userName: "",
                devices: "",
                addInspectionForm: {
                    inspectionDate: ['2023-08-01', '2023-08-31'],
                    version: 5
                },
                addInspectionFormRules: {
                    inspectionDate: [{
                        required: true,
                        message: '请选择日期区间',
                        trigger: 'change'
                    }],
                },
                addReportDialog: false,
                insertData: {},
                addReportVisible: false,
                checked: false,
                resultData: {},
                checkData: [],
                form: [],
                searchData: {
                    code: '',
                    name: '',
                    state: '',
                    date: ''
                },
                childrenOptions: [{
                    value: 'zhinan',
                    label: '指南',
                    children: [{
                        value: 'shejiyuanze',
                        label: '设计原则',
                        children: [{
                            value: 'yizhi',
                            label: '一致'
                        }, {
                            value: 'fankui',
                            label: '反馈'
                        }, {
                            value: 'xiaolv',
                            label: '效率'
                        }, {
                            value: 'kekong',
                            label: '可控'
                        }]
                    }]
                }],
                options: [{
                    value: null,
                    label: '全部'
                }, {
                    value: 1,
                    label: '已报检'
                }, {
                    value: 0,
                    label: '未报检'
                }],
                deviceoptions: [{
                    value: 0,
                    label: '拉力机'
                }, {
                    value: 1,
                    label: '拖拉机'
                }],
                checkeroptions: [{
                    value: 0,
                    label: '黄小明'
                }, {
                    value: 1,
                    label: '张三'
                }],
                radioOptions: [{
                    label: '全部',
                    value: null
                }, {
                    value: 1,
                    label: '已报检'
                }, {
                    value: 0,
                    label: '未报检'
                }],
                radioValue: null,
                inspectionTable: [{
                    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',
                    condition: 1
                }],
                currentPage: 1,
                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,
                        message: '请选择来料日期',
                        trigger: 'blur'
                    }],
                    supplierName: [{
                        required: true,
                        message: '请输入供应商名称',
                        trigger: 'blur'
                    }],
                    mName: [{
                        required: true,
                        message: '请选择物料名称',
                        trigger: 'blur'
                    }],
                    mCode: [{
                        required: true,
                        message: '请选择物料',
                        trigger: 'blur'
                    }],
                    specificationsNumber: [{
                        required: true,
                        message: '请选择规格型号',
                        trigger: 'blur'
                    }],
                    unit: [{
                        required: true,
                        message: '请输入单位',
                        trigger: 'blur'
                    }],
                    num: [{
                        required: true,
                        message: '请输入报检数量',
                        trigger: 'blur'
                    }]
                },
                materialList: []
            }
        },
        created() {
            this.getRawMaterialList()
        },
        mounted() {
            this.getMaterielName()
        },
        methods: {
            handleChange() {
    },
    async deleteMaterialFun(row,index){
      let formData=new FormData();
      formData.append("deleteId",row.id)
      await deleteMaterial(formData).then(() => {
        this.inspectionTable.splice(index,1);
        this.$message.success("删除成功");
      }).catch(error => {
        this.$message.error(error.message);
      });
    },
    blurOptions(row){
        console.log("更新",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.addReportDialog = false
    },
    removeFun(row,index){
      this.$confirm('确认删除该数据吗?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          console.log(row.id);
          this.deleteMaterialFun(row,index);
        }).catch(() => {});
    },
    checkSelect(row,index){
      if(row.type === 1){
        return false;
      }else{
        return true;
      }
    },
    handleSelectionChange(val){
      this.checkData = val;
    },
    //生成报检单按钮
    addReportBtn(){
        if(this.checkData.length < 1){
          this.$message.error("请选择一条数据!");
        }else{
          if(this.checkData.length > 1){
            this.$message.error("最多选择一条数据!");
          }else{
            this.addReportDialog = true;
          }
      }
    },
    //生成报检单确认按钮
    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": val.version
          }
          // this.createReport(obj);
          this.addReportDialog = false;
          this.initNewSelection();
          this.showNewPage = true;
    },
    //生成报价单
    async createReport(param){
      let res = await addInspect(param);
      const res2 = await selectInspectsListById({ id : res.data});
      this.resultData = res2.data;
      this.inspectionForm = res2.data;
      this.inspectionItems = res2.data.insProducts;
            },
            async deleteMaterialFun(row, index) {
                let formData = new FormData();
                formData.append("deleteId", row.id)
                await deleteMaterial(formData).then(() => {
                    this.inspectionTable.splice(index, 1);
                    this.$message.success("删除成功");
                }).catch(error => {
                    this.$message.error(error.message);
                });
            },
            blurOptions(row) {
                console.log("更新", 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.addReportDialog = false
            },
            removeFun(row, index) {
                this.$confirm('确认删除该数据吗?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    console.log(row.id);
                    this.deleteMaterialFun(row, index);
                }).catch(() => {});
            },
            checkSelect(row, index) {
                if (row.type === 1) {
                    return false;
                } else {
                    return true;
                }
            },
            handleSelectionChange(val) {
                this.checkData = val;
            },
            //生成报检单按钮
            addReportBtn() {
                if (this.checkData.length < 1) {
                    this.$message.error("请选择一条数据!");
                } else {
                    if (this.checkData.length > 1) {
                        this.$message.error("最多选择一条数据!");
                    } else {
                        this.addReportDialog = true;
                    }
                }
            },
            //生成报检单确认按钮
            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": val.version
                }
                // this.createReport(obj);
                this.addReportDialog = false;
                this.initNewSelection();
                this.showNewPage = true;
            },
            //生成报价单
            async createReport(param) {
                let res = await addInspect(param);
                const res2 = await selectInspectsListById({
                    id: res.data
                });
                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})
      this.inspectionTable = res.data.row
      this.data = res.data.row
      this.total = res.data.total
    },
    async search(){
      this.radioValue = this.searchData.state
      const res = await getRawMaterialList({type: this.searchData.state,
        createTime:this.searchData.date,
        materialCoding:this.searchData.code,
        materialName: this.searchData.name,
        pageNo: this.currentPage,
        pageSize: this.pageSize
      })
      this.inspectionTable = res.data.row
      this.data = res.data.row
      this.total = res.data.total
    },
    reset(){
      this.searchData = {
        code: '',
        name: '',
        state: '',
        date: ''
      }
      this.getRawMaterialList()
    },
    radioclick(){
      console.log(this.inspectionTable);
      if(this.radioValue === 0){
            },
            // 获取分页列表数据
            async getRawMaterialList() {
                const res = await getRawMaterialList({
                    pageNo: this.currentPage,
                    pageSize: this.pageSize
                })
                this.inspectionTable = res.data.row
                this.data = res.data.row
                this.total = res.data.total
            },
            async search() {
                this.radioValue = this.searchData.state
                const res = await getRawMaterialList({
                    type: this.searchData.state,
                    createTime: this.searchData.date,
                    materialCoding: this.searchData.code,
                    materialName: this.searchData.name,
                    pageNo: this.currentPage,
                    pageSize: this.pageSize
                })
                this.inspectionTable = res.data.row
                this.data = res.data.row
                this.total = res.data.total
            },
            reset() {
                this.searchData = {
                    code: '',
                    name: '',
                    state: '',
                    date: ''
                }
                this.getRawMaterialList()
            },
            radioclick() {
                console.log(this.inspectionTable);
                if (this.radioValue === 0) {
      }
    },
    getAllTableData(){
      this.getRawMaterialList()
    },
    getCheckData(){
                }
            },
            getAllTableData() {
                this.getRawMaterialList()
            },
            getCheckData() {
    },
    getUnCheckData(){
            },
            getUnCheckData() {
    },
    // 每页条数改变时触发 选择一页显示多少行
    handleSizeChange(val) {
      this.pageSize = val
      this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
    },
    // 当前页改变时触发 跳转其他页
    handleCurrentChange(val) {
      this.currentPage = val
      this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
    }
  }
}
            },
            // 每页条数改变时触发 选择一页显示多少行
            handleSizeChange(val) {
                this.pageSize = val
                this.getRawMaterialList({
                    pageNo: this.currentPage,
                    pageSize: this.pageSize
                })
            },
            // 当前页改变时触发 跳转其他页
            handleCurrentChange(val) {
                this.currentPage = val
                this.getRawMaterialList({
                    pageNo: this.currentPage,
                    pageSize: this.pageSize
                })
            },
            insert() {
                this.$refs['addMaterialForm'].validate((valid) => {
                    if (valid) {
                        var str = {
                            "dateSurvey": this.insertData.fromDate,
                            "materialCoding": this.insertData.mCode,
                            "materialName": this.insertData.mName,
                            "quantity": this.insertData.num,
                            "specificationsModels": this.insertData.specificationsNumber[0] + '-' + this.insertData
                                .specificationsNumber[1],
                            "supplierName": this.insertData.supplierName,
                            "type": 0,
                            "unit": this.insertData.unit
                        }
                        this.materialList.forEach(a => {
                            if (a.id == str.materialName) {
                                str.materialName = a.name
                            }
                        })
                        addMaterial(str).then(res => {
                            this.$message.success('添加成功')
                            this.addReportVisible = false
                            this.getRawMaterialList()
                        })
                    } else {
                        return false;
                    }
                });
            },
            getMaterielName() {
                getMaterielName().then(res => {
                    this.materialList = res.data
                })
            },
            getSpecification(val) {
                this.materialList.forEach(a => {
                    if (a.id == val) {
                        this.insertData.mCode = a.code
                    }
                })
                getSpecification({
                    materialId: val
                }).then(res => {
                    this.childrenOptions = JSON.parse(JSON.stringify(res.data).replaceAll('specifications', '').replaceAll(
                        'model', ''))
                })
            }
        }
    }
</script>
<style scoped lang="scss">
@@ -698,4 +715,4 @@
            }
        }
    }
</style>
</style>