<template>
  <div id="quality-form">
    <el-row class="row">
      <el-col :span="4">
        <span class="machineClass">机号:</span>
        <el-select style="width:100px" v-model="forms.bed">
          <el-option
            v-for="item in this.bedNumber"
            :key="item.id"
            :label="item.number"
            :value="item.id"
          ></el-option>
        </el-select>
      </el-col>
      <el-col :span="6">
        <span class="machineClass">取样标本:</span>
        <el-select
          style="width:130px"
          v-model="forms.sename"
          @change="changeTable"
        >
          <el-option
            v-for="item in this.tableTypes"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          ></el-option>
        </el-select>
      </el-col>
      <el-col :span="11">
        <span class="machineClass">日期查询:</span>
        <el-date-picker
          v-model="forms.start_time"
          prefix-icon="none"
          type="date"
          placeholder="请选择"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd"
          style="width:150px"
        ></el-date-picker
        >-
        <el-date-picker
          v-model="forms.end_time"
          prefix-icon="none"
          type="date"
          placeholder="请选择"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd"
          style="width:150px"
        ></el-date-picker>
      </el-col>
      <el-col :span="2">
        <el-button type="primary" @click="queryTable()">查询</el-button>
      </el-col>
      <!-- <el-col :span="2">
        <el-button>打印</el-button>
      </el-col>-->
    </el-row>
    <el-row style="display: flex;align-items: center;">
      <el-col :span="2">
        <el-checkbox v-model="checkAllStatus" @change="changeCheck"
          >全选</el-checkbox
        >
      </el-col>
      <el-col :span="3">
        <el-button size="small" @click="BatchDelete" v-show="show"
          >批量删除</el-button
        >
        <el-button size="small" @click="BatchDeleteOne" v-show="showOne"
          >批量删除</el-button
        >
        <el-button size="small" @click="BatchDeleteTwo" v-show="showTwo"
          >批量删除</el-button
        >
      </el-col>
    </el-row>
    <el-row>
      <!-- 细菌培养表 -->
      <el-table
        ref="multipleTable"
        @selection-change="handleSelectionChange"
        :row-style="{ color: '#303133' }"
        :header-cell-style="{
          backgroundColor: 'rgb(245, 247, 250)',
          color: '#606266'
        }"
        :data="tableData"
        border
        fit
        highlight-current-row
        style="width: 100%;margin-top: 10px;"
        v-show="show"
      >
        <el-table-column
          align="center"
          type="selection"
          width="55"
        ></el-table-column>
        <el-table-column prop="date" label="机号" width="80" align="center">
          <template slot-scope="scope">{{ scope.row.bed }}</template>
        </el-table-column>
        <el-table-column
          prop="name"
          label="取样日期"
          width="100"
          align="center"
        >
          <template slot-scope="scope">
            {{ getTime(scope.row.speling_date) }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="取样标本"
          width="100"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.specimen }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="A浓缩液批号"
          width="80"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.concentrate_noa }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="B浓缩液批号"
          width="80"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.concentrate_nob }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="采样部位"
          width="100"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.sampling_locationa }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="检测单位"
          width="100"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.detection_unit }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="取样者"
          width="80"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.user_name }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="出报告日期"
          width="110"
          align="center"
        >
          <template slot-scope="scope">
            {{ getTime(scope.row.reporting_date) }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="检测结果(cfu/ml)"
          width="140"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.detection_result }}
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" min-width="150px">
          <template slot-scope="scope">
            <el-tooltip
              class="item"
              effect="dark"
              content="编辑"
              placement="top"
            >
              <el-button
                size="mini"
                type="primary"
                icon="el-icon-edit-outline"
                @click="
                  EditCulture(scope.row.id, scope.row.sampler, scope.$index)
                "
              ></el-button>
            </el-tooltip>

            <el-tooltip
              class="item"
              effect="dark"
              content="删除"
              placement="top"
            >
              <el-button
                size="mini"
                type="danger"
                icon="el-icon-delete"
                @click="DeleteCultrues(scope.row.id, scope.$index)"
              ></el-button>
            </el-tooltip>
          </template>
        </el-table-column>
      </el-table>

      <!-- 内霉素检测表字段 -->
      <el-table
        ref="multipleTableOne"
        @selection-change="handleSelectionChangeOne"
        :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }"
        :data="table"
        border
        fit
        highlight-current-row
        style="width: 100%;margin-top: 10px;"
        v-show="showOne"
      >
        <el-table-column
          align="center"
          type="selection"
          width="55"
        ></el-table-column>
        <el-table-column prop="date" label="机号" width="80" align="center">
          <template slot-scope="scope">{{ scope.row.bed }}</template>
        </el-table-column>
        <el-table-column
          prop="name"
          label="取样日期"
          width="100"
          align="center"
        >
          <template slot-scope="scope">
            {{ getTime(scope.row.sampling_date) }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="取样标本"
          width="100"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.specimenb }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="A浓缩液批号"
          width="80"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.concentrate_noc }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="B浓缩液批号"
          width="80"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.concentrateb_nod }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="采样部位"
          width="100"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.sampling_locationb }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="检测单位"
          width="100"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.detection_unit }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="取样者"
          width="80"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.user_name }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="出报告日期"
          width="110"
          align="center"
        >
          <template slot-scope="scope">
            {{ getTime(scope.row.reporting_dateb) }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="检测结果(cfu/ml)"
          width="100"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.detection_resultb }}
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" min-width="150px">
          <template slot-scope="scope">
            <el-tooltip
              class="item"
              effect="dark"
              content="编辑"
              placement="top"
            >
              <el-button
                size="mini"
                type="primary"
                icon="el-icon-edit-outline"
                @click="EditDialyState(scope.row.id, scope.$index)"
              ></el-button>
            </el-tooltip>

            <el-tooltip
              class="item"
              effect="dark"
              content="删除"
              placement="top"
            >
              <el-button
                size="mini"
                type="primary"
                icon="el-icon-delete"
                @click="DeleteDialystates(scope.row.id, scope.$index)"
              ></el-button>
            </el-tooltip>
          </template>
        </el-table-column>
      </el-table>

      <!-- 透析液离子浓度检测 -->
      <el-table
        ref="multipleTableTwo"
        @selection-change="handleSelectionChangeTwo"
        :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }"
        :data="tableDatas"
        border
        fit
        highlight-current-row
        style="width: 100%;margin-top: 10px;"
        v-show="showTwo"
      >
        <el-table-column
          align="center"
          type="selection"
          width="55"
        ></el-table-column>
        <el-table-column prop="date" label="机号" width="80" align="center">
          <template slot-scope="scope">{{ scope.row.bed }}</template>
        </el-table-column>
        <el-table-column prop="name" label="取样日期" width="80" align="center">
          <template slot-scope="scope">
            {{ getTime(scope.row.sampling_date) }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="取样者"
          width="80"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.user_name }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="检测单位"
          width="80"
          align="center"
        >
          <template slot-scope="scope">{{ scope.row.detection_unit }}</template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="A浓缩液批号"
          width="80"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.concentrate_nof }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="B浓缩液批号"
          width="80"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.concentrate_nog }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="出报告日期"
          width="80"
          align="center"
        >
          <template slot-scope="scope">
            {{ getTime(scope.row.date_reportc) }}
          </template>
        </el-table-column>
        <el-table-column
          prop="address"
          label="检测结果"
          width="80"
          align="center"
        >
          <el-table-column
            prop="address"
            label="实际Na⁺(mmol/L)"
            width="80"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_na }}</template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="配方Na⁺(mmol/L)"
            width="90"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_pna }}</template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="K⁺(mmol/L)"
            width="80"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_k }}</template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="Ca2⁺(mmol/L)"
            width="80"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_ca }}</template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="Cl¯(mmol/L)"
            width="80"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_ci }}</template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="HCO3¯(mmol/L)"
            width="80"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_hco }}</template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="Mg2⁺(mmol/L)"
            width="80"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_mg }}</template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="PH(mmol/L)"
            width="80"
            align="center"
          >
            <template slot-scope="scope">{{ scope.row.actual_ph }}</template>
          </el-table-column>
        </el-table-column>
        <el-table-column prop="address" label="备注" width="80" align="center">
          <template slot-scope="scope">{{ scope.row.remakes }}</template>
        </el-table-column>
        <el-table-column label="操作" align="center" min-width="150px">
          <template slot-scope="scope">
            <el-tooltip
              class="item"
              effect="dark"
              content="编辑"
              placement="top"
            >
              <el-button
                size="mini"
                type="primary"
                icon="el-icon-edit-outline"
                @click="EditIon(scope.row.id, scope.$index)"
              ></el-button>
            </el-tooltip>

            <el-tooltip
              class="item"
              effect="dark"
              content="删除"
              placement="top"
            >
              <el-button
                size="mini"
                type="primary"
                icon="el-icon-delete"
                @click="DeleteIons(scope.row.id, scope.$index)"
              ></el-button>
            </el-tooltip>
          </template>
        </el-table-column>
      </el-table>
    </el-row>

    <!-- 编辑细菌培养 -->
    <el-dialog
      title="细菌培养"
      :visible.sync="dialogVisible"
      width="60%"
      center
    >
      <el-form :model="form" ref="form" :rules="rules">
        <el-row>
          <el-col :span="8">
            <el-form-item label="取样日期:">
              <el-date-picker
                v-model="form.date"
                prefix-icon="none"
                type="date"
                placeholder="请选择"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                style="width:150px"
              ></el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="取样标本:">
              <el-select
                style="width:130px"
                v-model="form.specimen"
                @change="changeSpecimen"
              >
                <el-option
                  v-for="item in samplingSpecimen"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="A浓缩液批号:">
              <el-input
                style="width:130px"
                v-model="form.concentrate_noa"
                :disabled="disable"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="B浓缩液批号">
              <el-input
                style="width:130px"
                v-model="form.concentrate_nob"
                :disabled="diableTwo"
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="采样部位:">
              <el-select style="width:130px" v-model="form.sampling_locationa">
                <el-option
                  v-for="item in samplingLocation"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="检测单位:" required prop="detection_unit">
              <el-input
                style="width:180px"
                v-model="form.detection_unit"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="取样者:" required prop="sampler">
              <el-select style="width:130px" v-model="form.sampler">
                <el-option
                  v-for="item in sampling"
                  :key="item.admin_user_id"
                  :label="item.user_name"
                  :value="item.admin_user_id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="出报告日期:">
              <el-date-picker
                v-model="form.reporting_date"
                prefix-icon="none"
                type="date"
                placeholder="请选择"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                style="width:150px"
              ></el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24" class="result">
            <el-form-item label="检测结果:(cfu/ml)">
              <el-input
                type="textarea"
                :rows="2"
                placeholder="请输入内容"
                style="width:600px"
                v-model="form.detection_result"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="UpdateCulture('form')"
          >保存</el-button
        >
      </span>
    </el-dialog>

    <!-- 编辑内霉素检测 -->
    <el-dialog
      title="内霉素检测"
      :visible.sync="dialogVisibleTwo"
      width="60%"
      center
    >
      <el-form :model="diaForm" ref="diaForm" rules="diaRules">
        <el-row>
          <el-col :span="8">
            <el-form-item label="取样日期:">
              <el-date-picker
                v-model="diaForm.sampling_date"
                prefix-icon="none"
                type="date"
                placeholder="请选择"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                style="width:150px"
              ></el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="取样标本:">
              <el-select
                style="width:130px"
                v-model="diaForm.specimenb"
                @change="changeSpeciment"
              >
                <el-option
                  v-for="item in samplingSpecimen"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="A浓缩液批号:">
              <el-input
                style="width:130px"
                v-model="diaForm.concentrate_noc"
                :disabled="disable"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="B浓缩液批号:">
              <el-input
                style="width:130px"
                v-model="diaForm.concentrateb_nod"
                :disabled="diableTwo"
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="采样部位:">
              <el-select
                style="width:130px"
                v-model="diaForm.sampling_locationb"
              >
                <el-option
                  v-for="item in samplingLocation"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="检测单位:" required prop="detection_unit">
              <el-input
                style="width:180px"
                v-model="diaForm.detection_unit"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="取样者:" required prop="samplerb">
              <el-select style="width:130px" v-model="diaForm.samplerb">
                <el-option
                  v-for="item in sampling"
                  :key="item.admin_user_id"
                  :label="item.user_name"
                  :value="item.admin_user_id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="出报告日期:">
              <el-date-picker
                v-model="diaForm.reporting_dateb"
                prefix-icon="none"
                type="date"
                placeholder="请选择"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                style="width:150px"
              ></el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="检测结果:(cfu/ml)">
              <el-input
                type="textarea"
                :rows="2"
                placeholder="请输入内容"
                style="width:600px"
                v-model="diaForm.detection_resultb"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisibleTwo = false">取 消</el-button>
        <el-button type="primary" @click="UpdateDialyState('diaForm')"
          >保存</el-button
        >
      </span>
    </el-dialog>

    <!--  -->
    <el-dialog
      title="透析液离子浓度检测"
      :visible.sync="dialogVisibleThree"
      width="50%"
      center
    >
      <el-row>
        <el-form :model="ionForm" ref="ionForm" :rule="ionrule">
          <el-row>
            <el-col :span="8">
              <el-form-item label="取样日期:">
                <el-date-picker
                  v-model="ionForm.dateb"
                  prefix-icon="none"
                  type="date"
                  placeholder="请选择"
                  format="yyyy-MM-dd"
                  value-format="yyyy-MM-dd"
                  style="width:150px"
                ></el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="取样者:" required prop="samplerc">
                <el-select style="width:130px" v-model="ionForm.samplerc">
                  <el-option
                    v-for="item in sampling"
                    :key="item.admin_user_id"
                    :label="item.user_name"
                    :value="item.admin_user_id"
                  ></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="检测单位:" required prop="detection_unit">
                <el-input
                  style="width:180px"
                  v-model="ionForm.detection_unit"
                ></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="A浓缩液批号:">
                <el-input
                  style="width:130px"
                  v-model="ionForm.concentrate_nof"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="B浓缩液批号:">
                <el-input
                  style="width:130px"
                  v-model="ionForm.concentrate_nog"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="出报告日期:">
                <el-date-picker
                  v-model="ionForm.date_reportc"
                  prefix-icon="none"
                  type="date"
                  placeholder="请选择"
                  format="yyyy-MM-dd"
                  value-format="yyyy-MM-dd"
                  style="width:150px"
                ></el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="实际Na⁺(mmol/L):">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_na"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="配方Na⁺(mmol/L):">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_pna"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="K⁺ (mmol/L):">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_k"
                ></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="Ca2⁺(mmol/L):">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_ca"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="CI¯(mmol/L):">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_ci"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="HCO3¯(mmol/L):">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_hco"
                ></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="Mg2⁺(mmol/L):">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_mg"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="PH:">
                <el-input
                  style="width:100px"
                  v-model="ionForm.actual_ph"
                ></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="24">
              <el-form-item label="备注:">
                <el-input
                  type="textarea"
                  :rows="2"
                  placeholder="请输入内容"
                  style="width:500px"
                  v-model="ionForm.remakes"
                ></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisibleThree = false">取 消</el-button>
        <el-button type="primary" @click="UpdateIon('ionForm')">保存</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import {
  getAllSubregion,
  getAllQulityInfo,
  EditCulture,
  UpdateCulture,
  getAllOrganization,
  DeleteCultrue,
  EditDialyState,
  UpdateDialyState,
  DeleteDialystate,
  EditIon,
  UpdateIon,
  DeleteIon,
  queryTable,
  DeleteCultrues,
  DeleteDialystates,
  DeleteIons
} from "@/api/manage";
import { uParseTime } from "@/utils/tools";
export default {
  name: "QualityForm",
  data() {
    return {
      isIndeterminate: false,
      checkAllStatus: false,
      beds: [],
      forms: {
        bed: "",
        sename: 1,
        start_time: "",
        end_time: ""
      },
      tableData: [],
      table: [],
      tableDatas: [],
      show: true,
      showOne: false,
      showTwo: false,
      bedNumber: [],
      tableTypes: [
        { id: 1, name: "细菌培养" },
        { id: 2, name: "内霉素检测" },
        { id: 3, name: "透析液离子浓度检测" }
      ],
      dialogVisible: false,
      dialogVisibleTwo: false,
      dialogVisibleThree: false,
      disable: true,
      diableTwo: true,
      form: {
        id: "",
        date: "",
        specimen: "",
        concentrate_noa: "",
        concentrate_nob: "",
        sampling_locationa: "",
        detection_unit: "",
        sampler: "",
        reporting_date: "",
        detection_result: ""
      },
      diaForm: {
        id: "",
        sampling_date: "",
        specimenb: "",
        concentrate_noc: "",
        concentrateb_nod: "",
        sampling_locationb: "",
        detection_unit: "",
        samplerb: "",
        reporting_dateb: "",
        detection_resultb: ""
      },
      sampling: [],
      samplingSpecimen: [
        { id: 0, name: "请选择" },
        { id: 1, name: "透析液" },
        { id: 2, name: "A浓缩液" },
        { id: 3, name: "B浓缩液" },
        { id: 4, name: "置换液" },
        { id: 5, name: "透析用水" }
      ],
      samplingLocation: [
        { id: 0, name: "请选择" },
        { id: 1, name: "透析液入口" },
        { id: 2, name: "透析液取样口" },
        { id: 3, name: "置换液出口" },
        { id: 4, name: "透析机反渗水入口" }
      ],
      rules: {
        detection_unit: [{ required: true, message: "请填写检测单位" }],
        sampler: [{ required: true, message: "请填写取样者" }]
      },
      diaRules: {
        detection_unit: [{ required: true, message: "请填写检测单位" }],
        samplerb: [{ required: true, message: "请填写取样者" }]
      },
      ionrule: {
        detection_unit: [{ required: true, message: "请填写检测单位" }],
        samplerc: [{ required: true, message: "请填写取样者" }]
      },
      selectCulture: [],
      ionForm: {
        dateb: "",
        samplerc: "",
        detection_unit: "",
        concentrate_nof: "",
        concentrate_nog: "",
        date_reportc: "",
        actual_na: "",
        actual_pna: "",
        actual_k: "",
        actual_ca: "",
        actual_ci: "",
        actual_hco: "",
        actual_mg: "",
        actual_ph: ""
      }
    };
  },
  methods: {
    changeCheck() {
      this.$refs.multipleTable.clearSelection();
      if (this.checkAllStatus) {
        this.$refs.multipleTable.toggleAllSelection();
      }

      this.$refs.multipleTableOne.clearSelection();
      if (this.checkAllStatus) {
        this.$refs.multipleTableOne.toggleAllSelection();
      }

      this.$refs.multipleTableTwo.clearSelection();
      if (this.checkAllStatus) {
        this.$refs.multipleTableTwo.toggleAllSelection();
      }
    },
    handleSelectionChange(val) {
      this.selectCulture = val;
    },
    handleSelectionChangeOne(val) {
      this.selectCulture = val;
    },
    handleSelectionChangeTwo(val) {
      this.selectCulture = val;
    },
    getAllSubregion() {
      getAllSubregion().then(response => {
        var zones = response.data.data.zones;
        var numbers = response.data.data.numbers;
        var number = [{ id: 0, number: "全部" }];
        for (let index = 0; index < numbers.length; index++) {
          const item = numbers[index];
          number.push({ id: item.id, number: item.number });
        }
        this.bedNumber = number;
      });
    },
    getAllQulityInfo() {
      getAllQulityInfo().then(response => {
        if (response.data.state === 1) {
          var cultures = response.data.data.cultures;
          // console.log('cultures', cultures)

          for (let index = 0; index < cultures.length; index++) {
            if (cultures[index].specimen === 0) {
              cultures[index].specimen = "";
            }
            if (cultures[index].specimen === 1) {
              cultures[index].specimen = "透析液";
            }
            if (cultures[index].specimen === 2) {
              cultures[index].specimen = "A浓缩液";
            }
            if (cultures[index].specimen === 3) {
              cultures[index].specimen = "B浓缩液";
            }
            if (cultures[index].specimen === 4) {
              cultures[index].specimen = "置换液";
            }
            if (cultures[index].specimen === 5) {
              cultures[index].specimen = "透析用水";
            }

            if (cultures[index].sampling_locationa === 0) {
              cultures[index].sampling_locationa = "";
            }

            if (cultures[index].sampling_locationa === 1) {
              cultures[index].sampling_locationa = "透析液入口";
            }
            if (cultures[index].sampling_locationa === 2) {
              cultures[index].sampling_locationa = "透析液取样口";
            }
            if (cultures[index].sampling_locationa === 3) {
              cultures[index].sampling_locationa = "置换液出口";
            }
            if (cultures[index].sampling_locationa === 4) {
              cultures[index].sampling_locationa = "透析机反渗水入口";
            }
          }
          this.tableData = cultures;
          var dialyste = response.data.data.dialysate;
          // console.log('dialyste', dialyste)
          for (let index = 0; index < dialyste.length; index++) {
            if (dialyste[index].specimenb === 0) {
              dialyste[index].specimenb = "";
            }
            if (dialyste[index].specimenb === 1) {
              dialyste[index].specimenb = "透析液";
            }
            if (dialyste[index].specimenb === 2) {
              dialyste[index].specimenb = "A浓缩液";
            }
            if (dialyste[index].specimenb === 3) {
              dialyste[index].specimenb = "B浓缩液";
            }
            if (dialyste[index].specimenb === 4) {
              dialyste[index].specimenb = "置换液";
            }
            if (dialyste[index].specimenb === 5) {
              dialyste[index].specimenb = "透析用水";
            }

            if (dialyste[index].sampling_locationb === 0) {
              dialyste[index].sampling_locationb = "";
            }

            if (dialyste[index].sampling_locationb === 1) {
              dialyste[index].sampling_locationb = "透析液入口";
            }
            if (dialyste[index].sampling_locationb === 2) {
              dialyste[index].sampling_locationb = "透析液取样口";
            }
            if (dialyste[index].sampling_locationb === 3) {
              dialyste[index].sampling_locationb = "置换液出口";
            }
            if (dialyste[index].sampling_locationb === 4) {
              dialyste[index].sampling_locationb = "透析机反渗水入口";
            }
          }
          this.table = dialyste;
          var ions = response.data.data.ions;
          // console.log('ions', ions)
          this.tableDatas = ions;
        }
      });
    },
    changeSpecimen(val) {
      if (val === 0) {
        this.disable = false;
        this.diableTwo = false;
      }
      if (val === 1) {
        this.diableTwo = false;
        this.disable = false;
      }
      if (val === 2) {
        this.diableTwo = true;
        this.disable = false;
      }
      if (val === 3) {
        this.disable = true;
        this.diableTwo = false;
      }
      if (val === 4) {
        this.disable = false;
        this.diableTwo = false;
      }
      if (val === 5) {
        this.disable = false;
        this.diableTwo = false;
      }
    },
    changeSpeciment(val) {
      if (val === 0) {
        this.disable = false;
        this.diableTwo = false;
      }
      if (val === 1) {
        this.disable = false;
        this.diableTwo = false;
      }
      if (val === 2) {
        this.diableTwo = true;
        this.disable = false;
      }
      if (val === 3) {
        this.disable = true;
        this.diableTwo = false;
      }
      if (val === 4) {
        this.disable = false;
        this.diableTwo = false;
      }
      if (val === 5) {
        this.disable = false;
        this.diableTwo = false;
      }
    },
    changeTable(val) {
      if (val === 1) {
        this.showOne = false;
        this.showTwo = false;
        this.show = true;
      }
      if (val === 2) {
        this.showOne = true;
        this.show = false;
        this.showTwo = false;
      }
      if (val === 3) {
        this.showTwo = true;
        this.show = false;
        this.showOne = false;
      }
    },
    getTime(time) {
      if (time < 0) {
        return "";
      }
      return uParseTime(time, "{y}-{m}-{d}");
    },
    getAllOrganization() {
      getAllOrganization().then(response => {
        if (response.data.state === 1) {
          var approle = response.data.data.approle;
          this.sampling = approle;
        }
      });
    },
    EditCulture(id, userid) {
      this.dialogVisible = true;

      if (this.form.specimen === "") {
        this.form.specimen = 0;
      }
      var specimens = this.form.specimen;
      var specimen = parseInt(specimens);
      this.form.specimen = specimen;

      if (this.form.locationa === "") {
        this.form.specimen = 0;
      }
      var locationa = this.form.sampling_locationa;
      var location = parseInt(locationa);
      this.form.locationa = location;
      EditCulture(id, userid).then(response => {
        if (response.data.state === 1) {
          var culture = response.data.data.culture;

          // console.log('禁用', culture)
          var role = response.data.data.role;
          // console.log('role', role)
          this.form.id = culture.id;
          // eslint-disable-next-line no-undef
          this.form.date = this.getTime(culture.speling_date);
          this.form.specimen = culture.specimen;

          if (this.form.specimen === 0) {
            this.disable = false;
            this.diableTwo = false;
          }

          if (this.form.specimen === 1) {
            this.disable = false;
            this.diableTwo = false;
          }

          if (this.form.specimen === 2) {
            this.disable = false;
            this.diableTwo = true;
          }
          if (this.form.specimen === 3) {
            this.diableTwo = false;
            this.disable = true;
          }

          if (this.form.specimen === 4) {
            this.disable = false;
            this.diableTwo = false;
          }
          if (this.form.specimen === 5) {
            this.disable = false;
            this.diableTwo = false;
          }

          this.form.concentrate_noa = culture.concentrate_noa;
          this.form.concentrate_nob = culture.concentrate_nob;
          this.form.sampling_locationa = culture.sampling_locationa;
          this.form.detection_unit = culture.detection_unit;
          this.form.sampler = culture.sampler;
          this.form.reporting_date = this.getTime(culture.reporting_date);
          this.form.detection_result = culture.detection_result;
        }
      });
    },

    UpdateCulture(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          UpdateCulture(this.form).then(response => {
            if (response.data.state === 1) {
              var culture = response.data.data.culture;
              this.$message.success("修改成功");
              this.dialogVisible = false;
              this.getAllQulityInfo();
            }
          });
        }
      });
    },
    BatchDelete() {
      if (this.selectCulture.length == 0) {
        this.$message.error("请选择要删除的信息");
        return false;
      }
      this.$confirm(
        "确认要删除所选记录吗? <br>删除后,该信息将无法恢复",
        "删除提示",
        {
          dangerouslyUseHTMLString: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }
      ).then(() => {
        var ids = [];
        var idMap = {};
        for (const index in this.selectCulture) {
          ids.push(this.selectCulture[index].id);
          idMap[this.selectCulture[index].id] = this.selectCulture[index].id;
        }
        DeleteCultrue({ ids: ids }).then(response => {
          if (response.data.state === 1) {
            var msg = response.data.data.msg;
            var planDataLength = this.tableData.length;
            for (let index = planDataLength - 1; index >= 0; index--) {
              if (this.tableData[index].id in idMap) {
                this.tableData.splice(index, 1);
              }
            }
            this.$message.success("删除成功");
          }
        });
      });
    },
    DeleteCultrues(id, index) {
      this.$confirm(
        "确认要删除所选记录吗? <br>删除后,该信息将无法恢复",
        "删除提示",
        {
          dangerouslyUseHTMLString: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }
      ).then(() => {
        DeleteCultrues(id, index).then(response => {
          if (response.data.state === 1) {
            var msg = response.data.data.msg;
            this.tableData.splice(index, 1);
          }
        });
      });
    },
    EditDialyState(id) {
      this.dialogVisibleTwo = true;
      EditDialyState(id).then(response => {
        if (response.data.state === 1) {
          var dialysate = response.data.data.dialysate;
          // console.log('dialysate', dialysate)
          this.diaForm.id = dialysate.id;
          // eslint-disable-next-line no-undef
          this.diaForm.sampling_date = this.getTime(dialysate.sampling_date);
          this.diaForm.specimenb = dialysate.specimenb;
          if (this.diaForm.specimenb === 0) {
            this.disable = false;
            this.diableTwo = false;
          }

          if (this.diaForm.specimenb === 1) {
            this.disable = false;
            this.diableTwo = false;
          }

          if (this.diaForm.specimenb === 2) {
            this.disable = false;
            this.diableTwo = true;
          }
          if (this.diaForm.specimenb === 3) {
            this.diableTwo = false;
            this.disable = true;
          }

          if (this.diaForm.specimenb === 4) {
            this.disable = false;
            this.diableTwo = false;
          }
          if (this.diaForm.specimenb === 5) {
            this.disable = false;
            this.diableTwo = false;
          }
          this.diaForm.concentrate_noc = dialysate.concentrate_noc;
          this.diaForm.concentrateb_nod = dialysate.concentrateb_nod;
          this.diaForm.sampling_locationb = dialysate.sampling_locationb;
          this.diaForm.detection_unit = dialysate.detection_unit;
          this.diaForm.samplerb = dialysate.samplerb;
          this.diaForm.reporting_dateb = this.getTime(
            dialysate.reporting_dateb
          );
          this.diaForm.detection_resultb = dialysate.detection_resultb;
        }
      });
    },
    UpdateDialyState(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          UpdateDialyState(this.diaForm).then(response => {
            if (response.data.state === 1) {
              var dialyste = response.data.data.dialysate;
              // console.log('dialyste', dialyste)
              this.dialogVisibleTwo = false;
              this.$message.success("修改成功");
              this.getAllQulityInfo();
            }
          });
        }
      });
    },
    BatchDeleteOne() {
      if (this.selectCulture.length == 0) {
        this.$message.error("请选择要删除的信息");
        return false;
      }
      this.$confirm(
        "确认要删除所选记录吗? <br>删除后,该信息将无法恢复",
        "删除提示",
        {
          dangerouslyUseHTMLString: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }
      ).then(() => {
        var ids = [];
        var idMap = {};
        for (const index in this.selectCulture) {
          ids.push(this.selectCulture[index].id);
          idMap[this.selectCulture[index].id] = this.selectCulture[index].id;
        }
        DeleteDialystate({ ids: ids }).then(response => {
          if (response.data.state === 1) {
            var msg = response.data.data.msg;
            var planDataLength = this.table.length;
            for (let index = planDataLength - 1; index >= 0; index--) {
              if (this.table[index].id in idMap) {
                this.table.splice(index, 1);
              }
            }
            this.$message.success("删除成功");
          }
        });
      });
    },
    DeleteDialystates(id, index) {
      this.$confirm(
        "确认要删除所选记录吗? <br>删除后,该信息将无法恢复",
        "删除提示",
        {
          dangerouslyUseHTMLString: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }
      ).then(() => {
        DeleteDialystates(id, index).then(response => {
          if (response.data.state === 1) {
            var msg = response.data.data.msg;
            this.table.splice(index, 1);
          }
        });
      });
    },

    EditIon(id) {
      this.dialogVisibleThree = true;
      EditIon(id).then(response => {
        if (response.data.state === 1) {
          var ion = response.data.data.ion;
          // console.log('ion', ion)
          // eslint-disable-next-line no-undef
          this.ionForm.dateb = this.getTime(ion.sampling_date);
          this.ionForm.samplerc = ion.samplerc;
          this.ionForm.detection_unit = ion.detection_unit;
          this.ionForm.samplerc = ion.samplerc;
          this.ionForm.concentrate_nof = ion.concentrate_nof;
          this.ionForm.concentrate_nog = ion.concentrate_nog;
          // eslint-disable-next-line no-undef
          this.ionForm.date_reportc = this.getTime(ion.date_reportc);
          this.ionForm.id = ion.id;
          this.ionForm.actual_na = ion.actual_na;
          this.ionForm.actual_pna = ion.actual_pna;
          this.ionForm.actual_k = ion.actual_k;
          this.ionForm.actual_ca = ion.actual_ca;
          this.ionForm.actual_ci = ion.actual_ci;
          this.ionForm.actual_hco = ion.actual_hco;
          this.ionForm.actual_mg = ion.actual_mg;
          this.ionForm.actual_ph = ion.actual_ph;
          this.ionForm.remakes = ion.remakes;
        }
      });
    },
    UpdateIon(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          UpdateIon(this.ionForm).then(response => {
            if (response.data.state === 1) {
              var ion = response.data.data.ion;
              // console.log('ion', ion)
              this.dialogVisibleThree = false;
              this.$message.success("修改成功");
              this.getAllQulityInfo();
            }
          });
        }
      });
    },
    BatchDeleteTwo() {
      if (this.selectCulture.length == 0) {
        this.$message.error("请选择要删除的信息");
        return false;
      }
      this.$confirm(
        "确认要删除所选的吗? <br>删除后,信息将无法恢复",
        "删除提示",
        {
          dangerouslyUseHTMLString: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }
      ).then(() => {
        var ids = [];
        var idMap = {};
        for (const index in this.selectCulture) {
          ids.push(this.selectCulture[index].id);
          idMap[this.selectCulture[index].id] = this.selectCulture[index].id;
        }
        DeleteIon({ ids: ids }).then(response => {
          if (response.data.state === 1) {
            var msg = response.data.data.msg;
            var planDataLength = this.tableDatas.length;
            for (let index = planDataLength - 1; index >= 0; index--) {
              if (this.tableDatas[index].id in idMap) {
                this.tableDatas.splice(index, 1);
              }
            }
            this.$message.success("删除成功");
          }
        });
      });
    },
    DeleteIons(id, index) {
      this.$confirm(
        "确认要删除所选的吗? <br>删除后,信息将无法恢复",
        "删除提示",
        {
          dangerouslyUseHTMLString: true,
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }
      ).then(() => {
        DeleteIons(id, index).then(response => {
          if (response.data.state === 1) {
            var msg = response.data.data.msg;
            this.tableDatas.splice(index, 1);
          }
        });
      });
    },
    queryTable() {
      queryTable(
        this.forms.bed,
        this.forms.start_time,
        this.forms.end_time
      ).then(response => {
        if (response.data.state === 1) {
          var cultures = response.data.data.cultures;
          for (let index = 0; index < cultures.length; index++) {
            if (cultures[index].specimen === 0) {
              cultures[index].specimen = "";
            }
            if (cultures[index].specimen === 1) {
              cultures[index].specimen = "透析液";
            }
            if (cultures[index].specimen === 2) {
              cultures[index].specimen = "A浓缩液";
            }
            if (cultures[index].specimen === 3) {
              cultures[index].specimen = "B浓缩液";
            }
            if (cultures[index].specimen === 4) {
              cultures[index].specimen = "置换液";
            }
            if (cultures[index].specimen === 5) {
              cultures[index].specimen = "透析用水";
            }

            if (cultures[index].sampling_locationa === 0) {
              cultures[index].sampling_locationa = "";
            }

            if (cultures[index].sampling_locationa === 1) {
              cultures[index].sampling_locationa = "透析液入口";
            }
            if (cultures[index].sampling_locationa === 2) {
              cultures[index].sampling_locationa = "透析液取样口";
            }
            if (cultures[index].sampling_locationa === 3) {
              cultures[index].sampling_locationa = "置换液出口";
            }
            if (cultures[index].sampling_locationa === 4) {
              cultures[index].sampling_locationa = "透析机反渗水入口";
            }
          }
          this.tableData = cultures;
          var dialysate = response.data.data.dialysate;
          for (let index = 0; index < dialyste.length; index++) {
            if (dialyste[index].specimenb === 0) {
              dialyste[index].specimenb = "";
            }
            if (dialyste[index].specimenb === 1) {
              dialyste[index].specimenb = "透析液";
            }
            if (dialyste[index].specimenb === 2) {
              dialyste[index].specimenb = "A浓缩液";
            }
            if (dialyste[index].specimenb === 3) {
              dialyste[index].specimenb = "B浓缩液";
            }
            if (dialyste[index].specimenb === 4) {
              dialyste[index].specimenb = "置换液";
            }
            if (dialyste[index].specimenb === 5) {
              dialyste[index].specimenb = "透析用水";
            }

            if (dialyste[index].sampling_locationb === 0) {
              dialyste[index].sampling_locationb = "";
            }

            if (dialyste[index].sampling_locationb === 1) {
              dialyste[index].sampling_locationb = "透析液入口";
            }
            if (dialyste[index].sampling_locationb === 2) {
              dialyste[index].sampling_locationb = "透析液取样口";
            }
            if (dialyste[index].sampling_locationb === 3) {
              dialyste[index].sampling_locationb = "置换液出口";
            }
            if (dialyste[index].sampling_locationb === 4) {
              dialyste[index].sampling_locationb = "透析机反渗水入口";
            }
          }
          this.table = dialysate;
          var ions = response.data.data.ions;
          this.tableDatas = ions;
        }
      });
    }
  },
  created() {
    this.getAllSubregion();
    this.getAllQulityInfo();
    this.getAllOrganization();
  }
};
</script>

<style scoped>
.a {
  .el-col-2 {
    width: 8.33333%;
    margin-bottom: 20px;
  }
  .result {
    .el-form-item__label {
      width: 120px;
    }
  }
}
.row {
  margin-bottom: 10px;
}
</style>
<style lang="scss">
.machineClass {
  font-size: 14px;
}
</style>
