王震
2023-11-08 62a8027a631f0d43056807657e7bdcca96abcc86
src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -3,22 +3,15 @@
    <div class="page-header">
      <div class="header-left">
        <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a>
        <h2>编辑-原材料检验</h2>
        <h2 v-if="resultVal!=null && dataForm.id!=null">查看-原材料检验</h2>
        <h2 v-else>编辑-原材料检验</h2>
      </div>
      <div class="btn-group header-right">
        <el-button @click="save()">保存</el-button>
        <el-button @click="save()" v-if="this.dataForm.id==null">保存</el-button>
      </div>
    </div>
    <div class="page-main">
      <div class="rawMaterial-basic">
        <el-row style="width:100%;height:20px;margin-bottom:20px;" v-show="dataForm.id==null">
          <el-col :span="20">
            <span style="color:red;font-size:18px;padding: 0;margin: 0;">请扫描二维码获取数据</span>
          </el-col>
          <el-col :span="4" style="text-align: right;">
            <el-button>扫描二维码</el-button>
          </el-col>
        </el-row>
        <el-form
        :model="dataForm"
        :rules="dataRule"
@@ -27,15 +20,15 @@
        class="l-mes"
        label-width="110px">
            <el-row>
            <el-col :span="6">
                <el-form-item prop="formTime" label="来料日期">
                <el-date-picker
                    v-model="dataForm.formTime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    disabled>
                </el-date-picker>
              <el-col :span="6">
                <el-form-item label="零件号" prop="code">
                <el-input v-model="dataForm.code" :disabled="resultVal!=null && dataForm.id!=null">
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    :disabled="resultVal!=null && dataForm.id!=null"
                    @click="queryCode()"></el-button>
                </el-input>
                </el-form-item>
            </el-col>
            <el-col :span="6">
@@ -45,8 +38,15 @@
                </el-form-item>
            </el-col>
            <el-col :span="6">
                <el-form-item label="原材料编码" prop="code">
                <el-input v-model="dataForm.code" disabled></el-input>
                <el-form-item prop="formTime" label="来料日期">
                <el-date-picker
                    style="width:100%"
                    v-model="dataForm.formTime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    disabled>
                </el-date-picker>
                </el-form-item>
            </el-col>
            <el-col :span="6">
@@ -71,106 +71,273 @@
                </el-col>
                <el-col :span="6">
                  <el-form-item label="数量" prop="number">
                      <el-input v-model="dataForm.number" />
                      <el-input v-model="dataForm.number" :disabled="resultVal!=null" />
                  </el-form-item>
                </el-col>
                <el-col :span="6">
                  <el-form-item label="报检日期" prop="createTime" v-if="dataForm.id!=null">
                      <el-input v-model="dataForm.createTime" />
                  <el-form-item  prop="projectName" label="项目名称">
                    <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName">
                      <el-input v-model="dataForm.projectName" disabled ></el-input>
                    </el-tooltip>
                  </el-form-item>
                </el-col>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="6">
                  <el-form-item label="报检日期" prop="createTime" v-if="dataForm.id!=null">
                      <el-input v-model="dataForm.createTime" disabled />
                  </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="报检人" prop="createUser" v-if="dataForm.id!=null">
                      <el-input v-model="dataForm.createUser" />
                      <el-input v-model="dataForm.createUser" disabled />
                </el-form-item>
              </el-col>
            </el-row>
        </el-form>
      </div>
      <div class="rawMaterial-detail">
        <el-row style="width:100%;z-index: 10;height:50px;">
            <el-col :span="19">检验项目</el-col>
            <el-col :span="5">
                <div style="width:100%;text-align: right;">
                    <el-button v-show="dataForm.id==null" size="small" @click="clickAddLine">添加检验行</el-button>
                    <el-button size="small" @click="addTeatValueColumn()">添加检验值列</el-button>
                    <el-button size="small" @click="delTeatValueColumn()">删除检验值列</el-button>
                    <el-col :span="12"  >
                    <el-button v-if="dataForm.id==null"  icon="el-icon-plus"  type="primary" size="small" @click="increase">添加检验项目</el-button>
                    </el-col>
                    <!-- <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine">添加检验行</el-button> -->
                    <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">添加检测值列</el-button>
                    <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">删除检测值列</el-button>
                </div>
            </el-col>
        </el-row>
        <el-row style="width:100%;margin-top:-30px">
        <el-row style="width:100%;">
            <el-col :span="24">
                <avue-crud
                ref="crud"
                :option="tableOption"
                @current-row-change="changeEquipment"
                :data="list"
                v-model="form">
                  <template slot="testValue" slot-scope="scope">
                    <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="请先选择设备!"
                      placement="top-start">
                      <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValue"
                         @blur="updateTestValue(scope.row)" placeholder="请输入检测值"></el-input>
                    </el-tooltip>
                  </template>
                  <template slot="deviceName" slot-scope="scope">
                    <el-select v-model="scope.row.equipmentId" filterable>
                        <el-option v-for="(item,index) in deviceList"
                        :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option>
                    </el-select>
                  </template>
                  <template slot="testState" slot-scope="scope">
                    <span v-if="scope.row.testState == 0" style="color:#F56C6C">不合格</span>
                    <span v-else-if="scope.row.testState == 1" style="color:#67C23A">合格</span>
                    <span v-else>暂无结论</span>
                  </template>
                </avue-crud>
                <el-table
                :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
                :cell-style="{textAlign:'center'}"
                 ref="table"
                :data="list"
                border
                style="width: 100%;"
                 height="400"
                  row-key="iid"
                  default-expand-all
                  :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
                  <el-table-column type="index" label="序号" width="60">
                  </el-table-column>
                  <el-table-column prop="father" label="检验项目" width="260">
                    <template slot-scope="scope">
                      <el-input v-if="scope.row.children"  :disabled="dataForm.id != null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column prop="name" label="项目" width="260">
                    <template slot-scope="scope">
                    <div v-if="!scope.row.children">
                      <!-- <el-select v-if="projectList.length > 0" :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name"
                      filterable allow-create placeholder="请输入或选择项目名称" style="width:100%" @change="changeName(scope.$index,scope.row)">
                        <el-option v-for="(item,index) in projectList" :key="index" :label="item.name" :value="item.name"/>
                    </el-select>   -->
                      <el-input class="inline-input" v-model="scope.row.name"
                        placeholder="请输入项目名称"></el-input>
                  </div>
                      </template>
                  </el-table-column>
                  <el-table-column prop="unit" label="单位" width="260">
                    <template slot-scope="scope">
                    <div v-if="!scope.row.children">
                      <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="请输入单位"></el-input>
                    </div>
                    </template>
                  </el-table-column>
                  <el-table-column prop="required" label="标准值" width="260">
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                      <el-input :disabled="dataForm.id != null" v-model="scope.row.required"
                        placeholder="请输入标准值"></el-input>
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column prop="testValue" label="检测值" min-width="260" >
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                      <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!"
                        placement="top-start">
                        <!-- <el-input :disabled="dataForm.id != null"
                         v-model="scope.row.testValueList"
                          placeholder="请输入检测值"></el-input> -->
                        <!-- <el-autocomplete style="width:100%" :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)" class="inline-input" v-model="scope.row.testValueList[index]"
                          :fetch-suggestions="querySearch"  placeholder="请输入检测值"  @select="handleSelect"
                        ></el-autocomplete> -->
                        <el-col v-if="scope.row.itype === '1'">
                                            <el-input :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)"
                                                v-model="scope.row.testValueList"
                                                placeholder="请输入检测值"></el-input>
                                    </el-col>
                                    <el-col v-else>
                                            <el-select style="width: 100%;"
                                            :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)"
                                            v-model="scope.row.testValueList"
                                             placeholder="请选择">
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option>
                                            </el-select>
                                    </el-col>
                        </el-tooltip>
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column prop="deviceName" label="试验设备" min-width="260">
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                        <el-select :disabled="resultVal!=null && dataForm.id!=null" style="width:100%"
                        v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)">
                            <el-option v-for="(item,index) in deviceList"
                            :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option>
                        </el-select>
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column prop="note" label="检验描述" width="260" >
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                      <el-input :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="检验描述"></el-input>
                    </div>
                    </template>
                  </el-table-column>
                  <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="结论" min-width="150">
                    <template slot-scope="scope">
                      <span v-if="scope.row.testState == 0" style="color:#F56C6C">不合格</span>
                      <span v-else-if="scope.row.testState == 1" style="color:#67C23A">合格</span>
                      <span v-else>暂无结论</span>
                    </template>
                  </el-table-column>
                  <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="操作" width="150">
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                          <el-button type="text"  @click="addwaydata(scope)">新增</el-button>
                          <el-button type="text" @click="clickDeleteline(scope)">取消</el-button>
                      </div>
                    </template>
                  </el-table-column>
                </el-table>
            </el-col>
        </el-row>
      </div>
      <div class="rawMaterial-detail">
      <div class="rawMaterial-result">
        <el-row>
          <el-col :span="24">检验结论</el-col>
        </el-row>
        <el-row style="width:100%">
          <el-col :span="24">
            <avue-crud
              ref="conclusion"
              :option="option"
              :data="conclusionTable"
              v-model="conclusion">
                <template #menu>
                  <el-button type="text" size="small">上报</el-button>
                </template>
              </avue-crud>
            <el-table border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion"
            :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
            :cell-style="{textAlign:'center'}">
                <el-table-column prop="code" label="物料编号"></el-table-column>
                <el-table-column prop="name" label="物料名称"></el-table-column>
                <el-table-column prop="userName" label="检验员"></el-table-column>
                <el-table-column prop="judgeState" label="检验结论">
                  <template slot-scope="scope">
                    <el-tag type="success" v-if="scope.row.testState == '1'">合格</el-tag>
                    <el-tag type="danger" v-else-if="scope.row.testState == '0'">不合格</el-tag>
                  </template>
                </el-table-column>
                <el-table-column  label="操作">
                    <template>
                        <el-button type="text" :disabled="resultVal!=null && dataForm.id!=null" @click="showDialog()" size="small">上报</el-button>
                    </template>
                </el-table-column>
            </el-table>
          </el-col>
        </el-row>
      </div>
    </div>
    <rawMaterialPartDialog :paramObj="paramObj" :currshowlist.sync="showPart"  @listenToPartEvent="selectPart" />
    <el-dialog
      title="上报"
      :visible.sync="dialogVisible"
      width="30%" class="l-mes">
      <el-row>
        <el-col>
          <span>不合格数量:</span>
          <el-input type="number" v-model="unqualifiedNum" placeholder="请输入不合格数量"/>
        </el-col>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="submitSave()">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import { object,conclusion } from '@/const/crud/quality/rawMaterial'
import { selectDevice,addRawInspects,getObj,updateRawInsProduct } from '@/api/quality/rawMaterial'
import {
  selectDevice,
  addRawInspects,
  getObj,
  updateRawInsProduct,
  updateRawInspectsById,
  updateDeviceById, } from '@/api/quality/rawMaterial'
  import rawMaterialPartDialog from '@/views/common/rawMaterial-part'
export default {
    // props:['currentRow'],
    computed:{},
    components:{
      rawMaterialPartDialog
    },
    data(){
        return{
            columnIndex: 2,
          dataVal: [{
                label: '是',
                value: '是'
            }, {
                label: '否',
                value: '否'
            }],
          // componentData:{},
            userdata:[],
            currentRow:[],
            userlist:[],
            unqualifiedNum: null,
            dialogVisible:false,
            resultVal: null,
            projectList: [],
            paramObj: {},
            IFSData: [],
            showPart: false,
            // 添加列
            empiricalValueAdd: 1,
            // 编辑时存储最长的列数字,做删除判断
            empiricalValueAddMaxNumber: 0,
            columnList: [],
            dataForm:{
                id: null,
                formTime: '2023-10-28 00:00:00',
                name: 'name',
                code: 'code4',
                specs: 'specs',
                unit: 'mm',
                number: '111',
                supplier: 'supplier',
                rawInsProducts: null,
                judgeState: null,
                formTime: '',
                message: '',
                name: '',
                code: '88.118.1/A0498220',
                specs: '',
                unit: '',
                number: '',
                supplier: '',
                rawInsProducts: [{
                  deviceId: 0,
                  father:'',
                  name: '',
                  required: '',
                  testValue: '',
                  unit: '',
                  testValueList: []
                }]
            },
            form: null,
            list:[],
@@ -181,108 +348,240 @@
              userName: '',
              testState: ''
            }],
            tableOption: object,
            option: conclusion,
            dataRule: {},
            deviceList: [],
            restaurants:[],
            whetherNot:'',
        }
    },
    beforeUpdate(){
      this.$nextTick(()=>{
        this.$refs.table.doLayout();
      })
    },
    mounted(){
      this.dataForm.id = this.$route.query.id
      this.resultVal = this.$route.query.resultVal
      if(this.resultVal == null){
        let val = sessionStorage.getItem("raw-resultVal-"+this.dataForm.id)
        val == undefined ? null : this.resultVal=val
      }
      this.init()
      let isShow = this.dataForm.id == null ? true : false
      this.tableOption.menu = isShow
      let len = this.tableOption.column.length
      this.tableOption.column[len-1].hide = isShow
      this.getDeviceList()
      this.restaurants = this.loadAll();
      console.log(this.dataForm);
    },
    watch:{
      'columnList.length':function(newVal){
        const column = [{
              label: '项目',
              width: 260,
              prop: 'name',
              span: 24,
              type: 'text',
              cell: true,
            }, {
              width: 260,
              label: '单位',
              prop: 'unit',
              span: 24,
              type: 'text',
              cell: true,
            }, {
              width: 260,
              label: '标准值',
              prop: 'required',
              type: 'text',
              span: 24,
              cell: true,
            }, {
              label: '检测值',
              prop: 'testValue',
              type: 'text',
              width: 260,
              slot: true,
              formSlot: true,
              cell: true,
            }, {
              label: '试验设备',
              prop: 'deviceName',
              type: 'select',
              cell: true,
              slot: true,
              formSlot: true,
              width: 260
            },{
              label: '结论',
              prop: 'testState',
              type: 'text',
              slot: true,
              formSlot: true,
              hide: true,
              fixed: 'right'
        }]
        if(newVal > 0){
          if(this.columnList.length > 0){
            this.tableOption.column = column
            this.columnList.forEach(item=>{
              this.tableOption.column.splice(4,0,item)
            })
          }
        }else{
          this.tableOption.column = column
      dialogVisible(newVal){
        if(newVal){
          this.unqualifiedNum = null
        }
      },
    },
    methods:{
      changeEquipment(current,old){
        console.log(current,old)
      increase(){
      },
      querySearch(queryString, cb) {
        var restaurants = this.restaurants;
        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
        cb(results);
      },
      // createFilter(queryString) {
      //     return (restaurant) => {
      //       return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
      //     };
      //   },
      // loadAll(){
      //   return [
      //   {"value":"是"},
      //   {"value":"否"}
      // ];},
      // handleSelect(item) {
      //   console.log(item);
      // },
      changeName(index,row){
        this.projectList.forEach(item=>{
          if(row.name == item.name){
            this.list[index].unit = item.unit
            this.list[index].required = item.required
          }
        })
      },
      // 确认回调
      selectPart(param, nodePart, index) {
        console.log(param)
        if (typeof param !== 'undefined') {
          this.dataForm.code = param.code
          this.dataForm.name = param.name
          this.dataForm.formTime = param.formTime
          this.dataForm.unit = param.unit
          this.dataForm.specs = param.specs
          this.dataForm.supplier = param.supplier
          this.dataForm.number = param.number
          this.dataForm.message = param.message
          this.dataForm.projectName = param.projectName
          this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts
          console.log(param.rawInsProducts);
          param.rawInsProducts.forEach(item =>{
                      item.iid = Math.random()
                      console.log(item);
                    })
          // param.rawInsProducts.forEach(item => {
          //               item.iid = Math.random()
          //               if (item.children != undefined) {
          //                   item.children.forEach(obj => {
          //                       let arr = []
          //                       if (obj.userName) {
          //                         userNameList.push(obj.userName)
          //                       }
          //                       if (obj.inspectionValue) {
          //                           arr = obj.inspectionValue.split(",")
          //                       }
          //                       obj.empiricalValueAddss = arr
          //                       if (arr.length > this.empiricalValueAdd) {
          //                           this.empiricalValueAdd = arr.length
          //                       }
          //                   })
          //               }
          //           })
          //           this.list.push( param.rawInsProducts)
          param.rawInsProducts.forEach(o=>{
            this.clickAddLine(o)
          })
        }
      },
      queryCode(){
        this.paramObj = {
          code: this.dataForm.code
        }
        this.showPart = true
      },
      updateDevice(row,index){
        if(this.dataForm.id != null){
          updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{
            this.list[index].testValue = ''
            this.list[index].testState = null
            this.list[index].testValueList = []
          }).catch(error=>{
            console.log(error)
          })
        }
      },
      checkTestState(){
          let resultVal = '1'
          this.list.forEach(item=>{
              if(item.children){
                if(obj.testState == 0){
                    resultVal = '0'
                }
              }
          })
          this.resultVal = resultVal
          this.conclusionTable[0].testState = resultVal
          sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,resultVal)
      },
      showDialog(){
        let pro = this.list.filter(item => {
          return item.testState == 0;
        })
        if (pro.length > 0) {
          this.dialogVisible = true
        }else{
          this.submitSave()
        }
      },
      //上报
      submitSave(){
        let data = {
          id: this.dataForm.id,
          number: this.unqualifiedNum,
          // toLocationNo: this.fiedNum
        }
        updateRawInspectsById(data).then(res => {
          if(res.data.code == 0){
            sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data)
            this.$message.success("上报成功");
            this.dialogVisible = false
            this.checkTestState()
          }
        });
      },
      addTeatValueColumn(){
        let propName = 'testValue' + this.columnIndex
        this.columnList.push({
          label: '检测值',
          prop: propName,
          type: 'text',
          width: 260,
          $cellEdit: true,
          disabled: this.list[0].equiomentId == null
        })
        this.columnIndex+=1
        this.empiricalValueAdd = this.empiricalValueAdd + 1;
      },
      // 添加行
      clickAddLine(row) {
        console.log(row);
        // console.log(row.children[0]);
        // this.componentData = row;
        let obj = {
          father:null,
          // componentData.deviceId: null,
          // name: "",
          // required: "",
          // testValue: "",
          // unit: "",
          // testState: null,
          children:[],
          testValueList: [],
        };
        let userNameList = []
        row.children.forEach(item => {
                        item.iid = Math.random()
                        if (item.children != undefined) {
                            item.children.forEach(obj => {
                                let arr = []
                                if (obj.userName) {
                                  userNameList.push(obj.userName)
                                }
                                if (obj.inspectionValue) {
                                    arr = obj.inspectionValue.split(",")
                                }
                                obj.empiricalValueAddss = arr
                                if (arr.length > this.empiricalValueAdd) {
                                    this.empiricalValueAdd = arr.length
                                }
                            })
                        }
                    })
                  console.log(this.list);
                    // this.list = row.children
        this.list.push(row)
        // console.log(this.list);
        // if(row!=undef.list){
        //   obj.name = row.children.name
        //   obj.unit = row.children.unit
        //   obj.required = row.children.required
        // }
        // this.list.push(obj)
      },
      delTeatValueColumn(){
        this.columnList.pop()
        if (this.empiricalValueAdd - 1 === 0) { } else {
          if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
            this.empiricalValueAdd = this.empiricalValueAdd - 1;
            this.list.forEach(i => {
              i.testValueList.splice(this.empiricalValueAdd, 1);
            });
          }
        }
      },
      updateTestValue(row){
        if(row.rpId == null){
      updateTestValue(row,index){
        if(row.rpId == null || row.testValueList[index]==null){
          return
        }
        let obj = {
          equiomentId: row.equipmentId,
          deviceId: row.deviceId,
          rpId: row.rpId,
          testValue: row.testValue
          testValue: row.testValueList.join(",")
        }
        updateRawInsProduct(obj).then(res=>{
          if(res.data.code === 0){
@@ -298,6 +597,8 @@
      init(){
        if(this.dataForm.id){
          getObj(this.dataForm.id).then(res=>{
            console.log(res);
            let data = res.data.data
            this.dataForm.name = data.name
            this.dataForm.formTime = data.formTime
@@ -306,74 +607,188 @@
            this.dataForm.unit = data.runit
            this.dataForm.supplier = data.supplier
            this.dataForm.number = data.number
            this.dataForm.projectName = data.projectName
            this.dataForm.createTime = data.creatTime
            this.dataForm.createUser = data.createUser
            let userNameList = []
            this.list = []
            data.children.forEach(item=>{
              userNameList.push(item.userName)
              this.list.push({
                equipmentId: item.equiomentId,
                name: item.rpName,
                required: item.required,
                testValue: item.testValue,
                unit: item.rpUnit,
                testState: item.testState,
                rpId: item.rpId
              })
            })
            this.conclusionTable = [{
              code: data.code,
              name: data.name,
              userName: Array.from(new Set(userNameList)).join(','),
              testState: ''
            }]
            // data.children.forEach(item=>{
            //   userNameList.push(item.userName)
            //   let arr = []
            //   if(item.testValue != undefined ){
            //     arr = item.testValue.split(",")
            //     if(arr.length > this.empiricalValueAdd){
            //       this.empiricalValueAdd = arr.length
            //     }
            //   }
            //   this.userdata = item.children[0];
            //   console.log(this.userdata);
            //   this.list.push({
            //     father: item.rpFather,
            //     note: this.userdata.note,
            //     deviceId: this.userdata.deviceId,
            //     deviceName: this.userdata.deviceName,
            //     name: this.userdata.rpName,
            //     required: this.userdata.required,
            //     testValue: this.userdata.testValue,
            //     unit: this.userdata.rpUnit,
            //     testState: this.userdata.testState,
            //     rpId: this.userdata.rpId,
            //     testValueList: arr
            //   })
            // })
            console.log("=======================");
            console.log(data.children);
            // data.children.forEach(item => {
            //             item.iid = Math.random()
            //             if (item.children != undefined) {
            //                 item.children.forEach(obj => {
            //                   console.log(obj);
            //                   obj.ild = Math.random()
            //                     // let arr = []
            //                     // if (obj.userName) {
            //                     //   userNameList.push(obj.userName)
            //                     // }
            //                     // if (obj.inspectionValue) {
            //                     //     arr = obj.inspectionValue.split(",")
            //                     // }
            //                     // obj.empiricalValueAddss = arr
            //                     // if (arr.length > this.empiricalValueAdd) {
            //                     //     this.empiricalValueAdd = arr.length
            //                     // }
            //                 })
            //             }
            //           })
                      console.log(data.children);
            //             this.userdata = data.children
            //             this.list.push({
            //               father: item.rpFather,
            //               note: this.userdata.note,
            //               deviceId: this.userdata.deviceId,
            //               deviceName: this.userdata.deviceName,
            //               name: this.userdata.rpName,
            //               required: this.userdata.required,
            //               testValue: this.userdata.testValue,
            //               unit: this.userdata.rpUnit,
            //               testState: this.userdata.testState,
            //               rpId: this.userdata.rpId,
            //               testValueList: arr
            //             })
            //         })
                    // console.log(this.list);
                    // this.userdata = data.children
                        this.list.push(data.children )
                    console.log( this.list);
                    this.conclusionTable = [{
                      code: data.code,
                      name: data.name,
                      userName: Array.from(new Set(userNameList)).join(','),
                      testState: this.resultVal==null?null:this.resultVal
                    }]
          }).catch(error=>{
            this.$message.error("获取失败",error)
          })
        }else{
          this.conclusionTable = []
          this.tableOption.column = object.column
        }
      },
       // 删除行
       clickDeleteline(scope) {
        // console.log(55555);
        console.log(scope);
        let index = this.list.findIndex(el =>{
          return el.children.find(ele => ele.iid == scope.row.iid)
        })
        let childrenIndex = this.list[index].children.findIndex(el => {
          return el.iid == scope.row.iid
        })
        // console.log(this.list);
        console.log(index);
        console.log(childrenIndex);
        this.list[index].children.splice(childrenIndex , 1);
        if(childrenIndex == 0){
          this.list.splice(scope.row,1)
        }
      },
      increase(){
        let obj = {
          iid:Math.random(),
          father:'',
          children:[
            {
              iid:Math.random(),
              name:'',
              required:'',
              unit:''
            }
          ]
        }
        this.list.push(obj)
      },
      addwaydata(row){
        console.log(row.row);
       let index = this.list.findIndex(el =>{
          return el.children.find(ele => ele.iid == row.row.iid)
        })
        console.log(index);
        let obj = {
          iid:Math.random(),
          name:'',
          required:'',
          unit:''
        }
        this.list[index].children.push(obj)
      },
      save(){
        console.log(this.dataForm);
        let data = this.dataForm
        console.log(data);
        console.log(this.list);
        data.rawInsProducts = this.list
        console.log(this.list)
        return
        // console.log(data.rawInsProducts);
        // data.rawInsProducts.forEach(item=>{
        //   console.log(item);
        //   let val = item.testValueList.join(",")
        //   item.testValue = val
        //   console.log(item.testValue);
        // })
        // console.log(data);
        console.log('=====>');
        addRawInspects(data).then(res=>{
            this.$message.success("保存成功")
            // this.$message.success("保存成功")
            this.$router.go(-1)
        }).catch(error=>{
          this.$message.error(error)
          // this.$message.error(error||'error')
        })
      },
      // 添加行
      clickAddLine() {
        let obj = {
          $cellEdit: true,
          equipmentId: null,
          name: "",
          required: "",
          testValue: "",
          unit: ""
        };
        this.list.push(obj);
      },
      getDeviceList(){
        selectDevice(null).then(res=>{
        selectDevice().then(res=>{
          this.deviceList = res.data.data
        })
      },
    },
    computed:{},
    components:{}
}
</script>
<style>
.rawMaterial-detail {
  width: 100%;
  height: 400px;
  height: 470px;
  padding: 10px 20px;
  display: flex;
  border: 1px solid #ddd;
  background-color: #fff;
  margin-top: 10px;
  box-sizing: border-box;
  flex-wrap: wrap;
}
.rawMaterial-result {
  width: 100%;
  height: 150px;
  padding: 10px 20px;
  display: flex;
  border: 1px solid #ddd;
@@ -385,7 +800,7 @@
.rawMaterial-basic {
  background-color: #fff;
  height: 150px;
  height: 155px;
  display: flex;
  flex-wrap: wrap;
  padding: 10px 20px;