From 475a352a4bfd7ac3a81e8c7c92d3bb64e2e01037 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 27 二月 2026 15:48:37 +0800
Subject: [PATCH] 青岛维护提交
---
src/views/project/donatebaseinfo/index.vue | 1983 ++++++++-------------------------------------------------
1 files changed, 296 insertions(+), 1,687 deletions(-)
diff --git a/src/views/project/donatebaseinfo/index.vue b/src/views/project/donatebaseinfo/index.vue
index bb2da0d..6c29d1c 100644
--- a/src/views/project/donatebaseinfo/index.vue
+++ b/src/views/project/donatebaseinfo/index.vue
@@ -1,5 +1,6 @@
<template>
<div class="app-container">
+ <!-- 鎼滅储琛ㄥ崟 -->
<el-form
:model="queryParams"
ref="queryForm"
@@ -9,7 +10,7 @@
>
<el-row :gutter="8">
<el-col :span="5">
- <el-form-item label="濮撳悕" prop="name">
+ <el-form-item label="鎮h�呭鍚�" prop="name">
<el-input
v-model="queryParams.name"
placeholder="璇疯緭鍏ュ鍚�"
@@ -20,34 +21,16 @@
</el-form-item>
</el-col>
<el-col :span="5">
- <el-form-item
- align="left"
- label="鍖荤枟鏈烘瀯"
- prop="treatmenthospitalname"
- >
+ <el-form-item label="棣栬瘖鍖婚櫌" prop="treatmenthospitalname">
<org-selecter
ref="orgSelecter"
:org-type="'3'"
v-model="queryParams.treatmenthospitalno"
- @keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
- <el-col :span="5">
- <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>
- </el-select>
- </el-form-item>
- </el-col>
<el-col :span="9">
- <el-form-item label="妗堜緥鏃堕棿">
+ <el-form-item label="涓婃姤鏃堕棿">
<el-date-picker
style="width: 100%"
v-model="selecttime"
@@ -57,69 +40,7 @@
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.workflow"
- placeholder="璇烽�夋嫨褰撳墠杩涘害"
- clearable
- size="small"
- >
- <el-option
- v-for="dict in dict.type.sys_donornode"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <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-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <el-form-item label="鏄惁缁堟">
- <el-select
- v-model="queryParams.terminationCase"
- placeholder="璇烽�夋嫨鐘舵��"
- >
- <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-col :span="9">
- <el-form-item label="绫嶈疮">
- <div>
- <li_area_select
- ref="areaSelect"
- v-model="searchAddress"
- ></li_area_select>
- </div>
+ />
</el-form-item>
</el-col>
</el-row>
@@ -131,39 +52,19 @@
icon="el-icon-search"
size="mini"
@click="handleQuery"
- >鎼滅储</el-button
>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
- >閲嶇疆</el-button
- >
+ 鎼滅储
+ </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="primary"
- plain
- icon="el-icon-plus"
- size="mini"
- @click="handleAdd"
- v-hasPermi="['project:donatebaseinfo:add']"
- >鏂板</el-button
- >
- </el-col>
- <!-- <el-col :span="1.5">
- <el-button
- type="success"
- plain
- icon="el-icon-edit"
- size="mini"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['project:donatebaseinfo:edit']"
- >淇敼</el-button
- >
- </el-col> -->
<el-col :span="1.5">
<el-button
@@ -174,15 +75,14 @@
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['project:donatebaseinfo:export']"
- >瀵煎嚭</el-button
>
+ 瀵煎嚭
+ </el-button>
</el-col>
- <right-toolbar
- :showSearch.sync="showSearch"
- @queryTable="getList"
- ></right-toolbar>
+ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" />
</el-row>
+ <!-- 鏁版嵁琛ㄦ牸 -->
<el-table
v-loading="loading"
:data="donatebaseinfoList"
@@ -190,8 +90,6 @@
border
: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="妗堜緥鏃堕棿"
align="center"
@@ -203,9 +101,9 @@
</template>
</el-table-column>
<el-table-column
- label="鎹愮尞缂栧彿"
+ label="妗堜緥缂栧彿"
align="center"
- prop="donorno"
+ prop="caseNo"
width="200"
/>
<el-table-column label="濮撳悕" align="center" prop="name" width="100" />
@@ -219,9 +117,11 @@
</el-table-column>
<el-table-column label="骞撮緞" align="center" prop="age" width="100">
<template slot-scope="scope">
- {{
+ {{
`${
- scope.row.age && scope.row.age !== 0 ? `${scope.row.age}${scope.row.ageunit?scope.row.ageunit:''}` : ""
+ scope.row.age && scope.row.age !== 0
+ ? `${scope.row.age}${scope.row.ageunit || ""}`
+ : ""
} ${
scope.row.age2 && scope.row.age2 !== 0
? `${scope.row.age2}${scope.row.ageunit2}`
@@ -231,10 +131,11 @@
</template>
</el-table-column>
<el-table-column
- label="鍖荤枟鏈烘瀯"
+ label="棣栬瘖鍖婚櫌"
align="center"
prop="treatmenthospitalname"
/>
+ <el-table-column label="GSC璇勫垎" align="center" prop="gcsScore" />
<el-table-column label="琛�鍨�" align="center" prop="bloodtype" width="100">
<template slot-scope="scope">
<dict-tag
@@ -243,7 +144,6 @@
/>
</template>
</el-table-column>
-
<el-table-column
label="鎹愮尞绫诲埆"
align="center"
@@ -263,27 +163,6 @@
prop="reportername"
width="100"
/>
- <!--
- <el-table-column
- label="鐜版墍鍦ㄥ湴甯�"
- align="center"
- prop="registercityname"
- width="150"
- />
- <el-table-column
- label="鎹愮尞杩涘害"
- align="center"
- prop="recordstate"
- width="120"
- >
- <template slot-scope="scope">
- <dict-tag
- :options="dict.type.sys_DonationStatus"
- :value="scope.row.recordstate"
- />
- </template>
- </el-table-column>
- -->
<el-table-column
label="鎹愮尞杩涘害"
align="center"
@@ -297,11 +176,12 @@
:value="scope.row.workflow"
/>
</div>
- <div v-else>浠诲姟缁堟</div>
+ <div v-else><el-button type="danger" plain>浠诲姟缁堟</el-button></div>
</template>
</el-table-column>
<el-table-column
label="鎿嶄綔"
+ width="190"
align="center"
class-name="small-padding fixed-width"
fixed="right"
@@ -313,35 +193,42 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
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 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>
<el-button
size="mini"
type="text"
- icon="el-icon-refrigerator"
- @click="handledownload(scope.row)"
- >涓嬭浇</el-button
+ icon="el-icon-edit"
+ @click="handleOpenEdit(scope.row)"
+ v-hasPermi="['project:donatebaseinfo:edit']"
+ >缂栬緫</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>
- -->
+ <el-button
+ size="mini"
+ type="text"
+ style="color: #f56c6c;"
+ @click="handleTerminate(scope.row)"
+ v-if="
+ scope.row.terminationCase === 0 && scope.row.recordstate !== '99'
+ "
+ >
+ 缁堟
+ </el-button>
+ <el-button
+ size="mini"
+ type="text"
+ style="color: #67c23a;"
+ @click="handleRestore(scope.row)"
+ v-if="scope.row.terminationCase === 1"
+ >
+ 鎭㈠
+ </el-button>
</template>
</el-table-column>
</el-table>
+
+ <!-- 鍒嗛〉 -->
<pagination
v-show="total > 0"
:total="total"
@@ -349,1051 +236,165 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
- <!-- 娣诲姞鎴栦慨鏀规崘鐚熀纭�瀵硅瘽妗� -->
- <el-dialog
- :title="title"
- align="center"
- :visible.sync="open"
- :close-on-click-modal="false"
- width="1100px"
- >
- <el-form
- ref="form"
- :model="form"
- :rules="rules"
- label-width="130px"
- label-position="right"
- >
- <div
- style="
- border-bottom: 1px solid #ddd;
- border-top: 1px solid #ddd;
- padding-right: 60px;
- "
- >
- <el-row style="margin-top: 40px">
- <el-col :span="8">
- <el-form-item label="鎹愮尞缂栧彿" prop="donorno">
- <el-input v-model="form.donorno" disabled />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item
- align="left"
- label="鍖荤枟鏈烘瀯"
- prop="treatmenthospitalno"
- >
- <org-selecter
- ref="addOrgSelect"
- :org-type="'3'"
- v-model="form.treatmenthospitalno"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="绉戝" prop="treatmentdeptno">
- <el-input
- v-model="form.treatmentdeptname"
- placeholder="璇疯緭鍏ョ瀹�"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="6">
- <el-form-item align="left" label="濮撳悕" prop="name">
- <el-input v-model="form.name" placeholder="蹇呭~椤�" />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="姘戞棌" prop="nation">
- <el-select v-model="form.nation" 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="nativeplace">
- <el-input v-model="form.nativeplace" placeholder="璇疯緭鍏ュ浗绫�" />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鍥界睄" prop="nationality">
- <el-input v-model="form.nationality" placeholder="璇疯緭鍏ュ浗绫�" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="6">
- <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype">
- <el-select
- v-model="form.idcardtype"
- 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
- style="width: 174px"
- ref="updateBSvalue"
- class="sfzcode"
- v-model="form.idcardno"
- placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�"
- @blur="updateMessage"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鎬у埆" prop="sex">
- <el-select v-model="form.sex" placeholder="璇疯緭鍏ユ�у埆">
- <el-option
- v-for="dict in dict.type.sys_user_sex"
- :key="dict.label"
- :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="education">
- <el-select v-model="form.education" placeholder="璇烽�夋嫨瀛﹀巻">
- <el-option
- v-for="dict in dict.type.sys_education"
- :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="birthday">
- <el-date-picker
- clearable
- size="small"
- v-model="form.birthday"
- type="date"
- style="width: 174px"
- @change="calculateAge"
- value-format="yyyy-MM-dd"
- placeholder="閫夋嫨鍑虹敓鏃ユ湡"
- >
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <!-- <el-form-item label="骞撮緞" prop="age">
- <el-input v-model="form.age" placeholder="璇疯緭鍏ュ勾榫�" />
- </el-form-item> -->
- <el-form-item label="骞撮緞" prop="age">
- <el-input v-model="form.andAge" disabled> </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鑱屼笟" prop="occupation">
- <el-select v-model="form.occupation" 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-row>
- <el-row>
- <el-col :span="12">
- <el-form-item
- label="鎵�鍦ㄥ尰鐤楁満鏋�"
- prop="currentMedicalInstitution"
- >
- <el-input
- v-model="form.currentMedicalInstitution"
- placeholder="璇疯緭鍏�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item
- label-width="150px"
- label="鎵�鍦ㄥ尰鐤楁満鏋勭瀹�"
- prop="currentDept"
- >
- <el-input v-model="form.currentDept" placeholder="璇疯緭鍏�" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="棣栨鍖荤枟鏈烘瀯" prop="firstMedicalInstitution">
- <el-input
- v-model="form.firstMedicalInstitution"
- placeholder="璇疯緭鍏�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item
- label-width="150px"
- label="棣栨鍖荤枟鏈烘瀯绉戝"
- prop="firstDept"
- >
- <el-input v-model="form.firstDept" placeholder="璇疯緭鍏�" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="浣忓潃" prop="residenceaddress">
- <div>
- <li_area_select
- ref="residenceSelect"
- v-model="residenceAddresss"
- ></li_area_select>
- <!-- <div>{{defultAddress}}</div> -->
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="11" :push="1">
- <el-input
- v-model="form.residenceaddress"
- placeholder="璇疯緭鍏ュ唴瀹�"
- />
- </el-col>
- </el-row>
-
- <el-row>
- <el-col :span="12">
- <el-form-item label="鐜版墍鍦ㄥ湴" prop="registeraddress">
- <div>
- <li_area_select
- ref="registerSelect"
- v-model="registerAddresss"
- ></li_area_select>
- <!-- <div>{{defultAddress}}</div> -->
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="11" :push="1">
- <el-input
- v-model="form.registeraddress"
- placeholder="璇疯緭鍏ュ唴瀹�"
- />
- </el-col>
- </el-row>
- </div>
-
- <div
- style="
- border-bottom: 1px solid #ddd;
- margin-top: 20px;
- padding-right: 60px;
- "
- >
- <el-row>
- <el-col :span="8">
- <el-form-item label="浣忛櫌鍙�" prop="inpatientno">
- <el-input v-model="form.inpatientno" placeholder="浣忛櫌鍙�" />
- </el-form-item>
- </el-col>
- <el-col :span="16">
- <el-form-item label="鐤剧梾璇婃柇" prop="diagnosisname">
- <el-input
- v-model="form.diagnosisname"
- placeholder="璇疯緭鍏ョ柧鐥呰瘖鏂悕绉�"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item align="left" label="琛�鍨�" prop="bloodtype">
- <el-radio-group v-model="form.bloodtype">
- <el-radio
- v-for="dict in dict.type.sys_BloodType"
- :key="dict.value"
- :label="dict.value"
- >{{ dict.label }}</el-radio
- >
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :span="12" :pull="1">
- <el-form-item label="Rh(D)" align="left" prop="rhyin">
- <el-radio-group v-model="form.rhyin">
- <el-radio
- v-for="dict in dict.type.sys_bloodtype_rhd"
- :key="dict.value"
- :label="dict.value"
- >{{ dict.label }}</el-radio
- >
- </el-radio-group>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-form-item label="鐤剧梾绫诲瀷" align="left">
- <el-checkbox-group v-model="form.diseasetype">
- <el-checkbox
- v-for="dict in dict.type.sys_DiseaseType"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="鍏朵粬" prop="diseasetypeOther">
- <el-input
- v-model="form.diseasetypeOther"
- placeholder="璇疯緭鍏ュ叾浠�"
- />
- </el-form-item>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item align="left" label="浼犳煋鐥�">
- <el-checkbox-group v-model="form.infectious">
- <el-checkbox
- v-for="dict in dict.type.sys_Infectious"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item align="left" label="鍏朵粬" prop="infectiousOther">
- <el-input
- v-model="form.infectiousOther"
- placeholder="璇疯緭鍏ュ叾浠�"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="9">
- <el-form-item align="left" label="鐥呬汉鐘跺喌">
- <el-checkbox-group v-model="form.patientstate">
- <el-checkbox
- v-for="dict in dict.type.sys_patientstate"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </el-col>
- <el-col :span="15" align="left">
- <el-form-item label="鍏朵粬鎯呭喌">
- <el-checkbox-group v-model="form.othercases">
- <el-checkbox
- v-for="dict in dict.type.sys_OtherCases"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
-
- <div
- style="
- border-bottom: 1px solid #ddd;
- padding-right: 60px;
- margin-top: 20px;
- "
- >
- <el-row>
- <div display="flex">
- <el-row>
- <el-col :span="12">
- <el-form-item
- label="浜插睘鐘跺喌"
- prop="kinship"
- class="relation"
- align="left"
- >
- <el-checkbox-group v-model="form.kinship">
- <el-checkbox
- v-for="dict in dict.type.sys_Kinship"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="鍏朵粬" prop="kinshipOther">
- <el-input
- v-model="form.kinshipOther"
- placeholder="璇疯緭鍏ュ叾浠�"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item align="left" label="鏈汉鎰忔効 ">
- <el-checkbox-group v-model="form.selfwill">
- <el-checkbox
- v-for="dict in dict.type.sys_SelfWill"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="涓昏浜插睘" prop="majorrelatives">
- <el-input
- v-model="form.majorrelatives"
- placeholder="璇疯緭鍏ヤ富瑕佷翰灞�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="涓庢崘璧犺�呭叧绯�" prop="familyrelations">
- <el-select
- v-model="form.familyrelations"
- placeholder="璇烽�夋嫨涓庢崘璧犺�呭叧绯�"
- >
- <el-option
- v-for="dict in dict.type.sys_FamilyRelation"
- :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="12">
- <el-form-item align="left" label="淇℃伅鏉ユ簮">
- <el-checkbox-group v-model="form.infosources">
- <el-checkbox
- v-for="dict in dict.type.sys_InfoSources"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鍏朵粬" prop="infosourcesOther">
- <el-input
- v-model="form.infosourcesOther"
- placeholder="璇疯緭鍏ヤ俊鎭潵婧愬叾浠�"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="淇℃伅鍛�" prop="infoname">
- <el-input v-model="form.infoname" placeholder="璇疯緭鍏ヤ俊鎭憳" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鑱旂郴鐢佃瘽" prop="infophone">
- <el-input
- v-model="form.infophone"
- placeholder="璇疯緭鍏ヤ俊鎭憳鑱旂郴鐢佃瘽"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item align="left" label="绾㈠崄瀛椾細" prop="redorganno">
- <org-selecter
- ref="addCrossOrgSelect"
- :org-type="'2'"
- v-model="form.redorganno"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鑱旂郴浜�" prop="contactperson">
- <el-input
- v-model="form.contactperson"
- placeholder="璇疯緭鍏ヨ仈绯讳汉"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鑱旂郴鏃堕棿" prop="contacttime">
- <el-date-picker
- clearable
- size="small"
- style="width: 190px"
- v-model="form.contacttime"
- 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="24">
- <el-form-item
- align="left"
- label="鑾峰彇缁勭粐"
- prop="acquisitiontissuename"
- >
- <org-selecter
- style="width: 260px"
- ref="orgSelecter"
- :org-type="'1'"
- v-model="form.acquisitiontissueno"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="鎶ュ憡浜�" prop="reporterno">
- <el-select
- ref="getReportname"
- v-model="form.reporterno"
- placeholder="璇烽�夋嫨"
- >
- <el-option
- v-for="item in reporters"
- :key="item.reportNo"
- :label="item.reportName"
- :value="item.reportNo"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鑱旂郴鐢佃瘽" prop="reporterphone">
- <el-input
- v-model="form.reporterphone"
- placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鎶ュ憡鏃堕棿" align="left" prop="reporttime">
- <el-date-picker
- clearable
- size="small"
- style="width: 190px"
- v-model="form.reporttime"
- type="datetime"
- value-format="yyyy-MM-dd HH:mm:ss"
- placeholder="閫夋嫨鎶ュ憡鏃堕棿"
- >
- </el-date-picker>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- <!-- <div style="padding-right: 60px; margin-top: 20px">
- <el-row>
- <el-form-item label="闄勪欢" align="left" prop="annexfile">
- <annex-upload ref="annex" :infoid="form.id" :donorno="form.donorno" :flowname="flowname"
- :annexno="annexno" />
- </el-form-item>
- </el-row>
- </div> -->
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button v-show="showSaveBtn" type="primary" @click="submitForm"
- >淇濆瓨骞跺墠寰�妗堜緥宸ヤ綔鍙�</el-button
- >
- <el-button
- v-show="showTerminationBtn"
- type="primary"
- @click="submitForm"
- >缁堟妗堜緥</el-button
- >
- <el-button @click="cancel">鍙� 娑�</el-button>
- <!-- <el-button @click="handleapproval">鎻愪氦瀹℃牳</el-button> -->
- </div>
- </el-dialog>
+ <!-- 妗堜緥缂栬緫寮圭獥 -->
+ <edit-case-modal
+ :visible="editModalVisible"
+ :editData="currentEditData"
+ :dict-options="dict.type"
+ @update:visible="editModalVisible = $event"
+ @success="handleEditSuccess"
+ @closed="handleEditClosed"
+ />
+ <!-- 缁堟/鎭㈠寮规 -->
+ <terminate-restore-modal
+ :current-record="currentRecord"
+ :visible="modalVisible"
+ :titles="modalTitles"
+ @update:visible="handleModalVisibleChange"
+ @operation-success="handleOperationSuccess"
+ />
</div>
</template>
<script>
import { getUserProfile } from "@/api/system/user";
+import TerminateRestoreModal from "@/components/TerminateRestoreModal";
+import EditCaseModal from "./EditCaseModal";
import {
listDonatebaseinfo,
- getDonatebaseinfo,
- delDonatebaseinfo,
addDonatebaseinfo,
- updateDonatebaseinfo,
- exportDonatebaseinfo,
- downloadbaseinfo,
- getDonationNumber,
- getdonatorno
+ exportDonatebaseinfo
} 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,
- listReportname,
- listUser
-} from "@/api/project/organization";
+import { listReportname, listUser } from "@/api/project/organization";
+
export default {
+ name: "Donatebaseinfo",
components: {
Li_area_select,
OrgSelecter,
- AnnexUpload,
- ReportName
+ TerminateRestoreModal,
+ EditCaseModal
},
- name: "Donatebaseinfo",
dicts: [
- "sys_Reporter",
- "sys_redcrossagency",
- "sys_nation",
- "sys_occupation",
- "sys_education",
- "sys_OrganizationType",
- "sys_HospitalNature",
- "sys_RegionalLevel",
- "country",
"sys_user_sex",
- "sys_IDType",
- "sys_AgeUnit",
"sys_BloodType",
- "sys_0_1",
- "sys_patientstate",
"sys_DonationCategory",
- "sys_Kinship",
- "sys_Infectious",
- "sys_bloodtype_rhd",
- "sys_InfoSources",
- "sys_OtherCases",
- "sys_DonationStatus",
- "sys_DiseaseType",
- "sys_SelfWill",
- "sys_FamilyRelation",
"sys_donornode"
],
data() {
return {
- tempRecordState: null,
- approvalState: false,
- countyname: "",
- cuuntry: "",
- organizationname: "",
selecttime: "",
-
- //鐪佸競鍖�
- //榛樿鍊艰缃紝鍙负绌�
- searchAddress: {
- sheng: "",
- shi: "",
- qu: "",
- organizationname: null
+ residenceAddresss: { sheng: "灞变笢鐪�", shi: "", qu: "" },
+ registerAddresss: { sheng: "灞变笢鐪�", shi: "", qu: "" },
+ modalTitles: {
+ terminate: "缁堟鎹愮尞杩涚▼",
+ restore: "鎭㈠鎹愮尞杩涚▼"
},
- residenceAddresss: {
- sheng: "娴欐睙鐪�",
- shi: "",
- qu: ""
- },
- registerAddresss: {
- sheng: "娴欐睙鐪�",
- shi: "",
- qu: ""
- },
- terminationCaselist: [
- { name: "缁堟鐘舵��", value: 1 },
- { name: "姝e父鐘舵��", value: 0 }
- ],
- // 閬僵灞�
loading: true,
- // 瀵煎嚭閬僵灞�
exportLoading: false,
- // 閫変腑鏁扮粍
+ editModalVisible: false,
+ currentEditData: {},
ids: [],
- // 闈炲崟涓鐢�
single: true,
- // 闈炲涓鐢�
multiple: true,
- // 鏄剧ず鎼滅储鏉′欢
showSearch: true,
- // 鎬绘潯鏁�
total: 0,
- // 鎹愮尞鍩虹琛ㄦ牸鏁版嵁
donatebaseinfoList: [],
- // 寮瑰嚭灞傛爣棰�
title: "",
- // 鏄惁鏄剧ず寮瑰嚭灞�
open: false,
- // 鑾峰彇缁勭粐鍚嶇О鏃堕棿鑼冨洿
- daterangeReporttime: [],
- //鐢ㄦ埛淇℃伅
currentuser: {},
-
- // 鏌ヨ鍙傛暟
queryParams: {
pageNum: 1,
pageSize: 10,
- donorno: null,
- recordstate: null,
- // treatmenthospitalno: null,
- treatmenthospitalname: null,
name: null,
- residenceprovince: null,
- residencecity: null,
- residencetown: null,
+ treatmenthospitalno: null,
starttime: null,
- endtime: null,
- city: null,
- reportno: null
- // organizationname: null,
- // organizationtype: null,
- // idcardno: null,
- // reporterno: null,
- // reporttime: null,
+ endtime: null
},
- // 琛ㄥ崟鍙傛暟
form: {
- id: null,
name: null,
sex: null,
idcardtype: null,
idcardno: null,
- age: null, // 骞撮緞锛堝勾锛�
+ age: null,
andAge: "",
- ageunit: "骞�", // 鍗曚綅锛岄�氬父鍥哄畾涓衡�滃勾鈥�
- age2: null, // 骞撮緞锛堟湀鎴栧ぉ锛�
- ageunit2: "鏈�", // 鍗曚綅锛屾牴鎹绠楀喅瀹氭槸鈥滄湀鈥濊繕鏄�滃ぉ鈥�
- ageunit: null,
+ ageunit: "骞�",
+ age2: null,
+ ageunit2: "鏈�",
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: "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�"
+ acquisitiontissuename: "闈掑矝浜轰綋鍣ㄥ畼鑾峰彇缁勭粐"
},
- //ads
reporters: [],
users: [],
-
- // 琛ㄥ崟鏍¢獙
- rules: {
+ rules: {
name: [
{ required: true, message: "璇疯緭鍏ユ崘鐚�呭鍚�", trigger: "blur" }
- ],
- nationality: [
- { required: true, message: "璇疯緭鍏ュ浗绫�", trigger: "blur" }
- ],
- currentMedicalInstitution: [
- { required: true, message: "璇疯緭鍏ユ墍鍦ㄥ尰鐤楁満鏋�", trigger: "blur" }
- ],
- currentDept: [
- { required: true, message: "鎵�鍦ㄥ尰鐤楁満鏋勭瀹�", trigger: "blur" }
- ],
- firstMedicalInstitution: [
- { required: true, message: "璇疯緭鍏ラ娆″尰鐤楁満鏋�", trigger: "blur" }
- ],
- firstDept: [
- { required: true, message: "璇疯緭鍏ラ娆″尰鐤楁満鏋勭瀹�", trigger: "blur" }
],
birthday: [
{ required: true, message: "璇烽�夋嫨鍑虹敓鏃ユ湡", trigger: "blur" }
],
- idcardtype: [
- { required: true, message: "璇烽�夋嫨璇佷欢绫诲瀷", trigger: "blur" }
- ],
- residenceaddress: [
- { required: true, message: "璇疯緭鍏ヤ綇鍧�", trigger: "blur" }
- ],
- registerAddresss: [
- { required: true, message: "璇疯緭鍏ョ幇灞呬綇鍦板潃", trigger: "blur" }
- ],
- diseasetype: [
- { required: true, message: "璇烽�夋嫨鐤剧梾绫诲瀷", trigger: "blur" }
- ],
- infectious: [
- { required: true, message: "璇烽�夋嫨浼犳煋鐥呯被鍨�", trigger: "blur" }
- ],
- patientstate: [
- { required: true, message: "璇烽�夋嫨鐥呬汉鐘跺喌", trigger: "blur" }
- ],
- kinship: [
- { required: true, message: "璇烽�夋嫨浜插睘鎯呭喌", trigger: "blur" }
- ],
- majorrelatives: [
- { required: true, message: "璇疯緭鍏ヤ富瑕佷翰灞�", trigger: "blur" }
- ],
- selfwill: [
- { required: true, message: "璇烽�夋嫨鏈汉鎰忔効", trigger: "blur" }
- ],
- registerAddresss: [
- { required: true, message: "璇疯緭鍏ョ幇鎵�鍦ㄥ湴", trigger: "blur" }
- ],
- familyrelations: [
- { required: true, message: "璇烽�夋嫨浜插睘涓庢崘鐚�呭叧绯�", trigger: "blur" }
- ],
- infosources: [
- { required: true, message: "璇烽�夋嫨淇℃伅鏉ユ簮", trigger: "blur" }
- ],
- idcardno: [
- { required: true, message: "璇锋纭緭鍏ヨ瘉浠跺彿鐮�", trigger: "blur" }
- ],
- sex: [{ required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "blur" }],
- age: [{ required: true, message: "璇疯緭鍏ュ勾榫�", trigger: "blur" }],
treatmenthospitalno: [
- { required: true, message: "璇烽�夋嫨鍖荤枟鏈烘瀯", trigger: "blur" }
+ { required: true, message: "璇烽�夋嫨棣栬瘖鍖婚櫌", trigger: "blur" }
],
bloodtype: [
{ required: true, message: "璇烽�夋嫨ABO琛�鍨�", trigger: "blur" }
- ],
- rhyin: [{ required: true, message: "璇烽�夋嫨RHD琛�鍨�", trigger: "blur" }],
- diseasetype: [
- { required: true, message: "璇烽�夋嫨RHD琛�鍨�", trigger: "blur" }
- ],
-
- inpatientno: [
- { required: true, message: "杈撳叆浣忛櫌鍙�", trigger: "blur" }
- ],
- diagnosisname: [
- { required: true, message: "鐤剧梾璇婃柇涓嶈兘涓虹┖", trigger: "blur" }
- ],
- infoname: [
- { required: true, message: "璇疯緭鍏ヤ俊鎭憳濮撳悕", trigger: "blur" }
- ],
- infophone: [
- { required: true, message: "璇疯緭鍏ヤ俊鎭憳鑱旂郴鐢佃瘽", trigger: "blur" }
- ],
- acquisitiontissueno: [
- { required: true, message: "鍣ㄥ畼鑾峰彇缁勭粐涓嶈兘涓虹┖", trigger: "blur" }
- ],
- reporterno: [
- { required: true, message: "璇烽�夋嫨鎶ュ憡浜�", trigger: "blur" }
- ],
- reporttime: [
- { required: true, message: "璇疯緭鍏ユ姤鍛婃椂闂�", trigger: "blur" }
- ],
- reporterphone: [
- { required: true, message: "璇疯緭鍏ユ姤鍛婁汉鑱旂郴鐢佃瘽", trigger: "blur" }
]
},
- //鏄惁鏄剧ず淇濆瓨鎸夐挳
showSaveBtn: true,
- showTerminationBtn: false,
- //娴佺▼鍚嶇О
- flowname: "娼滃湪鎹愮尞鐧昏",
- annexno: "PotentialDonationRegistration",
- starttime: "",
- endtime: "",
- reportlist: [],
- reportervalue: "",
- headers: {
- Authorization: "Bearer " + getToken()
- },
- provinceData: [
- { label: "鍏ㄩ儴", value: "" },
- { label: "鏉窞甯�", value: "1" },
- { label: "瀹佹尝甯�", value: "2" },
- { label: "娓╁窞甯�", value: "3" },
- { label: "鍢夊叴甯�", value: "4" },
- { label: "婀栧窞甯�", value: "5" },
- { label: "缁嶅叴甯�", value: "6" },
- { label: "閲戝崕甯�", value: "7" },
- { label: "琛㈠窞甯�", value: "8" },
- { label: "鑸熷北甯�", value: "9" },
- { label: "鍙板窞甯�", value: "A" },
- { label: "涓芥按甯�", value: "B" }
- ]
+ currentRecord: {},
+ modalVisible: {}
};
},
created() {
- if (sessionStorage.getItem("donatebaseinfo")) {
- this.queryParams = JSON.parse(sessionStorage.getItem("donatebaseinfo"));
- console.log(this.queryParams, "queryParams");
+ const savedParams = sessionStorage.getItem("donatebaseinfo");
+ if (savedParams) {
+ this.queryParams = { ...this.queryParams, ...JSON.parse(savedParams) };
}
},
+ async mounted() {
+ await Promise.all([
+ this.getCurrentUser(),
+ this.getuserlist(),
+ this.selectReporters()
+ ]);
- mounted(e) {
- // let idd = this.$route.query.userid
- // console.log('chuanzhi',idd);
-
- this.getCurrentUser();
- this.getuserlist();
- this.selectReporters();
-
- this.LoadReportList();
-
- 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).format("YYYY-MM-DD")
- ];
- }
- if (this.$route.params.reporterno != "") {
- this.reporterno = this.$route.params.reporterno;
- }
- this.queryParams.terminationcase = this.$route.params.terminationcase;
-
- if (
- this.$route.params.tempRecordState != "" &&
- this.$route.params.tempRecordState != undefined
- ) {
- this.queryParams.recordstate = "" + this.$route.params.tempRecordState;
- }
- if (this.$route.params.reporterno != "") {
- this.reportervalue = this.$route.params.reporterno;
- }
- if (!this.$route.params.shen != "") {
- this.searchAddress.sheng = this.$route.params.shen;
- if (!this.$route.params.shi != "") {
- this.searchAddress.shi = this.$route.params.shi;
- }
- if (!this.$route.params.qu) {
- this.searchAddress.qu = this.$route.params.qu;
- }
- }
-
- if (this.$route.params.city != "") {
- this.queryParams.city = this.$route.params.city;
- } else {
- this.queryParams.city = "";
- }
-
+ this.initializeRouteParams();
this.getTimeList();
-
this.getList();
},
-
methods: {
- getCurrentUser() {
- getUserProfile().then(response => {
- this.currentuser = response.data;
- });
+ async getCurrentUser() {
+ const response = await getUserProfile();
+ this.currentuser = response.data;
},
+
calculateAge(birthday) {
if (!birthday) {
- // 娓呯┖骞撮緞瀛楁
- this.form.age = null;
- this.form.age2 = null;
- // this.form.age3 = null;
+ this.form.age = this.form.age2 = null;
return;
}
const birthDate = new Date(birthday);
const today = new Date();
- // 璁$畻鎬绘湀浠藉樊寮�
let yearDiff = today.getFullYear() - birthDate.getFullYear();
let monthDiff = today.getMonth() - birthDate.getMonth();
let dayDiff = today.getDate() - birthDate.getDate();
- // 濡傛灉褰撳墠鏃ユ湡鐨勫ぉ鏁板皬浜庡嚭鐢熸棩鏈熺殑澶╂暟锛屽垯鍊熸湀
if (dayDiff < 0) {
monthDiff--;
- // 鑾峰彇涓婁釜鏈堢殑鏈�鍚庝竴澶�
const lastDayOfMonth = new Date(
today.getFullYear(),
today.getMonth(),
@@ -1402,683 +403,291 @@
dayDiff += lastDayOfMonth;
}
- // 濡傛灉鏈堜唤宸负璐燂紝鍒欏�熷勾
if (monthDiff < 0) {
yearDiff--;
monthDiff += 12;
}
- // 璧嬪�煎勾閮ㄥ垎
this.form.age = yearDiff;
this.form.ageunit = "宀�";
-
- // 璧嬪�兼湀閮ㄥ垎锛堟垨鑰呮偍涔熷彲浠ラ�夋嫨鏄剧ず鍓╀綑鐨勫ぉ鏁帮級
this.form.age2 = monthDiff;
this.form.ageunit2 = "鏈�";
- // 濡傛灉鎮ㄨ繕鎯虫樉绀哄ぉ鏁�
- // this.form.age3 = dayDiff;
- // this.form.ageunit3 = '澶�';
-
- // 濡傛灉骞撮緞灏忎簬1宀侊紝鍙兘鎮ㄥ笇鏈涚敤鏈堟垨澶╂潵琛ㄧず涓诲勾榫�
- // 杩欓噷鏄竴涓畝鍗曠殑閫昏緫锛屾偍鍙互鏍规嵁闇�姹傝皟鏁�
if (yearDiff === 0) {
if (monthDiff === 0) {
- // 灏忎簬1涓湀锛岀敤澶╄〃绀�
this.form.age = dayDiff;
this.form.ageunit = "澶�";
- this.form.age2 = null; // 娓呯┖绗簩瀛楁
- // this.form.age3 = null;
+ this.form.age2 = null;
} else {
- // 灏忎簬1骞达紝鐢ㄦ湀琛ㄧず
this.form.age = monthDiff;
this.form.ageunit = "鏈�";
- this.form.age2 = dayDiff; // 绗簩瀛楁鏄剧ず澶�
+ this.form.age2 = dayDiff;
this.form.ageunit2 = "澶�";
}
}
- this.form.andAge = `${
+ this.form.andAge = [
this.form.age && this.form.age !== 0
? `${this.form.age}${this.form.ageunit}`
- : ""
- } ${
+ : "",
this.form.age2 && this.form.age2 !== 0
? `${this.form.age2}${this.form.ageunit2}`
: ""
- }`.trim();
- this.$forceUpdate(); // 寮哄埗鏇存柊
- console.log(this.form.andAge);
- },
- LoadReportList() {
- listDonatebaseinfo().then(res => {
- let list = res.rows;
- let reportlist = [];
- reportlist.push({ reporterno: "", reportername: "鍏ㄩ儴" });
- list.forEach(element => {
- reportlist.push({
- reporterno: element.reporterno,
- reportername: element.reportername
- });
- });
-
- if (reportlist != 0) {
- reportlist = this.resetArr(reportlist);
- this.reportlist = reportlist;
- }
- });
+ ]
+ .filter(Boolean)
+ .join(" ");
},
- resetArr(Arr) {
- var hash = {};
- Arr = Arr.reduce(function(arr, current) {
- hash[current.reporterno]
- ? ""
- : (hash[current.reporterno] = true && arr.push(current));
- return arr;
- }, []);
- return Arr;
+ handleTerminate(row) {
+ this.currentRecord = { ...row };
+ this.modalVisible = { ...this.modalVisible, terminate: true };
},
- getTimeList(e) {
- console.log(this.selecttime);
- if (this.selecttime != null) {
- if (this.selecttime != 0) {
- this.endtime = this.selecttime[1];
- this.starttime = this.selecttime[0];
- // if (this.endtime == this.starttime) {
- let num = Number(this.endtime.slice(5, 7));
- if (num < 9) {
- let mon = Number(this.endtime.slice(6, 7));
- this.endtime =
- this.endtime.slice(0, 5) +
- "0" +
- (mon + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
- // this.endtime=this.endtime.slice(0,5)骞�
- else if (num >= 10) {
- this.endtime =
- this.endtime.slice(0, 5) +
- (num + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- } else {
- this.endtime =
- this.endtime.slice(0, 5) +
- "10" +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
- this.starttime =
- this.starttime + " " + "00" + ":" + "00" + ":" + "00";
- // }
- } else {
- this.starttime = "1998-01-01 00:00:00";
- this.endtime = "2998-01-01 00:00:00";
- }
- } else {
- this.starttime = "1998-01-01 00:00:00";
- this.endtime = "2998-01-01 00:00:00";
+ handleRestore(row) {
+ this.currentRecord = { ...row };
+ this.modalVisible = { ...this.modalVisible, restore: true };
+ },
+
+ getTimeList() {
+ if (!this.selecttime) {
+ // this.queryParams.starttime = "1998-01-01 00:00:00";
+ // this.queryParams.endtime = "2998-01-01 00:00:00";
+ return;
}
+
+ const [start, end] = this.selecttime;
+ this.queryParams.starttime = `${start} 00:00:00`;
+
+ const monthNum = Number(end.slice(5, 7));
+ const nextMonth = monthNum < 9 ? `0${monthNum + 1}` : monthNum + 1;
+ this.queryParams.endtime = `${end.slice(0, 5)}${nextMonth}-01 00:00:00`;
},
- selectReporters() {
- //涓撹亴浜哄憳
- listReportname("zzry").then(res => {
- this.reporters = res.data;
- });
+ async selectReporters() {
+ const res = await listReportname("zzry");
+ this.reporters = res.data;
},
- getuserlist() {
- //鐢ㄦ埛鍒楄〃
- listUser().then(res => {
- this.users = res.data;
- });
- },
-
- handleapproval(row) {
- this.$confirm("鏄惁纭灏嗘渚嬩笂鎶ュ鏍革紵", "鎻愮ず", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- })
- .then(() => {
- row.recordstate = 1;
- updateDonatebaseinfo(row).then(response => {
- this.$modal.msgSuccess("涓婃姤瀹℃牳鎴愬姛");
- this.getList();
- });
- })
- .catch(() => {
- this.$message({
- type: "info",
- message: "宸插彇娑堜笂鎶�"
- });
- });
- },
- resetapproval(row) {
- this.approvalState = false;
- // this.reset();
- // const id = row.id || this.ids;
- updateDonatebaseinfo(row).then(response => {
- row.recordstate = 0;
- });
+ async getuserlist() {
+ const res = await listUser();
+ this.users = res.data;
},
updateMessage() {
- try {
- const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
- if (reg.test(this.form.idcardno)) {
- // 韬唤璇佸彿鐮佹槸鍚﹀悎娉�
- var org_birthday = this.form.idcardno.substring(6, 14);
- var org_gender = this.form.idcardno.substring(16, 17);
- var sex = org_gender % 2 == 1 ? 1 : 2;
- var birthday =
- org_birthday.substring(0, 4) +
- "-" +
- org_birthday.substring(4, 6) +
- "-" +
- org_birthday.substring(6, 8);
- var birthdays = new Date(birthday.replace(/-/g, "/"));
- let d = new Date();
- let age =
- d.getFullYear() -
- birthdays.getFullYear() -
- (d.getMonth() < birthdays.getMonth() ||
- (d.getMonth() == birthdays.getMonth() &&
- d.getDate() < birthdays.getDate())
- ? 1
- : 0);
- // 璧嬪�肩粰琛ㄦ牸
- this.form.sex = sex;
- this.form.birthday = birthday;
- this.calculateAge(birthday);
- // this.form.age = age;
- } else {
- }
- } catch {}
- },
- // sheng: '娴欐睙鐪�',
- // shi: '',
- // qu: '',
+ const idCardReg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
- // 韬唤璇侀獙璇�
- //鏍规嵁韬唤璇佸彿鑷姩鐢熸垚鎬у埆銆佸嚭鐢熸棩鏈熷拰骞撮緞
- inputChange() {
- const idCard = this.props.form.getFieldValue("idCard");
- let birthday = "";
- let sex = "0";
- if (idCard.length === 15) {
- birthday = `19${idCard.substring(6, 8)}-${idCard.substring(
- 9,
- 10
- )}-${idCard.substring(11, 12)}`;
- sex = idCard[14] % 2 === 0 ? "0" : "1";
- } else {
- birthday = `${idCard.substring(6, 10)}-${idCard.substring(
- 11,
- 12
- )}-${idCard.substring(13, 14)}`;
- sex = idCard[16] % 2 === 0 ? "0" : "1";
+ if (idCardReg.test(this.form.idcardno)) {
+ const orgBirthday = this.form.idcardno.substring(6, 14);
+ const orgGender = this.form.idcardno.substring(16, 17);
+
+ const sex = orgGender % 2 == 1 ? 1 : 2;
+ const birthday = `${orgBirthday.substring(
+ 0,
+ 4
+ )}-${orgBirthday.substring(4, 6)}-${orgBirthday.substring(6, 8)}`;
+
+ this.form.sex = sex;
+ this.form.birthday = birthday;
+ this.calculateAge(birthday);
}
- this.setState({
- birthday,
- sex
- });
},
- /** 鏌ヨ鎹愮尞鍩虹鍒楄〃 */
- getList() {
+ initializeRouteParams() {
+ const { params } = this.$route;
+ const routeParams = {
+ starttime: params.starttime,
+ endtime: params.endtime,
+ reporterno: params.reporterno,
+ terminationcase: params.terminationcase,
+ tempRecordState: params.tempRecordState,
+ city: params.city
+ };
+
+ Object.entries(routeParams).forEach(([key, value]) => {
+ if (value) this.queryParams[key] = value;
+ });
+
+ if (params.starttime && params.endtime) {
+ this.selecttime = [
+ this.$moment(params.starttime).format("YYYY-MM-DD"),
+ this.$moment(params.endtime).format("YYYY-MM-DD")
+ ];
+ }
+ },
+
+ async getList() {
this.loading = true;
- this.queryParams.params = {};
- sessionStorage.removeItem("donatebaseinfo");
+
sessionStorage.setItem(
"donatebaseinfo",
JSON.stringify(this.queryParams)
);
- // 璺宠浆鏃剁殑榛樿杩涘害
- if (this.reportervalue != "") {
- this.queryParams.reportno = this.reportervalue;
- }
-
- if (this.starttime != "") {
- this.queryParams.starttime = this.starttime;
- } else {
- this.queryParams.starttime = "";
- }
- if (this.endtime != "") {
- this.queryParams.endtime = this.endtime;
- } else {
- this.queryParams.endtime = "";
- }
- 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);
+ try {
+ const response = await listDonatebaseinfo(this.queryParams);
+ this.donatebaseinfoList = response.data;
this.total = response.total;
+ } catch (error) {
+ console.error("鑾峰彇鍒楄〃澶辫触:", error);
+ } finally {
this.loading = false;
- });
+ }
},
- // 鍙栨秷鎸夐挳
+ /** 鎵撳紑缂栬緫寮圭獥 */
+ handleOpenEdit(row) {
+ this.currentEditData = { ...row };
+ console.log(this.currentEditData, "this.currentEditData");
+ this.editModalVisible = true;
+ },
+
+ /** 澶勭悊缂栬緫鎴愬姛 */
+ handleEditSuccess(updatedData) {
+ this.$modal.msgSuccess("缂栬緫鎴愬姛");
+ this.getList(); // 鍒锋柊鍒楄〃
+ },
+
+ /** 澶勭悊缂栬緫寮圭獥鍏抽棴 */
+ handleEditClosed() {
+ this.currentEditData = {};
+ },
+
+ handleModalVisibleChange(newVisible) {
+ this.modalVisible = { ...newVisible };
+ },
+
+ handleOperationSuccess({ type, record }) {
+ console.log(`${type}鎿嶄綔鎴愬姛:`, record);
+ this.getList();
+ },
+
cancel() {
this.open = false;
this.reset();
},
- // 琛ㄥ崟閲嶇疆
+
reset() {
this.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: "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�"
+ sex: null
+ // ... 淇濈暀蹇呰鐨勫瓧娈靛垵濮嬪��
};
-
this.resetForm("form");
},
- /** 鎼滅储鎸夐挳鎿嶄綔 */
+
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
- /** 閲嶇疆鎸夐挳鎿嶄綔 */
+
resetQuery() {
- this.daterangeReporttime = [];
-
- this.reportervalue = "";
-
this.queryParams = {
- doname: null,
pageNum: 1,
pageSize: 10,
name: null,
- idcardno: null,
- residenceprovince: null,
- residencecity: null,
- residencetown: null,
- // "2"
- recordstate: null,
- treatmenthospitalname: null,
- donorno: null,
- acquisitiontissueno: null,
- reportername: null,
- reporttime: null,
- city: null,
- treatmenthospitalno: null
+ treatmenthospitalno: null,
+ starttime: null,
+ endtime: null
};
this.selecttime = [];
this.getTimeList();
- this.searchAddress = {
- sheng: "",
- shi: "",
- qu: "",
- organizationname: null
- };
- //this.$refs.areaSelect.clean();
-
this.resetForm("queryForm");
this.handleQuery();
},
- // 澶氶�夋閫変腑鏁版嵁
+
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
- /** 鏂板鎸夐挳鎿嶄綔 */
+
handleAdd() {
- // this.$router.push({
- // path: "/organ/donationdetails/",
- // query: {
- // organType: "add",
- // }
- // });
this.reset();
- //璁剧疆鎶ュ憡浜哄拰閮ㄩ棬/缁�
this.form.reporterno = this.currentuser.userName;
this.form.reportername = this.currentuser.nickName;
- this.form.deptid = this.currentuser.deptid;
-
- this.showSaveBtn = true;
- //this.$refs.annex.getAnnexList();
this.open = true;
- // this.$nextTick(function() {
- // this.$refs.annex.getAnnexList();
- // });
-
this.title = "浜轰綋鍣ㄥ畼娼滃湪鎹愮尞鑰呯櫥璁拌〃";
},
- /** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
this.$router.push({
path: "/case/course",
- query: {
- id: row.id,
- organType: "edit"
+ query: { id: row.id, organType: "edit" }
+ });
+ },
+
+ async submitForm() {
+ const valid = await this.$refs.form.validate();
+ if (!valid) return;
+
+ const formData = { ...this.form };
+
+ // 澶勭悊琛ㄥ崟鏁版嵁
+ const processedData = this.processFormData(formData);
+
+ try {
+ const res = await addDonatebaseinfo(processedData);
+ if (res.code === 200) {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.$router.push({
+ path: "/organ/donationdetails/",
+ query: { id: res.data.id, organType: "edit" }
+ });
+ this.open = false;
+ } else {
+ this.$modal.msgError("鏂板澶辫触锛�" + res.msg);
+ }
+ } catch (error) {
+ this.$modal.msgError("鎿嶄綔澶辫触");
+ }
+ },
+
+ processFormData(data) {
+ const processed = { ...data };
+
+ // 澶勭悊鏁扮粍瀛楁
+ const arrayFields = [
+ "diseasetype",
+ "infectious",
+ "selfwill",
+ "othercases",
+ "infosources",
+ "kinship",
+ "patientstate"
+ ];
+ arrayFields.forEach(field => {
+ if (Array.isArray(processed[field])) {
+ processed[field] = processed[field].join(",");
}
});
- // this.showSaveBtn = true;
- // const id = row.id || this.ids;
- // //this.$refs.annex.getAnnexList();
- // getDonatebaseinfo(id).then((response) => {
- // this.reset();
+ // 澶勭悊鏃ユ湡瀛楁
+ if (processed.birthday) {
+ processed.birthday = this.$moment(processed.birthday).format(
+ "YYYY-MM-DD HH:mm:ss"
+ );
+ }
- // this.$nextTick(function () {
- // this.$refs.annex.getAnnexList();
- // });
- // this.form = response.data;
- // response.data.sex = parseInt(response.data.sex);
- // this.form.id = response.data.id;
- // this.form.diseasetype = this.form.diseasetype.split(",");
- // this.form.infectious = this.form.infectious.split(",");
- // this.form.selfwill = this.form.selfwill.split(",");
- // this.form.othercases = this.form.othercases.split(",");
- // this.form.infosources = this.form.infosources.split(",");
- // this.form.kinship = this.form.kinship.split(",");
- // this.form.patientstate = this.form.patientstate.split(",");
- // this.open = true;
- // this.title = "浜轰綋鍣ㄥ畼娼滃湪鎹愮尞鑰呯櫥璁拌〃";
- // this.registerAddresss.sheng = response.data.registerprovincename;
- // this.residenceAddresss.sheng = response.data.residenceprovincename;
- // this.registerAddresss.shi = response.data.registercityname;
- // this.residenceAddresss.shi = response.data.residencecityname;
- // this.residenceAddresss.qu = response.data.residencetownname;
- // this.registerAddresss.qu = response.data.registertownname;
- // });
+ processed.donatetime = processed.reporttime;
+ processed.workflow = 0;
+ processed.recordstate = 0;
+
+ return processed;
},
- // 缁堟妗堜緥
- handletermination(row) {
- this.reset();
- this.showSaveBtn = false;
- this.showTerminationBtn = true;
- const id = row.id || this.ids;
- getDonatebaseinfo(id).then(response => {
- this.form = response.data;
- this.form.diseasetype = this.form.diseasetype.split(",");
- this.form.infectious = this.form.infectious.split(",");
- this.form.selfwill = this.form.selfwill.split(",");
- this.form.othercases = this.form.othercases.split(",");
- this.form.infosources = this.form.infosources.split(",");
- this.form.kinship = this.form.kinship.split(",");
- this.form.patientstate = this.form.patientstate.split(",");
- this.registerAddresss.sheng = response.data.registerprovincename;
- this.residenceAddresss.sheng = response.data.residenceprovincename;
- this.registerAddresss.shi = response.data.registercityname;
- this.residenceAddresss.shi = response.data.residencecityname;
- this.residenceAddresss.qu = response.data.residencetownname;
- this.registerAddresss.qu = response.data.registertownname;
- this.open = true;
- this.title = "浜轰綋鍣ㄥ畼娼滃湪鎹愮尞鑰呯櫥璁拌〃";
- this.form.recordstate = 99;
- // this.$nextTick(function() {
- // this.$refs.annex.getAnnexList();
- // });
- });
- },
- /** 鎻愪氦鎸夐挳 */
- submitForm() {
- console.log(this.form);
- this.$refs["form"].validate(valid => {
- 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"
- );
- this.form.diseasetype = this.form.diseasetype.join(",");
- this.form.infectious = this.form.infectious.join(",");
- this.form.selfwill = this.form.selfwill.join(",");
- this.form.othercases = this.form.othercases.join(",");
- this.form.infosources = this.form.infosources.join(",");
- this.form.kinship = this.form.kinship.join(",");
- this.form.patientstate = this.form.patientstate.join(",");
- this.form.registerprovince = this.$refs.registerSelect.getSheng();
- this.form.registerprovincename = this.registerAddresss.sheng;
- this.form.residenceprovince = this.$refs.residenceSelect.getSheng();
- this.form.residenceprovincename = this.residenceAddresss.sheng;
+ async handleExport() {
+ try {
+ await this.$modal.confirm("鏄惁纭瀵煎嚭鎵�鏈夋崘鐚熀纭�鏁版嵁椤癸紵");
+ this.exportLoading = true;
- this.form.registercity = this.$refs.registerSelect.getShi();
- this.form.registercityname = this.registerAddresss.shi;
-
- this.form.residencecity = this.$refs.residenceSelect.getShi();
- this.form.residencecityname = this.residenceAddresss.shi;
-
- this.form.residencetown = this.$refs.residenceSelect.getQu();
- this.form.residencetownname = this.residenceAddresss.qu;
-
- this.form.registertown = this.$refs.registerSelect.getQu();
- 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(
- this.form.treatmenthospitalno
- ).organizationname;
- } catch {
- this.form.treatmenthospitalname = this.form.treatmenthospitalno;
- }
-
- try {
- this.form.redorganname = this.$refs.addCrossOrgSelect.getOptionByValue(
- this.form.redorganno
- ).organizationname;
- } catch {
- this.form.redorganname = this.form.redorganno;
- }
-
- 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;
- } else {
- console.log("1");
- this.form = date;
- console.log(this.form, "form");
- this.$modal.msgError("鏂板澶辫触锛�" + res.msg);
- }
- });
+ const response = await exportDonatebaseinfo(this.queryParams);
+ this.$download.name(response.msg);
+ } catch (error) {
+ if (error !== "cancel") {
+ this.$modal.msgError("瀵煎嚭澶辫触");
}
- });
- },
- /** 鍒犻櫎鎸夐挳鎿嶄綔 */
- handleDelete(row) {
- const ids = row.id || this.ids;
- this.$modal
- .confirm('鏄惁纭鍒犻櫎鎹愮尞鍩虹缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�')
- .then(function() {
- return delDonatebaseinfo(ids);
- })
- .then(() => {
- this.getList();
- this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- })
- .catch(() => {});
- },
-
- /** 瀵煎嚭鎸夐挳鎿嶄綔 */
- handleExport() {
- const queryParams = this.queryParams;
- this.$modal
- .confirm("鏄惁纭瀵煎嚭鎵�鏈夋崘鐚熀纭�鏁版嵁椤癸紵")
- .then(() => {
- this.exportLoading = true;
- return exportDonatebaseinfo(queryParams);
- })
- .then(response => {
- this.$download.name(response.msg);
- this.exportLoading = false;
- })
- .catch(() => {});
- },
-
- // 瀵硅薄杞垚鎸囧畾瀛楃涓插垎闅�
- listToString(list, separator) {
- let strs = "";
- separator = separator || ",";
- for (let i in list) {
- strs += list[i] + separator;
+ } finally {
+ this.exportLoading = false;
}
- return strs != "" ? strs.substr(0, strs.length - 1) : "";
- },
- //瀛楃涓叉牴鎹寚瀹氬瓧绗︿覆鍒嗛殧
- stringToList(str, separator) {
- separator = separator || ",";
- let tempList = [];
- if (str != null && str != undefined && str != "") {
- tempList = str.split(separator);
- }
- return tempList;
- },
-
- //涓嬭浇娼滃湪鐧昏琛�
- handledownload(row) {
- const id = row.id || this.ids;
-
- 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"];
- 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