| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <!-- 搜索条件 --> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="70px" |
| | | > |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px"> |
| | | <el-row :gutter="8"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="捐献进度" prop="recordstate"> |
| | | <el-select |
| | | v-model="queryParams.recordstate" |
| | | placeholder="请选择捐献进度" |
| | | clearable |
| | | size="small" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_DonationStatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | <el-select v-model="queryParams.recordstate" placeholder="请选择捐献进度" clearable size="small"> |
| | | <el-option v-for="dict in dict.type.sys_DonationStatus" :key="dict.value" :label="dict.label" |
| | | :value="dict.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请输入姓名" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item |
| | | align="left" |
| | | label="医疗机构" |
| | | prop="treatmenthospitalno" |
| | | > |
| | | <org-selecter |
| | | ref="orgSelecter" |
| | | :org-type="'3'" |
| | | v-model="queryParams.treatmenthospitalno" |
| | | /> |
| | | <el-form-item align="left" label="医疗机构" prop="treatmenthospitalno"> |
| | | <org-selecter ref="orgSelecter" :org-type="'3'" v-model="queryParams.treatmenthospitalno" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item label="捐献地市"> |
| | | <el-select v-model="queryParams.city" placeholder="请选择地市"> |
| | | <el-option |
| | | v-for="item in provinceData" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <el-option v-for="item in provinceData" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | |
| | | </el-row> |
| | | <el-row :gutter="8"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="报告人"> |
| | | <el-select v-model="queryParams.reporterno" placeholder="请选择报告人"> |
| | | <el-option |
| | | v-for="item in reportlist" |
| | | :key="item.index" |
| | | :label="item.reportername" |
| | | :value="item.reporterno" |
| | | > |
| | | <el-option v-for="item in reportlist" :key="item.index" :label="item.reportername" :value="item.reporterno"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="报告日期"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="selecttime" |
| | | type="monthrange" |
| | | range-separator="至" |
| | | start-placeholder="开始月份" |
| | | end-placeholder="结束月份" |
| | | value-format="yyyy-MM-dd" |
| | | @change="getTimeList" |
| | | > |
| | | <el-date-picker style="width: 100%" v-model="selecttime" type="monthrange" range-separator="至" |
| | | start-placeholder="开始月份" end-placeholder="结束月份" value-format="yyyy-MM-dd" @change="getTimeList"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="getBaseInfoList" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="getBaseInfoList">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="8"> |
| | | <el-card shadow="never"> |
| | | <!-- 捐献案例列表 --> |
| | | <el-table |
| | | v-loading="loading" |
| | | border |
| | | :data="donationCaseTableData" |
| | | @row-click="selectDonotor" |
| | | > |
| | | <el-table v-loading="loading" border :data="donationCaseTableData" @row-click="selectDonotor"> |
| | | <el-table-column label="姓名" align="center" prop="name" /> |
| | | |
| | | <el-table-column label="性别" align="center" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_user_sex" |
| | | :value="scope.row.sex" |
| | | /> |
| | | <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="医疗机构" |
| | | width="200px" |
| | | align="center" |
| | | prop="treatmenthospitalname" |
| | | /> |
| | | <el-table-column label="医疗机构" width="200px" align="center" prop="treatmenthospitalname" /> |
| | | </el-table> |
| | | <!-- hide-on-single-page --> |
| | | <pagination |
| | | v-show="total > 0" |
| | | small |
| | | layout="prev, pager, next" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getBaseInfoList" |
| | | /> |
| | | <pagination v-show="total > 0" small layout="prev, pager, next" :total="total" :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" @pagination="getBaseInfoList" /> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="16"> |
| | | <!-- <div class="grid-content bg-purple-dark" style="width:100%;height:800px;background-color:purple"> |
| | | </div> --> |
| | | <!-- <div class="grid-content bg-purple-dark" style="width:100%;height:800px;background-color:purple"> |
| | | </div> --> |
| | | <el-card shadow="never"> |
| | | <el-form ref="infoForm" :model="organalForm" label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="捐献编号" prop="donorno"> |
| | | <el-input |
| | | v-model="curdonorno" |
| | | disabled |
| | | placeholder="请选择捐献案例" |
| | | /> |
| | | <el-input v-model="curdonorno" disabled placeholder="请选择捐献案例" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="姓名" prop="donorname"> |
| | | <el-input |
| | | v-model="curdonorname" |
| | | disabled |
| | | placeholder="请选择捐献案例" |
| | | /> |
| | | </el-form-item> </el-col |
| | | ><el-col :span="6"> |
| | | <el-input v-model="curdonorname" disabled placeholder="请选择捐献案例" /> |
| | | </el-form-item> </el-col><el-col :span="6"> |
| | | <el-form-item label="年龄" align="center" prop="age"> |
| | | <el-input v-model="curage" disabled /> |
| | | </el-form-item> |
| | |
| | | </el-row> |
| | | <el-form-item label="选择器官"> |
| | | <el-checkbox-group v-model="organalForm.organname"> |
| | | <el-checkbox |
| | | v-for="dict in dict.type.sys_Organ" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | @click="changeorganState(dict.value)" |
| | | @change="changeorganState(dict.value)" |
| | | > |
| | | <el-checkbox v-for="dict in dict.type.sys_Organ" :key="dict.value" :label="dict.value" |
| | | @click="changeorganState(dict.value)" @change="changeorganState(dict.value)"> |
| | | {{ dict.label }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="器官分配"> |
| | | <el-table v-loading="loading" border :data="organalTableData"> |
| | | <el-table-column |
| | | label="器官名称" |
| | | align="center" |
| | | width="90" |
| | | prop="organname" |
| | | /> |
| | | <el-table-column |
| | | label="器官编号" |
| | | align="center" |
| | | width="80" |
| | | prop="organno" |
| | | /> |
| | | <el-table-column |
| | | label="分配状态" |
| | | align="center" |
| | | width="90" |
| | | prop="organstate" |
| | | > |
| | | <el-table-column label="器官名称" align="center" width="90" prop="organname" /> |
| | | <el-table-column label="器官编号" align="center" width="80" prop="organno" /> |
| | | <el-table-column label="分配状态" align="center" width="90" prop="organstate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_organstate" |
| | | :value="scope.row.organstate" |
| | | /> |
| | | <dict-tag :options="dict.type.sys_organstate" :value="scope.row.organstate" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="移植医院" |
| | | align="center" |
| | | prop="transplanthospitalname" |
| | | > |
| | | <el-table-column label="移植医院" align="center" prop="transplanthospitalname"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | width="200" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <el-table-column label="操作" width="200" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | v-if="scope.row.id == null" |
| | | type="text" |
| | | icon="el-icon-copy-document" |
| | | @click="distributionDialog(scope.row)" |
| | | >分配</el-button |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | v-else |
| | | type="text" |
| | | icon="el-icon-copy-document" |
| | | @click="distributionDialog(scope.row)" |
| | | >修改</el-button |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | v-if="scope.row.organstate != 99" |
| | | type="text" |
| | | icon="el-icon-copy-document" |
| | | @click="redistribution(scope.row)" |
| | | >重新分配</el-button |
| | | > |
| | | <el-button size="mini" v-if="scope.row.id == null" type="text" icon="el-icon-copy-document" |
| | | @click="distributionDialog(scope.row)">分配</el-button> |
| | | <el-button size="mini" v-else type="text" icon="el-icon-copy-document" |
| | | @click="distributionDialog(scope.row)">修改</el-button> |
| | | <el-button size="mini" v-if="scope.row.organstate != 99" type="text" icon="el-icon-copy-document" |
| | | @click="redistribution(scope.row)">重新分配</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </el-row> |
| | | |
| | | <!-- 添加或修改器官分配对话框 --> |
| | | <el-dialog |
| | | :title="distributionFormTitle" |
| | | :visible.sync="showDistributionForm" |
| | | :close-on-click-modal="false" |
| | | width="1000px" |
| | | append-to-body |
| | | > |
| | | <el-dialog :title="distributionFormTitle" :visible.sync="showDistributionForm" :close-on-click-modal="false" |
| | | width="1000px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="160px"> |
| | | <el-row> |
| | | <el-col :span="16"> |
| | | <el-form-item label="捐献编号" prop="donorno"> |
| | | <el-input |
| | | v-model="distributionForm.donorno" |
| | | placeholder="请输入捐献者编号" |
| | | disabled |
| | | /> |
| | | </el-form-item> </el-col |
| | | ><el-col :span="8"> |
| | | <el-input v-model="distributionForm.donorno" placeholder="请输入捐献者编号" disabled /> |
| | | </el-form-item> </el-col><el-col :span="8"> |
| | | <el-form-item label="分配状态" prop="organstate"> |
| | | <el-select v-model="form.organstate" placeholder="请选择器官状态"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_organstate" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | <el-option v-for="dict in dict.type.sys_organstate" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="捐献姓名" prop="curdonorname"> |
| | | <el-input |
| | | v-model="curdonorname" |
| | | placeholder="捐献者姓名" |
| | | disabled |
| | | /> |
| | | <el-input v-model="curdonorname" placeholder="捐献者姓名" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="器官名称" prop="organnumber"> |
| | | <el-select |
| | | ref="organNameSelect" |
| | | v-model="form.organnumber" |
| | | placeholder="请选择器官编号" |
| | | clearable |
| | | size="small" |
| | | disabled |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_Organ" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | <el-select ref="organNameSelect" v-model="form.organnumber" placeholder="请选择器官编号" clearable size="small" |
| | | disabled> |
| | | <el-option v-for="dict in dict.type.sys_Organ" :key="dict.value" :label="dict.label" |
| | | :value="dict.value" /> |
| | | </el-select> |
| | | </el-form-item> </el-col |
| | | ><el-col :span="8"> |
| | | </el-form-item> </el-col><el-col :span="8"> |
| | | <el-form-item label="系统编号" prop="ageunit"> |
| | | <el-input v-model="form.ageunit" placeholder="请输入系统编号" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row |
| | | ><el-col :span="8"> |
| | | <el-row><el-col :span="8"> |
| | | <el-form-item label="接收时间" prop="applicanttime"> |
| | | <el-date-picker |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | v-model="form.applicanttime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择接收时间" |
| | | > |
| | | <el-date-picker clearable size="small" style="width: 100%" v-model="form.applicanttime" type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择接收时间"> |
| | | </el-date-picker> |
| | | </el-form-item> </el-col |
| | | ><el-col :span="8"> |
| | | <el-form-item label="移植机构" prop="treatmenthospitalno"> |
| | | <org-selecter |
| | | ref="tranHosSelect" |
| | | :org-type="'4'" |
| | | v-model="form.transplanthospitalno" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> </el-col></el-row |
| | | ><el-row> |
| | | </el-form-item> </el-col><el-col :span="16"> |
| | | <el-form-item label="移植医院" prop="treatmenthospitalno"> |
| | | <org-selecter ref="tranHosSelect" :org-type="'4'" v-model="form.transplanthospitalno" style="width: 100%" /> |
| | | </el-form-item> </el-col></el-row><el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="受体姓名" prop="name"> |
| | | <el-input v-model="form.name" placeholder="姓名" /> |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <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 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="8"> |
| | | </el-form-item> </el-col><el-col :span="8"> |
| | | <el-form-item label="证件号码" prop="idcardno"> |
| | | <el-input |
| | | v-model="form.idcardno" |
| | | placeholder="请输入移植人证件号码" |
| | | /> |
| | | <el-input v-model="form.idcardno" placeholder="请输入移植人证件号码" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | form: {}, |
| | | rules: { |
| | | applicanttime: [ |
| | | { required: true, message: "请输入捐献者姓名", trigger: "blur" }, |
| | | { required: true, message: "请输入接收时间", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | // 遮罩层 |
| | |
| | | this.endtime = "2998-01-01 00:00:00"; |
| | | } |
| | | }, |
| | | updateStatus(data) { |
| | | |
| | | //重新分配 |
| | | redistribution(data) { |
| | | console.log("重新分配", data); |
| | | //弹窗 |
| | | this.showDistributionForm = true; |
| | | this.reset(); |
| | | |
| | | getDonateorgan(data.id).then((res) => { |
| | | let obj = res.data; |
| | | obj.organstate = 99; |
| | | updateDonateorgan(obj).then((res) => { |
| | | console.log("重新分配的", res); |
| | | // if(res.code === 200){ |
| | | this.form.organstate = data.organstate; |
| | | this.form.organno = data.organno; |
| | |
| | | }; |
| | | |
| | | listOrganallocation(loactionSearcParam).then((res) => { |
| | | console.log("allocation数据", res.rows); |
| | | if (res.rows != 0) { |
| | | let list = res.rows[0]; |
| | | // this.form.ageunit = list.ageunit; |
| | | this.form.applicanttime = list.applicanttime; |
| | | // this.form.treatmenthospitalno = list.treatmenthospitalno; |
| | | // this.form.transplanthospitalname = list.transplanthospitalname |
| | | console.log("ididididid", this.form.id); |
| | | } |
| | | }; |
| | | }); |
| | | // } |
| | | console.log("Organallocation", this.form); |
| | | }); |
| | | }); |
| | | }, |
| | | redistribution(data) { |
| | | console.log("重新分配", data); |
| | | //弹窗 |
| | | this.showDistributionForm = true; |
| | | this.reset(); |
| | | |
| | | this.updateStatus(data); |
| | | |
| | | |
| | | }, |
| | | /** 查询捐献基础列表 */ |
| | | getBaseInfoList(e) { |
| | | this.loading = true; |
| | |
| | | submitForm() { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | |
| | | if (this.form.id != null) { |
| | | //更新捐献器官表 |
| | | this.form.allocationstatus = this.form.organstate; |
| | |
| | | this.showDistributionForm = false; |
| | | }); |
| | | }); |
| | | } else { |
| | | } |
| | | else { |
| | | //保存时先保存到捐献器官表 |
| | | //新增到器官管理表 |
| | | this.loading = false; |
| | |
| | | organaManageForm.transplanthospitalname = |
| | | organaManageForm.transplanthospitalno; |
| | | } |
| | | |
| | | |
| | | addDonateorgan(organaManageForm).then((response) => { |
| | | this.loading = false; |
| | | if (response.code === 200) { |
| | | //查询获取新增的器官表id |
| | | let organSearchParam = { |
| | | donorno: this.curdonorno, |
| | | donorname: this.curdonorname, |
| | | organname: this.$refs.organNameSelect.label, |
| | | organno: this.form.organnumber, |
| | | infoid: this.curInfoid, |
| | | donorno: this.curdonorno, |
| | | organno: this.form.organnumber, |
| | | //donorname: this.curdonorname, |
| | | //organname: this.$refs.organNameSelect.label, |
| | | }; |
| | | this.loading = false; |
| | | |
| | | listDonateorgan(organSearchParam).then((response2) => { |
| | | this.showDistributionForm = false; |
| | | if (response2.code == 200 && response2.rows.length == 1) { |
| | | this.form.organid = response2.rows[0].id; |
| | | this.form.residenceprovincename = this.defultAddress.sheng; |
| | | this.form.residencecityname = this.defultAddress.shi; |
| | | this.form.residencetownname = this.defultAddress.qu; |
| | | addOrganallocation(this.form).then((response) => { |
| | | //this.$modal.msgSuccess("新增成功"); |
| | | this.loading = false; |
| | | this.GetDonortedList(); |
| | | this.showDistributionForm = false; |
| | | }); |
| | | if (response2.code == 200 && response2.rows.length > 0) { |
| | | for (let i = 0; i < response2.rows.length; i++) { |
| | | console.log('1', this.form) |
| | | if (response2.rows[i].organstate == '2') { |
| | | this.form.organid = response2.rows[i].id; |
| | | this.form.residenceprovincename = this.defultAddress.sheng; |
| | | this.form.residencecityname = this.defultAddress.shi; |
| | | this.form.residencetownname = this.defultAddress.qu; |
| | | |
| | | console.log('2', this.form) |
| | | addOrganallocation(this.form).then((response) => { |
| | | |
| | | console.log('3', response) |
| | | //this.$modal.msgSuccess("新增成功"); |
| | | this.loading = false; |
| | | this.GetDonortedList(); |
| | | this.showDistributionForm = false; |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | |
| | | id: null, |
| | | transplanthospitalname: null, |
| | | transplanthospitalno: null, |
| | | organstate: null, |
| | | organstate: '2', |
| | | }); |
| | | } |
| | | } else { |
| | |
| | | if (organIndex != -1) { |
| | | let tempOrgan = this.organalTableData[organIndex]; |
| | | if (tempOrgan.organstate != 1 && tempOrgan.id > 0) { |
| | | this.$modal.msgWarning("只有未分配器官可进行删除"); |
| | | this.$modal.msgWarning("只有未分配器官可进行删除!"); |
| | | this.organalForm.organname.push(value); |
| | | return; |
| | | } |
| | | if (tempOrgan.id > 0) { |