11
WXL
2024-01-07 8324c778ee797ea5a844614c47d93bdacf3ffeab
src/views/project/donationwitness/index.vue
@@ -68,7 +68,10 @@
      <el-row :gutter="8">
        <el-col :span="6">
          <el-form-item label="报告人">
            <el-select v-model="queryParams.reporterno" placeholder="请选择报告人">
            <el-select
              v-model="queryParams.reporterno"
              placeholder="请选择报告人"
            >
              <el-option
                v-for="item in reportlist"
                :key="item.index"
@@ -95,8 +98,6 @@
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item>
@@ -115,7 +116,6 @@
      </el-row>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="warning"
@@ -124,11 +124,9 @@
          size="mini"
          :loading="exportLoading"
          @click="handleExport"
          >导出</el-button
        >
      </el-col>
    </el-row>
    <el-table
      v-loading="loading"
@@ -148,7 +146,7 @@
      </el-table-column>
      <el-table-column label="姓名" align="center" prop="name" width="100" />
      <el-table-column label="性别" align="center" prop="sex" width="100">
        <template slot-scope="scope">
          <dict-tag
@@ -158,13 +156,18 @@
        </template>
      </el-table-column>
      <el-table-column label="年龄" align="center" prop="age" width="100" />
       <el-table-column
      <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"
@@ -173,8 +176,10 @@
        </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>
        <template slot-scope="scope">
          <span>{{
            parseTime(scope.row.operationbegtime, "{y}-{m}-{d}")
          }}</span>
        </template>
      </el-table-column>
      <el-table-column
@@ -184,11 +189,7 @@
        width="100"
      />
      <el-table-column
        label="捐献进度"
        align="center"
        prop="recordstate"
      >
      <el-table-column label="捐献进度" align="center" prop="recordstate">
        <template slot-scope="scope">
          <dict-tag
            :options="dict.type.sys_DonationStatus"
@@ -321,39 +322,6 @@
            </el-form-item>
          </el-col>
          <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"
@@ -364,40 +332,43 @@
              />
            </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-col :span="6">
            <el-form-item label="学历" prop="education">
              <el-select
                v-model="curCase.education"
                disabled
                placeholder="请选择学历"
              >
                <el-option
                  v-for="dict in dict.type.sys_education"
                  :key="dict.value"
                  :label="dict.value"
                  :value="dict.value"
                ></el-option>
              <el-select v-model="curCase.education" disabled placeholder="请选择学历">
                <el-option v-for="dict in dict.type.sys_education" :key="dict.value" :label="dict.value"
                  :value="dict.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="职业" prop="occupation">
              <el-select
                v-model="curCase.occupation"
                disabled
                placeholder="请选择职业"
              >
                <el-option
                  v-for="dict in dict.type.sys_occupation"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              <el-select v-model="curCase.occupation" disabled placeholder="请选择职业">
                <el-option v-for="dict in dict.type.sys_occupation" :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="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="捐献决定">
@@ -838,8 +809,7 @@
import {
  listOrganization,
  listReportname,
  listUser,
  listUser
} from "@/api/project/organization";
import {
@@ -857,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";
@@ -871,7 +841,7 @@
export default {
  components: {
    Li_area_select,
    OrgSelecter,
    OrgSelecter
  },
  name: "Donationwitness",
  dicts: [
@@ -906,13 +876,13 @@
    "sys_SelfWill",
    "sys_FamilyRelation",
    "sys_Organ",
    "sys_organstate",
    "sys_organstate"
  ],
  data() {
    return {
      starttime: "",
      endtime: "",
      // 插管位置
      cannulatimeList: {},
      coordinatorlist1: [],
@@ -933,7 +903,7 @@
        { label: "衢州市", value: "8" },
        { label: "舟山市", value: "9" },
        { label: "台州市", value: "A" },
        { label: "丽水市", value: "B" },
        { label: "丽水市", value: "B" }
      ],
      // 插管时间
@@ -945,7 +915,7 @@
        sheng: "",
        shi: "",
        qu: "",
        organizationname: null,
        organizationname: null
      },
      table: {},
@@ -1015,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() {
@@ -1069,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 != "") {
@@ -1109,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);
@@ -1128,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));
@@ -1193,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;
      });
    },
@@ -1227,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;
@@ -1316,7 +1286,7 @@
        updateBy: null,
        updateTime: null,
        organdonation: [],
        organdonationOther: null,
        organdonationOther: null
      };
      this.resetForm("form");
    },
@@ -1345,7 +1315,7 @@
        acquisitiontissueno: null,
        reportername: null,
        reporttime: null,
        city: null,
        city: null
      };
      this.selecttime = [];
      this.getTimeList();
@@ -1353,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;
@@ -1374,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 = "修改";
@@ -1438,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;
@@ -1470,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("器官记录修改成功");
                  }
@@ -1486,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();
              });
@@ -1530,7 +1521,7 @@
      const ids = row.id || this.ids;
      this.$modal
        .confirm('是否确认删除捐献见证编号为"' + ids + '"的数据项?')
        .then(function () {
        .then(function() {
          return delDonationwitness(ids);
        })
        .then(() => {
@@ -1544,14 +1535,13 @@
      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 = [];
@@ -1562,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 = [];
@@ -1586,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;
@@ -1599,17 +1591,22 @@
        aEle.click();
      });
    },
       /** 导出按钮操作 */
    /** 导出按钮操作 */
    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>