yxh
yxh
2024-01-05 26c14f0c6defe02f2b6f15b498bcd454461ee7a8
src/views/project/donationwitness/index.vue
@@ -1,23 +1,47 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
    <el-form
      :model="queryParams"
      ref="queryForm"
      :inline="true"
      v-show="showSearch"
      label-width="70px"
    >
      <el-row :gutter="8">
        <el-col :span="6">
          <el-form-item label="姓名" prop="name">
            <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable size="small"
              @keyup.enter.native="handleQuery" />
            <el-input
              v-model="queryParams.name"
              placeholder="请输入姓名"
              clearable
              size="small"
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item align="left" label="医疗机构" prop="treatmenthospitalno">
            <org-selecter ref="orgSelecter" :org-type="'3'" v-model="queryParams.treatmenthospitalno" />
          <el-form-item
            align="left"
            label="医疗机构"
            prop="treatmenthospitalno"
          >
            <org-selecter
              ref="orgSelecter"
              :org-type="'3'"
              v-model="queryParams.treatmenthospitalno"
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="捐献地市">
            <el-select v-model="queryParams.city" placeholder="请选择地市">
              <el-option v-for="item in provinceData" :key="item.value" :label="item.label" :value="item.value">
              <el-option
                v-for="item in provinceData"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
@@ -25,9 +49,18 @@
        <el-col :span="6">
          <el-form-item label="捐献进度" prop="recordstate">
            <el-select v-model="queryParams.recordstate" placeholder="请选择捐献进度" clearable size="small">
              <el-option v-for="dict in dict.type.sys_DonationStatus" :key="dict.value" :label="dict.label"
                :value="dict.value" />
            <el-select
              v-model="queryParams.recordstate"
              placeholder="请选择捐献进度"
              clearable
              size="small"
            >
              <el-option
                v-for="dict in dict.type.sys_DonationStatus"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
        </el-col>
@@ -35,8 +68,16 @@
      <el-row :gutter="8">
        <el-col :span="6">
          <el-form-item label="报告人">
            <el-select v-model="queryParams.reporterno" placeholder="请选择报告人">
              <el-option v-for="item in reportlist" :key="item.index" :label="item.reportername" :value="item.reporterno">
            <el-select
              v-model="queryParams.reporterno"
              placeholder="请选择报告人"
            >
              <el-option
                v-for="item in reportlist"
                :key="item.index"
                :label="item.reportername"
                :value="item.reporterno"
              >
              </el-option>
            </el-select>
          </el-form-item>
@@ -44,33 +85,61 @@
        <el-col :span="12">
          <el-form-item label="见证日期">
            <el-date-picker style="width: 100%" v-model="selecttime" type="monthrange" range-separator="至"
              start-placeholder="开始月份" end-placeholder="结束月份" value-format="yyyy-MM-dd" @change="getTimeList">
            <el-date-picker
              style="width: 100%"
              v-model="selecttime"
              type="monthrange"
              range-separator="至"
              start-placeholder="开始月份"
              end-placeholder="结束月份"
              value-format="yyyy-MM-dd"
              @change="getTimeList"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
            <el-button
              type="primary"
              icon="el-icon-search"
              size="mini"
              @click="handleQuery"
              >搜索</el-button
            >
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
              >重置</el-button
            >
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading"
          @click="handleExport">导出</el-button>
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          :loading="exportLoading"
          @click="handleExport"
          >导出</el-button
        >
      </el-col>
    </el-row>
    <el-table v-loading="loading" :default-sort="{ prop: 'deathtime', order: 'descending' }" border
      :data="donatebaseinfoList">
      <el-table-column label="报告时间" align="center" prop="reporttime" width="140">
    <el-table
      v-loading="loading"
      :default-sort="{ prop: 'deathtime', order: 'descending' }"
      border
      :data="donatebaseinfoList"
    >
      <el-table-column
        label="报告时间"
        align="center"
        prop="reporttime"
        width="140"
      >
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.reporttime, "{y}-{m}-{d}") }}</span>
        </template>
@@ -80,33 +149,70 @@
      <el-table-column label="性别" align="center" prop="sex" width="100">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_user_sex" :value="parseInt(scope.row.sex)" />
          <dict-tag
            :options="dict.type.sys_user_sex"
            :value="parseInt(scope.row.sex)"
          />
        </template>
      </el-table-column>
      <el-table-column label="年龄" align="center" prop="age" width="100" />
      <el-table-column label="医疗机构" align="center" prop="treatmenthospitalname" />
      <el-table-column
        label="医疗机构"
        align="center"
        prop="treatmenthospitalname"
      />
      <!-- <el-table-column label="身份证号" prop="idcardno" width="200" /> -->
      <el-table-column label="捐献类别" align="center" prop="dwdonationcategory" width="150">
      <el-table-column
        label="捐献类别"
        align="center"
        prop="dwdonationcategory"
        width="150"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_DonationCategory" :value="scope.row.dwdonationcategory" />
          <dict-tag
            :options="dict.type.sys_DonationCategory"
            :value="scope.row.dwdonationcategory"
          />
        </template>
      </el-table-column>
      <el-table-column label="见证时间" align="center" prop="operationbegtime">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.operationbegtime, "{y}-{m}-{d}") }}</span>
          <span>{{
            parseTime(scope.row.operationbegtime, "{y}-{m}-{d}")
          }}</span>
        </template>
      </el-table-column>
      <el-table-column label="报告人" align="center" prop="reportername" width="100" />
      <el-table-column
        label="报告人"
        align="center"
        prop="reportername"
        width="100"
      />
      <el-table-column label="捐献进度" align="center" prop="recordstate">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_DonationStatus" :value="scope.row.recordstate" />
          <dict-tag
            :options="dict.type.sys_DonationStatus"
            :value="scope.row.recordstate"
          />
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140" fixed="right">
      <el-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
        width="140"
        fixed="right"
      >
        <template slot-scope="scope">
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleAdd(scope.row)">见证登记</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleAdd(scope.row)"
            >见证登记</el-button
          >
          <!-- <el-button
            v-if="scope.row.recordstate==2 || scope.row.recordstate==3"
              size="mini"
@@ -115,70 +221,126 @@
              @click="submitRecord(scope.row)"
              v-hasPermi="['project:donatebaseinfo:edit']"
              >上报伦理审查</el-button> -->
          <el-button size="mini" type="text" icon="el-icon-refrigerator" @click="handledownload(scope.row)">下载</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-refrigerator"
            @click="handledownload(scope.row)"
            >下载</el-button
          >
        </template>
      </el-table-column>
    </el-table>
    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
      @pagination="getList" />
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- 添加或修改捐献基础对话框 -->
    <el-dialog :title="title" align="center" :visible.sync="open" width="1000px" append-to-body
      :close-on-click-modal="false">
      <el-form ref="form" style="margin: 0px auto" :model="form" :rules="rules" label-width="120px">
    <el-dialog
      :title="title"
      align="center"
      :visible.sync="open"
      width="1000px"
      append-to-body
      :close-on-click-modal="false"
    >
      <el-form
        ref="form"
        style="margin: 0px auto"
        :model="form"
        :rules="rules"
        label-width="120px"
      >
        <el-row>
          <el-col :span="12">
            <el-form-item label="捐献编号" prop="donorno">
              <el-input v-model="curCase.donorno" disabled placeholder="请输入捐献者编号" />
              <el-input
                v-model="curCase.donorno"
                disabled
                placeholder="请输入捐献者编号"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item align="left" label="捐献医院" prop="treatmenthospitalname">
              <org-selecter ref="orgSelecter" :org-type="'3'" v-model="curCase.treatmenthospitalname" disabled />
            <el-form-item
              align="left"
              label="捐献医院"
              prop="treatmenthospitalname"
            >
              <org-selecter
                ref="orgSelecter"
                :org-type="'3'"
                v-model="curCase.treatmenthospitalname"
                disabled
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="6">
            <el-form-item label="姓名 " prop="name">
              <el-input v-model="curCase.name" disabled placeholder="请输入捐献者姓名" />
              <el-input
                v-model="curCase.name"
                disabled
                placeholder="请输入捐献者姓名"
              />
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="性别" prop="sex">
              <el-select v-model="curCase.sex" disabled placeholder="请选择性别">
                <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              <el-select
                v-model="curCase.sex"
                disabled
                placeholder="请选择性别"
              >
                <el-option
                  v-for="dict in dict.type.sys_user_sex"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="出生日期" prop="birthday">
              <el-date-picker style="width: 95%" clearable v-model="curCase.birthday" type="date"
                value-format="yyyy:MM:dd" placeholder="选择出生日期" disabled>
              <el-date-picker
                style="width: 95%"
                clearable
                v-model="curCase.birthday"
                type="date"
                value-format="yyyy:MM:dd"
                placeholder="选择出生日期"
                disabled
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="证件号码" prop="idcardno">
              <el-input
                ref="updateBSvalue"
                class="sfzcode"
                v-model="curCase.idcardno"
                placeholder="请输入证件号码"
                disabled
              />
            </el-form-item>
          </el-col>
        </el-row>
        <!--
        <el-row>
          <el-col :span="6">
            <el-form-item label="民族" prop="nation">
              <el-select v-model="curCase.nation" disabled placeholder="请选择民族">
                <el-option v-for="dict in dict.type.sys_nation" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col> </el-row><el-row>
          <el-col :span="6">
            <el-form-item label="证件类型" prop="idcardtype">
              <el-select v-model="curCase.idcardtype" disabled placeholder="请选择证件类型">
                <el-option v-for="dict in dict.type.sys_IDType" :key="dict.value" :label="dict.label"
                  :value="parseInt(dict.value)"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="证件号码" prop="idcardno">
              <el-input ref="updateBSvalue" class="sfzcode" v-model="curCase.idcardno" placeholder="请输入证件号码" disabled />
            </el-form-item>
          </el-col>
          <el-col :span="6">
@@ -197,13 +359,26 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="证件类型" prop="idcardtype">
              <el-select v-model="curCase.idcardtype" disabled placeholder="请选择证件类型">
                <el-option v-for="dict in dict.type.sys_IDType" :key="dict.value" :label="dict.label"
                  :value="parseInt(dict.value)"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
      -->
        <el-row>
          <el-col :span="24">
            <el-form-item align="left" label="捐献决定">
              <el-checkbox-group v-model="form.organdonation">
                <el-checkbox v-for="dict in dict.type.sys_Organ" :key="dict.value" :label="dict.value" disabled>
                <el-checkbox
                  v-for="dict in dict.type.sys_Organ"
                  :key="dict.value"
                  :label="dict.value"
                  disabled
                >
                  {{ dict.label }}
                </el-checkbox>
              </el-checkbox-group>
@@ -214,8 +389,12 @@
          <el-col :span="24">
            <el-form-item align="left" label="捐献类别" prop="donationcategory">
              <el-radio-group v-model="form.donationcategory">
                <el-radio v-for="dict in dict.type.sys_DonationCategory" :key="dict.value" :label="dict.value">{{
                  dict.label }}</el-radio>
                <el-radio
                  v-for="dict in dict.type.sys_DonationCategory"
                  :key="dict.value"
                  :label="dict.value"
                  >{{ dict.label }}</el-radio
                >
              </el-radio-group>
            </el-form-item>
          </el-col>
@@ -236,26 +415,41 @@
          </el-col>
          <el-col :span="10">
            <el-form-item align="left" label="医生一" prop="deathjudgedocto">
              <el-input v-model="form.deathjudgedocto" placeholder="判定医生姓名" />
              <el-input
                v-model="form.deathjudgedocto"
                placeholder="判定医生姓名"
              />
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item align="left" label="医生二" prop="deathjudgedoctt">
              <el-input v-model="form.deathjudgedoctt" placeholder="判定医生姓名" />
              <el-input
                v-model="form.deathjudgedoctt"
                placeholder="判定医生姓名"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row><el-col :span="2"><el-form-item align="left" label="" /> </el-col>
        <el-row
          ><el-col :span="2"><el-form-item align="left" label="" /> </el-col>
          <el-col :span="10">
            <el-form-item align="left" label="死亡时间" prop="deathtime">
              <el-date-picker clearable v-model="form.deathtime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择死亡时间">
              <el-date-picker
                clearable
                v-model="form.deathtime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择死亡时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item align="left" label="死亡原因" prop="deathreason">
              <el-input v-model="form.deathreason" placeholder="请输入死亡原因" />
              <el-input
                v-model="form.deathreason"
                placeholder="请输入死亡原因"
              />
            </el-form-item>
          </el-col>
        </el-row>
@@ -265,117 +459,249 @@
          </el-col>
          <el-col :span="10">
            <el-form-item align="left" label="开始时间" prop="operationbegtime">
              <el-date-picker clearable v-model="form.operationbegtime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择手术开始时间">
              <el-date-picker
                clearable
                v-model="form.operationbegtime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择手术开始时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item align="left" label="结束时间" prop="operationendtime">
              <el-date-picker clearable v-model="form.operationendtime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择手术结束时间">
              <el-date-picker
                clearable
                v-model="form.operationendtime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择手术结束时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row><el-col :span="2"><el-form-item align="left" label="腹主动脉:" />
        <el-row
          ><el-col :span="2"
            ><el-form-item align="left" label="腹主动脉:" />
          </el-col>
          <el-col :span="10">
            <el-form-item label="插管时间" align="left" prop="abdominalaortacannulatime">
              <el-date-picker clearable v-model="form.abdominalaortacannulatime" type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择腹主动脉插管时间">
            <el-form-item
              label="插管时间"
              align="left"
              prop="abdominalaortacannulatime"
            >
              <el-date-picker
                clearable
                v-model="form.abdominalaortacannulatime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择腹主动脉插管时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="灌注时间" align="left" prop="abdominalaortaperfusiontime">
              <el-date-picker clearable v-model="form.abdominalaortaperfusiontime" type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择腹主动脉灌注时间">
            <el-form-item
              label="灌注时间"
              align="left"
              prop="abdominalaortaperfusiontime"
            >
              <el-date-picker
                clearable
                v-model="form.abdominalaortaperfusiontime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择腹主动脉灌注时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row><el-col :span="2"><el-form-item align="left" label="门静脉:" />
        <el-row
          ><el-col :span="2"
            ><el-form-item align="left" label="门静脉:" />
          </el-col>
          <el-col :span="10">
            <el-form-item label="插管时间" align="left" prop="portalveincannulatime">
              <el-date-picker clearable v-model="form.portalveincannulatime" type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择门静脉脉插管时间">
            <el-form-item
              label="插管时间"
              align="left"
              prop="portalveincannulatime"
            >
              <el-date-picker
                clearable
                v-model="form.portalveincannulatime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择门静脉脉插管时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="灌注时间" align="left" prop="portalveinperfusiontime">
              <el-date-picker clearable v-model="form.portalveinperfusiontime" type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择门静脉灌注时间">
            <el-form-item
              label="灌注时间"
              align="left"
              prop="portalveinperfusiontime"
            >
              <el-date-picker
                clearable
                v-model="form.portalveinperfusiontime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择门静脉灌注时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row><el-col :span="2"><el-form-item align="left" label="肺动脉:" />
        <el-row
          ><el-col :span="2"
            ><el-form-item align="left" label="肺动脉:" />
          </el-col>
          <el-col :span="10">
            <el-form-item label="插管时间" align="left" prop="pulmonaryarterycannulatime">
              <el-date-picker clearable v-model="form.pulmonaryarterycannulatime" type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择门静脉插管时间">
            <el-form-item
              label="插管时间"
              align="left"
              prop="pulmonaryarterycannulatime"
            >
              <el-date-picker
                clearable
                v-model="form.pulmonaryarterycannulatime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择门静脉插管时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="灌注时间" align="left" prop="pulmonaryarteryperfusiontime">
              <el-date-picker clearable v-model="form.pulmonaryarteryperfusiontime" type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择门静脉灌注时间">
            <el-form-item
              label="灌注时间"
              align="left"
              prop="pulmonaryarteryperfusiontime"
            >
              <el-date-picker
                clearable
                v-model="form.pulmonaryarteryperfusiontime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择门静脉灌注时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row><el-col :span="2"><el-form-item align="left" label="主动脉:" />
        <el-row
          ><el-col :span="2"
            ><el-form-item align="left" label="主动脉:" />
          </el-col>
          <el-col :span="10">
            <el-form-item label="灌注时间" align="left" prop="aortacannulatime">
              <el-date-picker clearable v-model="form.aortacannulatime" type="datetime"
                value-format="yyyy-MM-dd  HH:mm:ss" placeholder="选择主动脉灌注时间">
              <el-date-picker
                clearable
                v-model="form.aortacannulatime"
                type="datetime"
                value-format="yyyy-MM-dd  HH:mm:ss"
                placeholder="选择主动脉灌注时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="灌注时间" align="left" prop="aortaperfusiontime">
              <el-date-picker clearable v-model="form.aortaperfusiontime" type="datetime"
                value-format="yyyy-MM-dd  HH:mm:ss" placeholder="选择主动脉灌注时间">
            <el-form-item
              label="灌注时间"
              align="left"
              prop="aortaperfusiontime"
            >
              <el-date-picker
                clearable
                v-model="form.aortaperfusiontime"
                type="datetime"
                value-format="yyyy-MM-dd  HH:mm:ss"
                placeholder="选择主动脉灌注时间"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-table :data="tableData" border>
          <el-table-column align="center" width="80px" prop="organname" label="器官名称">
          <el-table-column
            align="center"
            width="80px"
            prop="organname"
            label="器官名称"
          >
          </el-table-column>
          <el-table-column align="center" width="220px" prop="gainhospitalno" label="获取组织">
          <el-table-column
            align="center"
            width="220px"
            prop="gainhospitalno"
            label="获取组织"
          >
            <template slot-scope="scope">
              <org-selecter ref="gainhosselect" :org-type="'4'" v-model="scope.row.gainhospitalno" />
              <org-selecter
                ref="gainhosselect"
                :org-type="'4'"
                v-model="scope.row.gainhospitalno"
              />
            </template>
          </el-table-column>
          <el-table-column align="center" width="140px" prop="organgetdoct" label="获取医师">
          <el-table-column
            align="center"
            width="140px"
            prop="organgetdoct"
            label="获取医师"
          >
            <template slot-scope="scope">
              <el-input v-model="scope.row.organgetdoct" placeholder="请输入获取医师"></el-input>
              <el-input
                v-model="scope.row.organgetdoct"
                placeholder="请输入获取医师"
              ></el-input>
            </template>
          </el-table-column>
          <el-table-column align="center" width="210px" prop="organgettime" label="获取日期">
          <el-table-column
            align="center"
            width="210px"
            prop="organgettime"
            label="获取日期"
          >
            <template slot-scope="scope">
              <el-row>
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.organgettime"
                  type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择器官获取时间">
                <el-date-picker
                  clearable
                  size="small"
                  style="width: 100%"
                  v-model="scope.row.organgettime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择器官获取时间"
                >
                </el-date-picker>
              </el-row>
            </template>
          </el-table-column>
          <el-table-column label="器官状态" align="center" prop="organstate" width="180">
          <el-table-column
            label="器官状态"
            align="center"
            prop="organstate"
            width="180"
          >
            <template slot-scope="scope">
              <el-select v-model="scope.row.organstate" placeholder="请选择器官状态">
                <el-option v-for="dict in dict.type.sys_organstate" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              <el-select
                v-model="scope.row.organstate"
                placeholder="请选择器官状态"
              >
                <el-option
                  v-for="dict in dict.type.sys_organstate"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>
@@ -384,33 +710,53 @@
          <el-col :span="12">
            <el-form-item align="left" label="默哀缅怀仪式">
              <el-radio-group v-model="form.isspendremember">
                <el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label
                }}</el-radio>
                <el-radio
                  v-for="dict in dict.type.sys_0_1"
                  :key="dict.value"
                  :label="parseInt(dict.value)"
                  >{{ dict.label }}</el-radio
                >
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item align="left" label="恢复遗体仪容">
              <el-radio-group v-model="form.isrestoreremains">
                <el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label
                }}</el-radio>
                <el-radio
                  v-for="dict in dict.type.sys_0_1"
                  :key="dict.value"
                  :label="parseInt(dict.value)"
                  >{{ dict.label }}</el-radio
                >
              </el-radio-group>
            </el-form-item></el-col>
            </el-form-item></el-col
          >
        </el-row>
        <!-- <el-form-item align="left" label="死亡证明附件路径">
          <fileUpload v-model="form.deathjudgeannex" />
        </el-form-item> -->
        <el-row>
          <el-col :span="8">
            <el-form-item label="手术负责人" label-width="140px" prop="responsibleusername">
              <el-input v-model="form.responsibleusername" placeholder="请输入负责人姓名" />
            <el-form-item
              label="手术负责人"
              label-width="140px"
              prop="responsibleusername"
            >
              <el-input
                v-model="form.responsibleusername"
                placeholder="请输入负责人姓名"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="协调员一" prop="coordinateduserido">
              <el-select v-model="form.coordinateduserido" placeholder="请选择">
                <el-option v-for="item in coordinatorlist1" :key="item.reportNo" :label="item.reportName"
                  :value="item.reportNo">
                <el-option
                  v-for="item in coordinatorlist1"
                  :key="item.reportNo"
                  :label="item.reportName"
                  :value="item.reportNo"
                >
                </el-option>
              </el-select>
            </el-form-item>
@@ -418,8 +764,12 @@
          <el-col :span="8">
            <el-form-item label="协调员二" prop="coordinateduseridt">
              <el-select v-model="form.coordinateduseridt" placeholder="请选择">
                <el-option v-for="item in coordinatorlist1" :key="item.reportNo" :label="item.reportName"
                  :value="item.reportNo">
                <el-option
                  v-for="item in coordinatorlist1"
                  :key="item.reportNo"
                  :label="item.reportName"
                  :value="item.reportNo"
                >
                </el-option>
              </el-select>
            </el-form-item>
@@ -428,7 +778,12 @@
      </el-form>
      <!-- 编辑器官 -->
      <el-dialog title="器官" :close-on-click-modal="false" :visible.sync="dialogFormVisible" append-to-body>
      <el-dialog
        title="器官"
        :close-on-click-modal="false"
        :visible.sync="dialogFormVisible"
        append-to-body
      >
        <el-form :model="table">
          <el-form-item label="器官名称" :label-width="formLabelWidth">
            <el-input v-model="form.organnames"></el-input>
@@ -436,7 +791,9 @@
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button @click="dialogFormVisible = false">取 消</el-button>
          <el-button type="primary" @click="dialogFormVisible = false">保 存</el-button>
          <el-button type="primary" @click="dialogFormVisible = false"
            >保 存</el-button
          >
        </div>
      </el-dialog>
      <div slot="footer" class="dialog-footer">
@@ -452,8 +809,7 @@
import {
  listOrganization,
  listReportname,
  listUser,
  listUser
} from "@/api/project/organization";
import {
@@ -471,12 +827,12 @@
  listDonateorgan,
  addDonateorgan,
  delDonateorgan,
  updateDonateorgan,
  updateDonateorgan
} from "@/api/project/donateorgan";
import {
  listDonatebaseinfo,
  updateDonatebaseinfo,
  getDonatebaseinfo,
  getDonatebaseinfo
} from "@/api/project/donatebaseinfo";
import Li_area_select from "@/components/Address";
import OrgSelecter from "@/views/project/components/orgselect";
@@ -485,7 +841,7 @@
export default {
  components: {
    Li_area_select,
    OrgSelecter,
    OrgSelecter
  },
  name: "Donationwitness",
  dicts: [
@@ -520,7 +876,7 @@
    "sys_SelfWill",
    "sys_FamilyRelation",
    "sys_Organ",
    "sys_organstate",
    "sys_organstate"
  ],
  data() {
    return {
@@ -547,7 +903,7 @@
        { label: "衢州市", value: "8" },
        { label: "舟山市", value: "9" },
        { label: "台州市", value: "A" },
        { label: "丽水市", value: "B" },
        { label: "丽水市", value: "B" }
      ],
      // 插管时间
@@ -559,7 +915,7 @@
        sheng: "",
        shi: "",
        qu: "",
        organizationname: null,
        organizationname: null
      },
      table: {},
@@ -629,39 +985,39 @@
        reportername: null,
        reporttime: null,
        city: null,
        treatmenthospitalno: null,
        treatmenthospitalno: null
      },
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        donationcategory: [
          { required: true, message: "请输入选择捐献类别", trigger: "blur" },
          { required: true, message: "请输入选择捐献类别", trigger: "blur" }
        ],
        deathjudgedocto: [
          { required: true, message: "请输入死亡判定专家一", trigger: "blur" },
          { required: true, message: "请输入死亡判定专家一", trigger: "blur" }
        ],
        deathjudgedoctt: [
          { required: true, message: "请输入死亡判定专家二", trigger: "blur" },
          { required: true, message: "请输入死亡判定专家二", trigger: "blur" }
        ],
        deathtime: [
          { required: true, message: "请输入死亡时间", trigger: "blur" },
          { required: true, message: "请输入死亡时间", trigger: "blur" }
        ],
        operationbegtime: [
          { required: true, message: "请输入手术开始时间", trigger: "blur" },
          { required: true, message: "请输入手术开始时间", trigger: "blur" }
        ],
        responsibleusername: [
          { required: true, message: "请输入手术负责人", trigger: "blur" },
          { required: true, message: "请输入手术负责人", trigger: "blur" }
        ],
        coordinateduserido: [
          { required: true, message: "请输入协调员一", trigger: "blur" },
          { required: true, message: "请输入协调员一", trigger: "blur" }
        ],
        coordinateduseridt: [
          { required: true, message: "请输入协调员二", trigger: "blur" },
        ],
          { required: true, message: "请输入协调员二", trigger: "blur" }
        ]
      },
      curCase: {},
      tempRecordState: null,
      tempRecordState: null
    };
  },
  created() {
@@ -683,7 +1039,7 @@
        this.$moment(this.$route.params.starttime).format("YYYY-MM-DD"),
        this.$moment(this.$route.params.endtime)
          .add(-1, "month")
          .format("YYYY-MM-DD"),
          .format("YYYY-MM-DD")
      ];
    }
    if (this.$route.params.reporterno != "") {
@@ -723,14 +1079,14 @@
  },
  methods: {
    LoadReportList() {
      listDonatebaseinfo().then((res) => {
      listDonatebaseinfo().then(res => {
        console.log("潜在捐献表", res);
        let list = res.rows;
        let reportlist = [];
        list.forEach((element) => {
        list.forEach(element => {
          reportlist.push({
            reporterno: element.reporterno,
            reportername: element.reportername,
            reportername: element.reportername
          });
        });
        console.log("dwada", reportlist);
@@ -742,7 +1098,7 @@
    },
    resetArr(Arr) {
      var hash = {};
      Arr = Arr.reduce(function (arr, current) {
      Arr = Arr.reduce(function(arr, current) {
        hash[current.reporterno]
          ? ""
          : (hash[current.reporterno] = true && arr.push(current));
@@ -807,20 +1163,20 @@
    },
    //用户列表
    getuserlist() {
      listUser().then((res) => {
      listUser().then(res => {
        this.users = res.data;
      });
    },
    getCoordinatorList1() {
      //协调员一
      // let userType = {"userType":"xty1"};
      listReportname("xty1").then((res) => {
      listReportname("xty1").then(res => {
        this.coordinatorlist1 = res.data;
      });
    },
    getCoordinatorList2() {
      //协调员二
      listReportname("xty2").then((res) => {
      listReportname("xty2").then(res => {
        this.coordinatorlist2 = res.data;
      });
    },
@@ -841,7 +1197,7 @@
      //   this.queryParams.recordstate = e
      // }
      this.$nextTick(() => {
        listnewDonationwitness(this.queryParams).then((response) => {
        listnewDonationwitness(this.queryParams).then(response => {
          this.donatebaseinfoList = response.rows;
          this.donatebaseinfoList.dodeathtime = "";
          this.total = response.total;
@@ -930,7 +1286,7 @@
        updateBy: null,
        updateTime: null,
        organdonation: [],
        organdonationOther: null,
        organdonationOther: null
      };
      this.resetForm("form");
    },
@@ -959,7 +1315,7 @@
        acquisitiontissueno: null,
        reportername: null,
        reporttime: null,
        city: null,
        city: null
      };
      this.selecttime = [];
      this.getTimeList();
@@ -967,17 +1323,17 @@
        sheng: "",
        shi: "",
        qu: "",
        organizationname: null,
        organizationname: null
      };
      this.operationbegtime = []
      this.startoperationbegtime = ""
      this.endoperationbegtime = ""
      this.operationbegtime = [];
      this.startoperationbegtime = "";
      this.endoperationbegtime = "";
      this.resetForm("queryForm");
      this.handleQuery();
    },
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.id);
      this.ids = selection.map(item => item.id);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
@@ -988,62 +1344,79 @@
    },
    /** 新增按钮操作 */
    handleAdd(row) {
      debugger;
      this.curCase = {
        id: row.id,
        recordstate: null,
        donorno: row.donorno,
      };
      this.reset();
      const id = row.id;
      getDonatebaseinfo(id).then((res) => {
        console.log("捐献基础表数据", res);
        this.curCase.nation = res.data.nation;
        this.curCase.education = res.data.education;
        this.curCase.occupation = res.data.occupation;
      });
      // this.open = true;
      this.form.infoid = row.id;
      this.form.donorno = row.donorno;
      this.form.name = row.name;
      this.form.treatmenthospitalname = row.treatmenthospitalname;
      this.form.dosex = row.sex;
      this.form.doidcardtype = row.idcardtype;
      this.form.doidcardno = row.idcardno;
      this.form.doeducation = row.education;
      this.form.donationality = row.nationality;
      this.form.dooccupation = row.occupation;
      this.form.dobirthday = row.birthday;
      //判断是否存在见证记录
      let searchParam = {
        infoid: row.id,
      };
      debugger;
      this.GetDonortedList();
      const infoid = this.form.infoid;
      getByInfoId(infoid).then((response) => {
        if (response.code == 200) {
          //获取器官分配信息
          if (response.data != null) {
            // this.$modal.msgError("获取捐献器官失败1:" + response.msg);
            this.open = true;
            this.form = response.data;
            this.form.organdonation = this.form.organdonation.split(",");
            this.title = "修改人体器官捐献获取见证登记表";
          } else {
            this.open = true;
            this.title = "新增人体器官捐献获取见证登记表";
          }
      this.$router.push({
        path: "/organ/donationdetails/",
        query: {
          id: row.id,
          organType: "edit",
        }
      });
      // this.reset();
      // const id = row.id;
      // this.curCase = {
      //   id: row.id,
      //   recordstate: null,
      //   donorno: row.donorno,
      //   name: row.name,
      //   treatmenthospitalname: row.treatmenthospitalname,
      //   sex: row.sex,
      //   idcardtype: row.idcardtype,
      //   idcardno: row.idcardno,
      //   education: row.education,
      //   nationality: row.nationality,
      //   occupation: row.occupation,
      //   birthday: row.birthday
      // };
      // getDonatebaseinfo(id).then(res => {
      //   console.log("捐献基础表数据", res);
      //   this.curCase.nation = res.data.nation;
      //   this.curCase.education = res.data.education;
      //   this.curCase.occupation = res.data.occupation;
      // });
      // // this.open = true;
      // console.log("row", row);
      // this.form.infoid = row.id;
      // this.form.donorno = row.donorno;
      // this.form.name = row.name;
      // this.form.treatmenthospitalname = row.treatmenthospitalname;
      // this.form.dosex = row.sex;
      // this.form.doidcardtype = row.idcardtype;
      // this.form.doidcardno = row.idcardno;
      // this.form.doeducation = row.education;
      // this.form.donationality = row.nationality;
      // this.form.dooccupation = row.occupation;
      // this.form.dobirthday = row.birthday;
      // //判断是否存在见证记录
      // let searchParam = {
      //   infoid: row.id
      // };
      // this.GetDonortedList();
      // const infoid = this.form.infoid;
      // getByInfoId(infoid).then(response => {
      //   if (response.code == 200) {
      //     //获取器官分配信息
      //     if (response.data != null) {
      //       // this.$modal.msgError("获取捐献器官失败1:" + response.msg);
      //       this.open = true;
      //       this.form = response.data;
      //       this.form.organdonation = this.form.organdonation.split(",");
      //       this.title = "修改人体器官捐献获取见证登记表";
      //     } else {
      //       this.open = true;
      //       this.title = "新增人体器官捐献获取见证登记表";
      //     }
      //   }
      // });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids;
      getDonationwitness(id).then((response) => {
      getDonationwitness(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改";
@@ -1052,31 +1425,33 @@
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate((valid) => {
      this.$refs["form"].validate(valid => {
        if (valid) {
          //协调员1
          let coordinatedusernameIndex = this.coordinatorlist1.findIndex(
            (item) => this.form.coordinateduserido == item.reportNo
            item => this.form.coordinateduserido == item.reportNo
          );
          if (coordinatedusernameIndex > -1) {
            this.form.coordinatedusernameo =
              this.coordinatorlist1[coordinatedusernameIndex].reportName;
            this.form.coordinatedusernameo = this.coordinatorlist1[
              coordinatedusernameIndex
            ].reportName;
          }
          //协调员2
          let coordinatedusernametIndex = this.coordinatorlist1.findIndex(
            (item) => this.form.coordinateduseridt == item.reportNo
            item => this.form.coordinateduseridt == item.reportNo
          );
          if (coordinatedusernametIndex > -1) {
            this.form.coordinatedusernamet =
              this.coordinatorlist1[coordinatedusernametIndex].reportName;
            this.form.coordinatedusernamet = this.coordinatorlist1[
              coordinatedusernametIndex
            ].reportName;
          }
          this.form.organdonation = this.form.organdonation.join(",");
          if (this.form.id != null) {
            updateDonationwitness(this.form).then((response) => {
            updateDonationwitness(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              updatedonatorno(this.form.infoid).then((res) => {
              updatedonatorno(this.form.infoid).then(res => {
                this.getList();
              });
              this.open = false;
@@ -1084,14 +1459,15 @@
              //更新器官表
              for (let k = 0; k < this.tableData.length; k++) {
                try {
                  this.tableData[k].gainhospitalname =
                    this.$refs.gainhosselect.getOptionByValue(
                      this.tableData[k].gainhospitalno
                    ).organizationname;
                  this.tableData[
                    k
                  ].gainhospitalname = this.$refs.gainhosselect.getOptionByValue(
                    this.tableData[k].gainhospitalno
                  ).organizationname;
                } catch {
                  console.log("获取机构名称失败");
                }
                updateDonateorgan(this.tableData[k]).then((response1) => {
                updateDonateorgan(this.tableData[k]).then(response1 => {
                  if (response1.code == 200) {
                    this.$modal.msgSuccess("器官记录修改成功");
                  }
@@ -1100,35 +1476,36 @@
              this.curCase.recordstate = 11;
              //update.donatebaseinfoList.deathtime = this.form.deathtime;
              updateDonatebaseinfo(this.curCase).then((response) => {
              updateDonatebaseinfo(this.curCase).then(response => {
                this.open = false;
              });
              this.getList();
            });
          } else {
            addDonationwitness(this.form).then((response) => {
            addDonationwitness(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              //更新器官表
              for (let k = 0; k < this.tableData.length; k++) {
                try {
                  this.tableData[k].gainhospitalname =
                    this.$refs.gainhosselect.getOptionByValue(
                      this.tableData[k].gainhospitalno
                    ).organizationname;
                  this.tableData[
                    k
                  ].gainhospitalname = this.$refs.gainhosselect.getOptionByValue(
                    this.tableData[k].gainhospitalno
                  ).organizationname;
                } catch {
                  console.log("获取机构名称失败");
                }
                updateDonateorgan(this.tableData[k]).then((response1) => {
                updateDonateorgan(this.tableData[k]).then(response1 => {
                  if (response1.code == 200) {
                    this.$modal.msgSuccess("器官记录修改成功");
                  }
                });
              }
              updatedonatorno(this.form.infoid).then((res) => {
              updatedonatorno(this.form.infoid).then(res => {
                this.getList();
              });
              this.curCase.recordstate = 11;
              updateDonatebaseinfo(this.curCase).then((response) => {
              updateDonatebaseinfo(this.curCase).then(response => {
                this.open = false;
                this.getList();
              });
@@ -1144,28 +1521,27 @@
      const ids = row.id || this.ids;
      this.$modal
        .confirm('是否确认删除捐献见证编号为"' + ids + '"的数据项?')
        .then(function () {
        .then(function() {
          return delDonationwitness(ids);
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => { });
        .catch(() => {});
    },
    //获取病人已捐献的器官列表
    GetDonortedList() {
      this.loading = true;
      let oraganqueryParam = {
        //donorno: this.form.donorno,
        infoid: this.curCase.id,
        infoid: this.curCase.id
      };
      debugger;
      console.log(
        "调用器官列表接口,参数:" + JSON.stringify(oraganqueryParam)
      );
      listDonateorgan(oraganqueryParam).then((response) => {
        debugger;
      listDonateorgan(oraganqueryParam).then(response => {
        this.loading = false;
        if (response.code == 200) {
          this.organdonation = [];
@@ -1176,15 +1552,17 @@
              this.tableData[i].gainhospitalname == null ||
              this.tableData[i].gainhospitalname == ""
            ) {
              this.tableData[i].gainhospitalname =
                this.tableData[i].transplanthospitalname;
              this.tableData[i].gainhospitalname = this.tableData[
                i
              ].transplanthospitalname;
            }
            if (
              this.tableData[i].gainhospitalno == null ||
              this.tableData[i].gainhospitalno == ""
            ) {
              this.tableData[i].gainhospitalno =
                this.tableData[i].transplanthospitalno;
              this.tableData[i].gainhospitalno = this.tableData[
                i
              ].transplanthospitalno;
            }
          }
          //this.organalForm.organname = [];
@@ -1200,7 +1578,7 @@
    handledownload(row) {
      const id = row.id || this.ids;
      console.log("232323232", row);
      downloadwitnessinfo(row.dwid).then((response) => {
      downloadwitnessinfo(row.dwid).then(response => {
        var fileUrl = response;
        //获取当前网址
        var urlBase = process.env.VUE_APP_BASE_API;
@@ -1216,14 +1594,19 @@
    /** 导出按钮操作 */
    handleExport() {
      const queryParams = this.queryParams;
      this.$modal.confirm('是否确认导出所有获取见证数据项?').then(() => {
        this.exportLoading = true;
        return exportDonationwitness(queryParams);
      }).then(response => {
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => { }); z
      this.$modal
        .confirm("是否确认导出所有获取见证数据项?")
        .then(() => {
          this.exportLoading = true;
          return exportDonationwitness(queryParams);
        })
        .then(response => {
          this.$download.name(response.msg);
          this.exportLoading = false;
        })
        .catch(() => {});
      z;
    }
  },
  }
};
</script>
</script>