From 21fe2968337eb8eab97adc88750b71c4057e98f8 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 17 七月 2024 15:39:46 +0800
Subject: [PATCH] 11

---
 src/views/project/donatebaseinfo/index.vue |  393 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 281 insertions(+), 112 deletions(-)

diff --git a/src/views/project/donatebaseinfo/index.vue b/src/views/project/donatebaseinfo/index.vue
index 45a3233..dacc710 100644
--- a/src/views/project/donatebaseinfo/index.vue
+++ b/src/views/project/donatebaseinfo/index.vue
@@ -8,7 +8,7 @@
       label-width="70px"
     >
       <el-row :gutter="8">
-        <el-col :span="6">
+        <el-col :span="5">
           <el-form-item label="濮撳悕" prop="name">
             <el-input
               v-model="queryParams.name"
@@ -19,7 +19,7 @@
             />
           </el-form-item>
         </el-col>
-        <el-col :span="6">
+        <el-col :span="5">
           <el-form-item
             align="left"
             label="鍖荤枟鏈烘瀯"
@@ -33,7 +33,7 @@
             />
           </el-form-item>
         </el-col>
-        <el-col :span="6">
+        <el-col :span="5">
           <el-form-item label="鎹愮尞鍦板競">
             <el-select v-model="queryParams.city" placeholder="璇烽�夋嫨鍦板競">
               <el-option
@@ -46,16 +46,33 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="6">
-          <el-form-item label="鎹愮尞杩涘害" prop="recordstate">
+        <el-col :span="9">
+          <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>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="8">
+        <el-col :span="5">
+          <el-form-item label="鎹愮尞杩涘害" prop="workflow">
             <el-select
-              v-model="queryParams.recordstate"
+              v-model="queryParams.workflow"
               placeholder="璇烽�夋嫨褰撳墠杩涘害"
               clearable
               size="small"
             >
               <el-option
-                v-for="dict in dict.type.sys_DonationStatus"
+                v-for="dict in dict.type.sys_donornode"
                 :key="dict.value"
                 :label="dict.label"
                 :value="dict.value"
@@ -63,9 +80,7 @@
             </el-select>
           </el-form-item>
         </el-col>
-      </el-row>
-      <el-row :gutter="8">
-        <el-col :span="6">
+        <el-col :span="5">
           <el-form-item label="鎶ュ憡浜�">
             <el-select
               v-model="queryParams.reporterno"
@@ -81,26 +96,23 @@
             </el-select>
           </el-form-item>
         </el-col>
-
-        <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-col :span="5">
+          <el-form-item label="鏄惁缁堟">
+            <el-select
+              v-model="queryParams.terminationCase"
+              placeholder="璇烽�夋嫨鐘舵��"
             >
-            </el-date-picker>
+              <el-option
+                v-for="item in terminationCaselist"
+                :key="item.value"
+                :label="item.name"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
           </el-form-item>
         </el-col>
-      </el-row>
-
-      <el-row>
-        <el-col :span="14">
+        <el-col :span="9">
           <el-form-item label="绫嶈疮">
             <div>
               <li_area_select
@@ -110,7 +122,8 @@
             </div>
           </el-form-item>
         </el-col>
-
+      </el-row>
+      <el-row>
         <el-col :span="4">
           <el-form-item>
             <el-button
@@ -175,23 +188,27 @@
       :data="donatebaseinfoList"
       @selection-change="handleSelectionChange"
       border
-      :default-sort="{ prop: 'reporttime', order: 'descending' }"
+      :default-sort="{ prop: 'donatetime', order: 'descending' }"
     >
       <!-- <el-table-column label="鎶ュ憡鏃堕棿" align="center" prop="id" /> -->
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
       <el-table-column
-        label="鎶ュ憡鏃堕棿"
+        label="妗堜緥鏃堕棿"
         align="center"
-        prop="reporttime"
+        prop="donatetime"
         width="100"
       >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.reporttime, "{y}-{m}-{d}") }}</span>
+          <span>{{ parseTime(scope.row.donatetime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-
+      <el-table-column
+        label="鎹愮尞缂栧彿"
+        align="center"
+        prop="donorno"
+        width="200"
+      />
       <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
@@ -202,24 +219,45 @@
       </el-table-column>
       <el-table-column label="骞撮緞" align="center" prop="age" width="100" />
       <el-table-column
-        label="鐜版墍鍦ㄥ湴甯�"
-        align="center"
-        prop="registercityname"
-        width="150"
-      />
-
-      <el-table-column
         label="鍖荤枟鏈烘瀯"
         align="center"
         prop="treatmenthospitalname"
       />
+      <el-table-column label="琛�鍨�" align="center" prop="bloodtype" width="100">
+        <template slot-scope="scope">
+          <dict-tag
+            :options="dict.type.sys_BloodType"
+            :value="scope.row.bloodtype"
+          />
+        </template>
+      </el-table-column>
+
+      <el-table-column
+        label="鎹愮尞绫诲埆"
+        align="center"
+        prop="donationcategory"
+        width="150"
+      >
+        <template slot-scope="scope">
+          <dict-tag
+            :options="dict.type.sys_DonationCategory"
+            :value="scope.row.donationcategory"
+          />
+        </template>
+      </el-table-column>
       <el-table-column
         label="鎶ュ憡浜�"
         align="center"
         prop="reportername"
         width="100"
       />
-
+      <!--
+         <el-table-column
+        label="鐜版墍鍦ㄥ湴甯�"
+        align="center"
+        prop="registercityname"
+        width="150"
+      />
       <el-table-column
         label="鎹愮尞杩涘害"
         align="center"
@@ -227,18 +265,33 @@
         width="120"
       >
         <template slot-scope="scope">
-          <dict-tag
+         <dict-tag
             :options="dict.type.sys_DonationStatus"
             :value="scope.row.recordstate"
           />
         </template>
       </el-table-column>
-
+      -->
+      <el-table-column
+        label="鎹愮尞杩涘害"
+        align="center"
+        prop="workflow"
+        width="120"
+      >
+        <template slot-scope="scope">
+          <div v-if="!scope.row.terminationCase">
+            <dict-tag
+              :options="dict.type.sys_donornode"
+              :value="scope.row.workflow"
+            />
+          </div>
+          <div v-else>浠诲姟缁堟</div>
+        </template>
+      </el-table-column>
       <el-table-column
         label="鎿嶄綔"
         align="center"
         class-name="small-padding fixed-width"
-        width="200"
         fixed="right"
       >
         <template slot-scope="scope">
@@ -250,15 +303,30 @@
             v-hasPermi="['project:donatebaseinfo:edit']"
             >璇︽儏</el-button
           >
-
-          <!-- <el-button v-if="scope.row.recordstate == 0" size="mini" type="text" icon="el-icon-delete"
-            @click="handleDelete(scope.row)" v-hasPermi="['project:donatebaseinfo:remove']">鍒犻櫎</el-button>
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="handletermination(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 v-if="scope.row.recordstate == 0 || scope.row.recordstate == 3" size="mini" type="text"
-            icon="el-icon-thumb" @click="handleapproval(scope.row)">涓婃姤瀹℃牳</el-button> -->
-          <!-- 鎾ら攢鐢宠 -->
+          <el-button
+            v-if="scope.row.recordstate == 0"
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['project:donatebaseinfo:remove']"
+            >鍒犻櫎</el-button
+          >
+          <!--
+            <el-button v-if="scope.row.recordstate == 0 || scope.row.recordstate == 3" size="mini" type="text"
+            icon="el-icon-thumb" @click="handleapproval(scope.row)">鎻愪氦</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-edit" @click="handletermination(scope.row)"
+            v-hasPermi="['project:donatebaseinfo:edit']">{{ scope.row.recordstate == 99 ? "鎭㈠": "缁堟"  }}</el-button>
+          -->
         </template>
       </el-table-column>
     </el-table>
@@ -828,7 +896,6 @@
     </el-dialog>
   </div>
 </template>
-<style scoped></style>
 <script>
 import { getUserProfile } from "@/api/system/user";
 import {
@@ -839,13 +906,14 @@
   updateDonatebaseinfo,
   exportDonatebaseinfo,
   downloadbaseinfo,
+  getDonationNumber,
   getdonatorno
-  // exportProvincemessage,
 } from "@/api/project/donatebaseinfo";
 import Li_area_select from "@/components/Address";
 import OrgSelecter from "@/views/project/components/orgselect";
 import AnnexUpload from "@/views/project/components/annexupload";
 import ReportName from "@/views/project/components/organizationUser";
+import { getToken } from "@/utils/auth";
 import {
   listOrganization,
   getOrganization,
@@ -885,7 +953,8 @@
     "sys_DonationStatus",
     "sys_DiseaseType",
     "sys_SelfWill",
-    "sys_FamilyRelation"
+    "sys_FamilyRelation",
+    "sys_donornode"
   ],
   data() {
     return {
@@ -914,6 +983,10 @@
         shi: "",
         qu: ""
       },
+      terminationCaselist: [
+        { name: "缁堟鐘舵��", value: 1 },
+        { name: "姝e父鐘舵��", value: 0 }
+      ],
       // 閬僵灞�
       loading: true,
       // 瀵煎嚭閬僵灞�
@@ -962,7 +1035,86 @@
         // reporttime: null,
       },
       // 琛ㄥ崟鍙傛暟
-      form: {},
+      form: {
+        id: null,
+        name: null,
+        sex: null,
+        idcardtype: null,
+        idcardno: null,
+        age: null,
+        ageunit: null,
+        birthday: null,
+        phone: null,
+        residenceaddress: null,
+        nationality: "涓浗",
+        nativeplace: null,
+        residenceprovince: null,
+        nation: null,
+        residenceprovincename: null,
+        occupation: null,
+        residencecity: null,
+        education: null,
+        residencecityname: null,
+        residencetown: null,
+        residencetownname: null,
+        residencecommunity: null,
+        residencecommunityname: null,
+        residencecountycode: null,
+        residencecountyname: null,
+        registeraddress: null,
+        registerprovince: null,
+        registerprovincename: null,
+        registercity: null,
+        registercityname: null,
+        registertown: null,
+        registertownname: null,
+        registercommunity: null,
+        registercommunityname: null,
+        registercountycode: null,
+        registercountyname: null,
+        recordstate: null,
+        treatmenthospitalno: null,
+        treatmenthospitalname: null,
+        treatmentdeptname: null,
+        diagnosisno: null,
+        diagnosisname: null,
+        bloodtype: "0",
+        inpatientno: null,
+        rhyin: "0",
+        donorno: null,
+        donationcategory: null,
+        illnessoverview: null,
+        diseasetype: [],
+        infectious: [],
+        selfwill: [],
+        diseasetypeOther: null,
+        othercases: [],
+        kinshipwill: 0,
+        infosources: [],
+        kinship: [],
+        redorganno: null,
+        redorganname: null,
+        contactperson: null,
+        infectiousOther: null,
+        contactnumber: null,
+        contacttime: null,
+        reporterno: null,
+        reportername: null,
+        patientstate: [],
+        reporterphone: null,
+        infosourcesOther: null,
+        reporttime: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        kinshipOther: null,
+        majorrelatives: null,
+        familyrelations: null,
+        acquisitiontissueno: "ZJOPO",
+        acquisitiontissuename: "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�"
+      },
       //ads
       reporters: [],
       users: [],
@@ -1052,6 +1204,9 @@
       endtime: "",
       reportlist: [],
       reportervalue: "",
+      headers: {
+        Authorization: "Bearer " + getToken()
+      },
       provinceData: [
         { label: "鍏ㄩ儴", value: "" },
         { label: "鏉窞甯�", value: "1" },
@@ -1068,7 +1223,12 @@
       ]
     };
   },
-  created() {},
+  created() {
+    if (sessionStorage.getItem("donatebaseinfo")) {
+      this.queryParams = JSON.parse(sessionStorage.getItem("donatebaseinfo"));
+      console.log(this.queryParams, "queryParams");
+    }
+  },
 
   mounted(e) {
     // let idd = this.$route.query.userid
@@ -1083,9 +1243,7 @@
     if (this.$route.params.starttime != null && this.$route.params.endtime) {
       this.selecttime = [
         this.$moment(this.$route.params.starttime).format("YYYY-MM-DD"),
-        this.$moment(this.$route.params.endtime)
-          .add(-1, "month")
-          .format("YYYY-MM-DD")
+        this.$moment(this.$route.params.endtime).format("YYYY-MM-DD")
       ];
     }
     if (this.$route.params.reporterno != "") {
@@ -1325,18 +1483,15 @@
     },
 
     /** 鏌ヨ鎹愮尞鍩虹鍒楄〃 */
-    getList(e) {
+    getList() {
       this.loading = true;
       this.queryParams.params = {};
-      // if (null != this.daterangeReporttime && "" != this.daterangeReporttime) {
-      //   this.queryParams.params["beginReporttime"] =
-      //     this.daterangeReporttime[0];
-      //   this.queryParams.params["endReporttime"] = this.daterangeReporttime[1];
-      // }
+      sessionStorage.removeItem("donatebaseinfo");
+      sessionStorage.setItem(
+        "donatebaseinfo",
+        JSON.stringify(this.queryParams)
+      );
       // 璺宠浆鏃剁殑榛樿杩涘害
-      if (e != null && e != undefined && !isNaN(e)) {
-        this.queryParams.recordstate = e;
-      }
 
       if (this.reportervalue != "") {
         this.queryParams.reportno = this.reportervalue;
@@ -1355,6 +1510,8 @@
       this.queryParams.residenceprovince = this.$refs.areaSelect.getSheng();
       this.queryParams.residencecity = this.$refs.areaSelect.getShi();
       this.queryParams.residencetown = this.$refs.areaSelect.getQu();
+      console.log(this.queryParams);
+
       listDonatebaseinfo(this.queryParams).then(response => {
         this.donatebaseinfoList = response.rows;
         //console.log("listDonatebaseinfo", response.rows);
@@ -1518,9 +1675,9 @@
       this.showSaveBtn = true;
       //this.$refs.annex.getAnnexList();
       this.open = true;
-      this.$nextTick(function() {
-        this.$refs.annex.getAnnexList();
-      });
+      // this.$nextTick(function() {
+      //   this.$refs.annex.getAnnexList();
+      // });
 
       this.title = "浜轰綋鍣ㄥ畼娼滃湪鎹愮尞鑰呯櫥璁拌〃";
     },
@@ -1589,16 +1746,18 @@
         this.open = true;
         this.title = "浜轰綋鍣ㄥ畼娼滃湪鎹愮尞鑰呯櫥璁拌〃";
         this.form.recordstate = 99;
-        this.$nextTick(function() {
-          this.$refs.annex.getAnnexList();
-        });
+        // this.$nextTick(function() {
+        //   this.$refs.annex.getAnnexList();
+        // });
       });
     },
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
+      console.log(this.form);
       this.$refs["form"].validate(valid => {
-        console.log("鎻愪氦鐨勬暟鎹滑锛�", this.form);
         if (valid) {
+          const date = { ...this.form };
+          console.log(date, "date");
           this.form.birthday = this.$moment(this.form.birthday).format(
             "YYYY-MM-DD HH:mm:ss"
           );
@@ -1628,6 +1787,7 @@
           this.form.registertownname = this.registerAddresss.qu;
 
           this.form.reportername = this.$refs.getReportname.$data.selectedLabel;
+          this.form.donatetime = this.form.reporttime;
 
           try {
             this.form.treatmenthospitalname = this.$refs.addOrgSelect.getOptionByValue(
@@ -1645,37 +1805,28 @@
             this.form.redorganname = this.form.redorganno;
           }
 
-          //灏濊瘯鐢熸垚鎹愮尞缂栧彿锛堝凡缁忕敱addDonatebaseinfo鎺ュ彛涓敓鎴愬彇浠o級
-          // getdonatorno(this.form).then((response) => {
-          //   // alert(JSON.stringify(response));
-          //   this.reset();
-          // });
-
-          if (this.form.id != null) {
-            updateDonatebaseinfo(this.form).then(response => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
+          this.form.workflow = 0;
+          this.form.recordstate = 0;
+          addDonatebaseinfo(this.form).then(res => {
+            console.log("22");
+            console.log(res.code);
+            if (res.code == 200) {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.$router.push({
+                path: "/organ/donationdetails/",
+                query: {
+                  id: res.data.id,
+                  organType: "edit"
+                }
+              });
               this.open = false;
-              this.getList();
-            });
-          } else {
-            this.form.recordstate = 0;
-            addDonatebaseinfo(this.form).then(response => {
-              if (response.code == 200) {
-                this.$modal.msgSuccess("鏂板鎴愬姛");
-                this.$router.push({
-                  path: "/organ/donationdetails/",
-                  query: {
-                    id: response.data.id,
-                    organType: "edit"
-                  }
-                });
-                this.open = false;
-                // this.getList();
-              } else {
-                this.$modal.msgError("鏂板澶辫触锛�" + response.msg);
-              }
-            });
-          }
+            } else {
+              console.log("1");
+              this.form = date;
+              console.log(this.form, "form");
+              this.$modal.msgError("鏂板澶辫触锛�" + res.msg);
+            }
+          });
         }
       });
     },
@@ -1733,18 +1884,36 @@
     handledownload(row) {
       const id = row.id || this.ids;
 
-      downloadbaseinfo(id).then(response => {
-        var fileUrl = response;
+      downloadbaseinfo(id).then(res => {
+        var fileUrl = res;
         //鑾峰彇褰撳墠缃戝潃
         var urlBase = process.env.VUE_APP_BASE_API;
         var curWWWPath = window.document.location.href;
         var pos = curWWWPath.indexOf(window.document.location.pathname);
-
         // 鍒涘缓a鏍囩
         var aEle = document.createElement("a");
         aEle.href =
           curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
-        aEle.click();
+        console.log(aEle.href);
+        // 娣诲姞Authorization澶撮儴
+        fetch(aEle.href, {
+          headers: this.headers
+        })
+          .then(response => {
+            // 灏嗘枃浠朵笅杞介摼鎺ヤ綔涓篵lob瀵硅薄杩涜涓嬭浇
+            return response.blob();
+          })
+          .then(blob => {
+            const url = window.URL.createObjectURL(new Blob([blob]));
+            console.log(url);
+            const link = document.createElement("a");
+            link.href = url;
+            const name = fileUrl["downloadName"];
+            link.setAttribute("download", name); // 鏇挎崲file.pdf涓哄疄闄呯殑鏂囦欢鍚�
+            document.body.appendChild(link);
+            link.click();
+            link.parentNode.removeChild(link);
+          });
       });
     }
   }

--
Gitblit v1.9.3