<template>
|
<div class="app-container">
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="捐献者" prop="name">
|
<el-input v-model="queryParams.name" placeholder="请输入捐献者" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="器官名称" prop="organno">
|
<el-select v-model="queryParams.organno" placeholder="请选择器官类别名称" clearable size="small">
|
<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="6">
|
<el-form-item label="移植机构" prop="gainhospitalname">
|
<org-selecter ref="tranHosSelect" :org-type="'4'" v-model="queryParams.gainhospitalname" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="医疗机构" prop="医疗机构">
|
<org-selecter ref="orgSelecter" :org-type="'3'" v-model="queryParams.treatmenthospitalno" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="9">
|
<el-form-item label="分配时间" prop="organgettime">
|
<el-date-picker style="width: 100%" v-model="queryParams.organgettime" type="monthrange" range-separator="至"
|
start-placeholder="开始月份" end-placeholder="结束月份" value-format="yyyy-MM-dd">
|
</el-date-picker>
|
<!-- <el-date-picker clearable size="small" v-model="queryParams.organgettime" type="date"
|
value-format="yyyy-MM-dd" placeholder="选择器官获取时间">
|
</el-date-picker> -->
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item>
|
<el-button type="primary" icon="el-icon-search" style="margin-right: 20px" size="mini" @click="handleQuery">
|
搜索</el-button>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<!-- <el-row>
|
<el-col :span="6">
|
<el-form-item label="组长" prop="zuzhang">
|
<el-input
|
v-model="queryParams.zuzhang"
|
/>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="6">
|
<el-form-item label="移植时间" prop="transplanttime">
|
<el-date-picker
|
clearable
|
size="small"
|
v-model="queryParams.transplanttime"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="请选择移植时间"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row> -->
|
</el-form>
|
|
<el-row :gutter="10" class="mb8">
|
<el-col :span="1.5">
|
<el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading"
|
@click="handleExport">导出</el-button>
|
</el-col>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
</el-row>
|
|
|
<!--<el-table v-loading="loading" :data="donateorganList" @selection-change="handleSelectionChange" label-width="96px">-->
|
<el-table border v-loading="loading" :data="newdonateorganList" @selection-change="handleSelectionChange"
|
highlight-current-row style="width: 100%">
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
<!-- <el-table-column
|
label="捐献编号"
|
width="160"
|
align="center"
|
prop="donorno"
|
/> -->
|
<el-table-column label="捐献者" width="100" align="center" prop="name" />
|
<el-table-column label="医疗机构" width="100" align="center" prop="treatmenthospitalname" />
|
<el-table-column label="重新分配" width="100" align="center" prop="organstate">
|
<!--1:是 0:否 -->
|
<template slot-scope="scope">
|
<dict-tag :options="dict.type.sys_organstate" :value="scope.row.organstate" />
|
</template>
|
</el-table-column>
|
<el-table-column label="器官名称" align="center" prop="organname" width="100" />
|
<el-table-column label="系统编号" align="center" prop="ageunit" width="100" />
|
<el-table-column label="受体姓氏" align="center" prop="name" width="100" />
|
<el-table-column label="证件类型" align="center" prop="age" width="100" />
|
<el-table-column label="证件号" align="center" prop="idcardno" width="100" />
|
<el-table-column label="年龄" align="center" prop="age" width="100" />
|
<el-table-column label="性别" align="center" prop="sex" width="100">
|
<template slot-scope="scope">
|
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
|
</template>
|
</el-table-column>
|
<el-table-column label="移植医院" align="center" prop="transplanthospitalname" />
|
<el-table-column label="接收时间" width="160" align="center" prop="applicanttime">
|
<template slot-scope="scope">
|
<span>{{ parseTime(scope.row.applicanttime, "{y}-{m}-{d}") }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="经办人" width="120" align="center" prop="create_by" />
|
<el-table-column label="录入时间" width="160" align="center" prop="create_time">
|
<template slot-scope="scope">
|
<span>{{ parseTime(scope.row.create_time, "{y}-{m}-{d}") }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" >
|
<template slot-scope="scope">
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleAdd(scope.row)"
|
v-hasPermi="['project:donateorgan:edit']">新增</el-button>
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleEdit(scope.row)"
|
v-hasPermi="['project:donateorgan:remove']">修改</el-button>
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
v-hasPermi="['project:donateorgan:remove']">删除</el-button>
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleRedo(scope.row)"
|
v-hasPermi="['project:donateorgan:remove']">重新分配</el-button>
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleSave(scope.row)"
|
v-hasPermi="['project:donateorgan:remove']">保存</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
@pagination="getList" />
|
|
<!-- 添加或修改捐献器官管理对话框 -->
|
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="800px" append-to-body>
|
<!-- :rules="rules" -->
|
<el-form ref="form" :model="form" label-width="130px" :rules="rules">
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="捐献编号" prop="donorno">
|
<el-input v-model="form.donorno" placeholder="" disabled />
|
</el-form-item>
|
</el-col>
|
<!-- <el-col :span="24"> -->
|
<!-- </el-col> -->
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="器官" prop="organname">
|
<el-select v-model="form.organname" placeholder="请选择器官类别名称" clearable size="medium" disabled>
|
<el-option v-for="dict in dict.type.sys_Organ" :key="dict.value" :label="dict.label"
|
:value="dict.label" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="器官状态" prop="organstate">
|
<el-select v-model="form.organstate" placeholder="1:预登记2:已获取3:分配登记4:分配审核" clearable size="medium" disabled>
|
<el-option v-for="dict in dict.type.sys_organstate" :key="dict.value" :label="dict.label"
|
:value="dict.value" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<!-- 详见字典sys_Organ -->
|
<!-- <el-form-item label="器官类别编号" prop="organno">
|
<el-select v-model="queryParams.organno" placeholder="请选择器官类别编号">
|
<el-option label="请选择字典生成" value="" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="器官类别名称" prop="organname">
|
<el-select v-model="queryParams.organname" placeholder="请选择器官类别名称">
|
<el-option label="请选择字典生成" value="" />
|
</el-select>
|
</el-form-item> -->
|
<!-- <el-form-item label="器官编号" prop="organnumber">
|
<el-input v-model="form.organnumber" placeholder="请输入器官编号" style="width:220px"/>
|
</el-form-item> -->
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="获取时间" prop="organgettime">
|
<el-date-picker clearable size="medium" v-model="form.organgettime" type="date" disabled
|
value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择器官获取时间">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="获取医生" prop="organgetdoct">
|
<el-input disabled v-model="form.organgetdoct" placeholder="请输入医生姓名" style="width: 220px" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="获取机构" prop="gainhospitalname">
|
<el-select v-model="form.gainhospitalname" placeholder="请选择获取机构" clearable size="medium" disabled>
|
<el-option v-for="dict in dict.type.sys_OrganizationType" :key="dict.value" :label="dict.label"
|
:value="dict.label" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="移植机构" prop="transplanthospitalname">
|
<el-select v-model="form.transplanthospitalname" placeholder="器官移植机构名称" disabled>
|
<el-option label="请选择字典生成" value="" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<!-- <el-form-item label="器官获取机构编号" prop="gainhospitalno">
|
<el-select v-model="queryParams.gainhospitalno" placeholder="器官获取机构编号">
|
<el-option label="请选择字典生成" value="" />
|
</el-select>
|
</el-form-item> -->
|
|
<!-- <el-form-item label="器官移植机构编号" prop="transplanthospitalno">
|
<el-select v-model="queryParams.transplanthospitalno" placeholder="器官移植机构编号">
|
<el-option label="请选择字典生成" value="" />
|
</el-select>
|
</el-form-item> -->
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="移植医生" prop="transplantdoct">
|
<el-input v-model="form.transplantdoct" placeholder="请输入移植医生" style="width: 220px" disabled />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="移植时间" prop="transplanttime">
|
<el-date-picker clearable size="medium" v-model="form.transplanttime" type="date"
|
value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择移植时间" disabled>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="获取前活检" prop="isbiopsybefore" align="left">
|
<el-radio-group v-model="form.isbiopsybefore">
|
<el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="dict.value">{{ dict.label }}
|
</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="12">
|
<el-form-item label="获取后活检" prop="isbiopsyafter" align="left">
|
<el-radio-group v-model="form.isbiopsyafter">
|
<el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="dict.value">{{ dict.label }}
|
</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="属于边缘器官" prop="ismarginalorgan" align="left">
|
<el-radio-group v-model="form.ismarginalorgan">
|
<el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="dict.value">{{ dict.label }}
|
</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="病原菌阳性" prop="ispathogenpositive" align="left">
|
<el-radio-group v-model="form.ispathogenpositive">
|
<el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="dict.value">{{ dict.label }}
|
</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="原发性无功能" prop="ispnf" align="left">
|
<el-radio-group v-model="form.ispnf">
|
<el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="dict.value">{{ dict.label }}
|
</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="功能延迟性恢复" prop="isdgf" align="left">
|
<el-radio-group v-model="form.isdgf">
|
<el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="dict.value">{{ dict.label }}
|
</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="submitForm">保 存</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import OrgSelecter from "@/views/project/components/orgselect";
|
|
import {
|
listDonateorgan,
|
listnewDonateorgan,
|
getDonateorgan,
|
delDonateorgan,
|
addDonateorgan,
|
updateDonateorgan,
|
exportDonateorgan,
|
} from "@/api/project/donateorgan";
|
import {
|
listDonatebaseinfo,
|
|
// exportProvincemessage,
|
} from "@/api/project/donatebaseinfo";
|
export default {
|
components: {
|
OrgSelecter,
|
},
|
name: "Donateorgan",
|
dicts: [
|
"sys_OrganizationType",
|
"sys_Organ",
|
"sys_user_sex",
|
"sys_organstate",
|
"sys_DonationStatus",
|
"sys_0_1",
|
],
|
|
data() {
|
return {
|
// 遮罩层
|
loading: true,
|
// 导出遮罩层
|
exportLoading: false,
|
// 选中数组
|
ids: [],
|
// 非单个禁用
|
single: true,
|
// 非多个禁用
|
multiple: true,
|
// 显示搜索条件
|
showSearch: true,
|
// 总条数
|
total: 0,
|
// 捐献器官管理表格数据
|
donateorganList: [],
|
newdonateorganList: [],
|
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" },
|
],
|
// 弹出层标题
|
title: "",
|
// 是否显示弹出层
|
open: false,
|
reportlist: [],
|
// 查询参数
|
queryParams: {
|
pageNum: 1,
|
pageSize: 10,
|
infoid: null,
|
donorno: null,
|
organno: null,
|
organname: null,
|
organstate: null,
|
organnumber: null,
|
organgettime: null,
|
organgetdoct: null,
|
gainhospitalno: null,
|
gainhospitalname: null,
|
transplanthospitalno: null,
|
transplanthospitalname: null,
|
transplantdoct: null,
|
transplanttime: null,
|
reporterName: ""
|
},
|
// 表单参数
|
form: {
|
reporterName: ""
|
},
|
rules: {
|
isbiopsybefore: [
|
{ required: true, message: "请选择获取前活检", trigger: "blur" },
|
],
|
isbiopsyafter: [
|
{ required: true, message: "请选择获取后活检", trigger: "propname" },
|
],
|
ismarginalorgan: [
|
{ required: true, message: "请选择属于边缘器官", trigger: "blur" },
|
],
|
ispathogenpositive: [
|
{ required: true, message: "请选择病原菌阳性", trigger: "blur" },
|
],
|
ispnf: [
|
{ required: true, message: "请选择原发性无功能", trigger: "blur" },
|
],
|
isdgf: [
|
{ required: true, message: "请选择功能延迟性恢复", trigger: "blur" },
|
],
|
},
|
};
|
},
|
created() {
|
this.getList();
|
this.LoadReportList();
|
},
|
|
methods: {
|
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;
|
}
|
});
|
},
|
resetArr(Arr) {
|
var hash = {};
|
Arr = Arr.reduce(function (arr, current) {
|
hash[current.reporterno]
|
? ""
|
: (hash[current.reporterno] = true && arr.push(current));
|
return arr;
|
}, []);
|
return Arr;
|
},
|
/** 查询捐献器官管理列表 */
|
getList() {
|
this.loading = true;
|
this.queryParams.params = {};
|
const queryParams = { ...this.queryParams }
|
|
if (queryParams.organgettime && typeof queryParams.organgettime == 'object') {
|
queryParams.startorgangettime = queryParams.organgettime[0] + ' 00:00:00'
|
queryParams.endorgangettime = queryParams.organgettime[1] + " 23:59:59"
|
queryParams.organgettime = null
|
}
|
if (queryParams.transplanttime && typeof queryParams.transplanttime == 'object') {
|
queryParams.starttransplanttime = queryParams.transplanttime[0] + ' 00:00:00'
|
queryParams.endtransplanttime = queryParams.transplanttime[1] + " 23:59:59"
|
queryParams.transplanttime = null
|
}
|
console.log("搜索查询啊", this.queryParams);
|
listnewDonateorgan(queryParams).then((response) => {
|
console.log("器官数据:", response);
|
this.newdonateorganList = response.rows;
|
this.total = response.total;
|
this.loading = false;
|
});
|
},
|
cancel() {
|
this.open = false;
|
this.reset();
|
},
|
// 表单重置
|
reset() {
|
this.form = {
|
id: null,
|
infoid: null,
|
donorno: null,
|
organno: null,
|
organname: null,
|
organstate: null,
|
organnumber: null,
|
organgettime: null,
|
organgetdoct: null,
|
gainhospitalno: null,
|
gainhospitalname: null,
|
transplanthospitalno: null,
|
transplanthospitalname: null,
|
transplantdoct: null,
|
transplanttime: null,
|
delFlag: null,
|
createBy: null,
|
createTime: null,
|
updateBy: null,
|
updateTime: null,
|
isbiopsybefore: 0,
|
isbiopsyafter: 0,
|
ismarginalorgan: 0,
|
ispathogenpositive: 0,
|
ispnf: 0,
|
isdgf: 0,
|
reporterName: ""
|
};
|
this.resetForm("form");
|
},
|
/** 搜索按钮操作 */
|
handleQuery() {
|
this.queryParams.pageNum = 1;
|
this.getList();
|
},
|
/** 重置按钮操作 */
|
resetQuery() {
|
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.reset();
|
this.open = true;
|
this.title = "添加捐献器官管理";
|
},
|
/** 修改按钮操作 */
|
handleEdit() {
|
this.reset();
|
this.open = true;
|
this.title = "添加捐献器官管理";
|
},
|
/** 删除按钮操作 */
|
handleDelete() {
|
this.reset();
|
this.open = true;
|
this.title = "添加捐献器官管理";
|
},
|
/** 重新分配按钮操作 */
|
handleRedo() {
|
this.reset();
|
this.open = true;
|
this.title = "添加捐献器官管理";
|
},
|
/** 保存按钮操作 */
|
handleSave() {
|
this.reset();
|
this.open = true;
|
this.title = "添加捐献器官管理";
|
},
|
/** 修改按钮操作 */
|
handleUpdate(row) {
|
this.reset();
|
console.log("修改当前的row", row);
|
const id = row.doid || this.ids;
|
getDonateorgan(id).then((response) => {
|
console.log("当前数据:", response);
|
this.form = response.data;
|
this.form.organstate = this.form.organstate + "";
|
this.open = true;
|
this.title = "修改捐献器官管理";
|
});
|
},
|
|
|
/** 删除按钮操作 */
|
handleDelete(row) {
|
const ids = row.id || this.ids;
|
this.$modal
|
.confirm('是否确认删除捐献器官管理编号为"' + ids + '"的数据项?')
|
.then(function () {
|
return delDonateorgan(ids);
|
})
|
.then(() => {
|
this.getList();
|
this.$modal.msgSuccess("删除成功");
|
})
|
.catch(() => { });
|
},
|
/** 导出按钮操作 */
|
handleExport() {
|
const queryParams = this.queryParams;
|
this.$modal
|
.confirm("是否确认导出所有捐献器官管理数据项?")
|
.then(() => {
|
this.exportLoading = true;
|
return exportDonateorgan(queryParams);
|
})
|
.then((response) => {
|
this.$download.name(response.msg);
|
this.exportLoading = false;
|
})
|
.catch(() => { });
|
},
|
|
/** 提交按钮 */
|
submitForm() {
|
this.$refs["form"].validate((valid) => {
|
if (valid) {
|
if (this.form.id != null) {
|
console.log("更新的form内容", this.form);
|
updateDonateorgan(this.form).then((response) => {
|
this.$modal.msgSuccess("修改成功");
|
this.open = false;
|
this.getList();
|
});
|
} else {
|
addDonateorgan(this.form).then((response) => {
|
this.$modal.msgSuccess("新增成功");
|
this.open = false;
|
this.getList();
|
});
|
}
|
}
|
});
|
},
|
|
},
|
};
|
</script>
|