修所属机构

This commit is contained in:
shidongli 2024-11-29 16:53:13 +08:00
parent 8321e96b68
commit 26c2a9602a

View File

@ -13,103 +13,284 @@
/>
</div>-->
<div class="head-container">
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
:filter-node-method="filterNode" ref="tree" highlight-current @node-click="handleNodeClick" />
<el-tree
:data="deptOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
highlight-current
@node-click="handleNodeClick"
/>
</div>
</el-col>
<el-col :span="19" :xs="24">
<div ref="topform" class="form">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="科室名称" prop="departmentName">
<el-input maxlength="100" v-model="queryParams.departmentName" placeholder="请输入科室名称" clearable
@keyup.enter.native="handleQuery" />
<el-input
maxlength="100"
v-model="queryParams.departmentName"
placeholder="请输入科室名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="科室代码" prop="departmentCode">
<el-input maxlength="30" v-model="queryParams.departmentCode" placeholder="请输入科室代码" clearable
@keyup.enter.native="handleQuery" />
<el-input
maxlength="30"
v-model="queryParams.departmentCode"
placeholder="请输入科室代码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</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="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div ref="mb8" class="mb8">
<el-row :gutter="10" class="">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:department:add']">新增</el-button>
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:department: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="['system:department:edit']">修改</el-button>
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:department:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
@click="handleDelete" v-hasPermi="['system:department:remove']">删除</el-button>
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:department:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport"
v-hasPermi="['system:person:importStationPerson']">导入</el-button>
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['system:person:importStationPerson']"
>导入</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:department:export']">导出</el-button>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:department:export']"
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
</div>
<div ref="table">
<el-table :max-height="maxTableHeight" v-loading="loading" :data="departmentList"
@selection-change="handleSelectionChange">
<el-table
:max-height="maxTableHeight"
v-loading="loading"
:data="departmentList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="科室名称" align="center" prop="departmentName" />
<el-table-column label="科室代码" align="center" prop="departmentCode" :show-overflow-tooltip="true" />
<el-table-column label="科室类型" align="center" prop="departmentType">
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
/>
<el-table-column
label="科室代码"
align="center"
prop="departmentCode"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室类型"
align="center"
prop="departmentType"
>
<template slot-scope="scope">
{{ scope.row.departmentType == "ADMINISTRATION_LOGISTICS" ? "行政后勤类" : "" }}
{{ scope.row.departmentType == "MEDICAL_ASSISTANCE" ? "医疗辅助类" : "" }}
{{ scope.row.departmentType == "MEDICAL_TECHNOLOGY" ? "医疗技术类" : "" }}
{{ scope.row.departmentType == "CLINICAL_SERVICES" ? "临床服务类" : "" }}
{{
scope.row.departmentType == "ADMINISTRATION_LOGISTICS"
? "行政后勤类"
: ""
}}
{{
scope.row.departmentType == "MEDICAL_ASSISTANCE"
? "医疗辅助类"
: ""
}}
{{
scope.row.departmentType == "MEDICAL_TECHNOLOGY"
? "医疗技术类"
: ""
}}
{{
scope.row.departmentType == "CLINICAL_SERVICES"
? "临床服务类"
: ""
}}
</template>
</el-table-column>
<el-table-column label="提供服务类别" align="center" prop="provideServiceCategory">
<template slot-scope="scope">{{ scope.row.provideServiceCategory == "OUTPATIENT_SERVICE" ? "门诊" : "" }}
{{ scope.row.provideServiceCategory == "EMERGENCY_TREATMENT" ? "急诊" : "" }}
{{ scope.row.provideServiceCategory == "BE_HOSPITALIZED" ? "住院" : "" }}
<el-table-column
label="提供服务类别"
align="center"
prop="provideServiceCategory"
>
<template slot-scope="scope"
>{{
scope.row.provideServiceCategory == "OUTPATIENT_SERVICE"
? "门诊"
: ""
}}
{{
scope.row.provideServiceCategory == "EMERGENCY_TREATMENT"
? "急诊"
: ""
}}
{{
scope.row.provideServiceCategory == "BE_HOSPITALIZED"
? "住院"
: ""
}}
{{ scope.row.provideServiceCategory == "WARD" ? "病区" : "" }}
{{ scope.row.provideServiceCategory == "MEDICAL_TECHNOLOGY" ? "医技" : "" }}
{{
scope.row.provideServiceCategory == "MEDICAL_TECHNOLOGY"
? "医技"
: ""
}}
{{ scope.row.provideServiceCategory == "DRUG" ? "药剂" : "" }}
{{ scope.row.provideServiceCategory == "FINANCE" ? "财务" : "" }}
{{ scope.row.provideServiceCategory == "ADMINISTRATION" ? "行政" : "" }}
{{ scope.row.provideServiceCategory == "PHARMACY" ? "药房" : "" }}
{{ scope.row.provideServiceCategory == "DRUG_STORAGE" ? "药库" : "" }}
{{ scope.row.provideServiceCategory == "PUBLIC_HEALTH" ? "公卫" : "" }}
</template></el-table-column>
<el-table-column label="科室电话" align="center" prop="departmentPhone" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
{{
scope.row.provideServiceCategory == "FINANCE" ? "财务" : ""
}}
{{
scope.row.provideServiceCategory == "ADMINISTRATION"
? "行政"
: ""
}}
{{
scope.row.provideServiceCategory == "PHARMACY" ? "药房" : ""
}}
{{
scope.row.provideServiceCategory == "DRUG_STORAGE"
? "药库"
: ""
}}
{{
scope.row.provideServiceCategory == "PUBLIC_HEALTH"
? "公卫"
: ""
}}
</template></el-table-column
>
<el-table-column
label="科室电话"
align="center"
prop="departmentPhone"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:department:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:department:remove']">删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:department:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:department:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" /> -->
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
<myPagination
v-show="total > 0"
:total="total"
:pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
</el-col>
</el-row>
<!-- 导入 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url"
:disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
:auto-upload="false" drag>
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处
@ -117,8 +298,13 @@
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
@ -127,8 +313,19 @@
</div>
</el-dialog>
<!-- 添加或修改科室信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px" :inline="true">
<el-dialog
:title="title"
:visible.sync="open"
width="1000px"
append-to-body
>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
:inline="true"
>
<!-- <el-form-item label="上级科室id" prop="parentDepartmentId">
<el-input
v-model="form.parentDepartmentId"
@ -147,19 +344,40 @@
<div class="nameinformation">基本信息</div>
<div class="content">
<el-form-item label="科室名称" prop="departmentName">
<el-input maxlength="100" v-model="form.departmentName" placeholder="请输入科室名称" />
<el-input
maxlength="100"
v-model="form.departmentName"
placeholder="请输入科室名称"
/>
</el-form-item>
<el-form-item label="科室代码" prop="departmentCode">
<el-input maxlength="30" onKeyUp="value=value.replace(/[\W]/g,'')" v-model="form.departmentCode"
placeholder="请输入科室代码" />
<el-input
maxlength="30"
onKeyUp="value=value.replace(/[\W]/g,'')"
v-model="form.departmentCode"
placeholder="请输入科室代码"
/>
</el-form-item>
<el-form-item label="科室简称" prop="departmentAbbreviation">
<el-input maxlength="100" v-model="form.departmentAbbreviation" placeholder="请输入科室简称" />
<el-input
maxlength="100"
v-model="form.departmentAbbreviation"
placeholder="请输入科室简称"
/>
</el-form-item>
<el-form-item label="科室类型" prop="departmentType">
<el-select v-model="form.departmentType" placeholder="请选择" style="width: 205px" clearable="">
<el-option v-for="item in departmentoptions" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
<el-select
v-model="form.departmentType"
placeholder="请选择"
style="width: 205px"
clearable=""
>
<el-option
v-for="item in departmentoptions"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
@ -170,26 +388,58 @@
/>
</el-form-item> -->
<el-form-item label="科室负责人姓名" prop="departmentPersonName">
<el-input maxlength="20" v-model="form.departmentPersonName" placeholder="请输入科室负责人姓名" />
<el-input
maxlength="20"
v-model="form.departmentPersonName"
placeholder="请输入科室负责人姓名"
/>
</el-form-item>
<el-form-item label="节点类型" prop="nodeType">
<el-select v-model="form.nodeType" placeholder="请选择" style="width: 205px" clearable>
<el-option v-for="item in nodeTypeoptions" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
<el-select
v-model="form.nodeType"
placeholder="请选择"
style="width: 205px"
clearable
>
<el-option
v-for="item in nodeTypeoptions"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属机构" prop="hospitalAgencyName">
<el-cascader clearable :props="{ checkStrictly: true }" :options="treeOptions" @change="change"
style="width: 205px; color: black" v-model="form.hospitalAgencyIdtwo" :show-all-levels="false"
:placeholder="form.hospitalAgencyName ? form.hospitalAgencyName : ''" ref="cascader"
:key="isResouceShow"></el-cascader>
<el-cascader
clearable
:props="{ checkStrictly: true }"
:options="treeOptions"
@change="change"
style="width: 205px; color: black"
v-model="form.hospitalAgencyIdtwo"
:show-all-levels="false"
:placeholder="
form.hospitalAgencyName ? form.hospitalAgencyName : ''
"
ref="cascader"
:key="isResouceShow"
></el-cascader>
</el-form-item>
<el-form-item label="上级科室" prop="parentDepartmentId">
<el-select v-model="form.parentDepartmentName" placeholder="请选择" style="width: 205px"
@change="changeparentDepartment" clearable>
<el-option v-for="item in optionsparentDepartment" :key="item.id" :label="item.departmentName"
:value="item.id">
<el-select
v-model="form.parentDepartmentName"
placeholder="请选择"
style="width: 205px"
@change="changeparentDepartment"
clearable
>
<el-option
v-for="item in optionsparentDepartment"
:key="item.id"
:label="item.departmentName"
:value="item.id"
>
</el-option>
</el-select>
<!-- <el-cascader
@ -212,16 +462,35 @@
<div class="nameinformation">扩展信息</div>
<div class="content">
<el-form-item label="提供服务类别" prop="provideServiceCategory">
<el-select clearable v-model="form.provideServiceCategory" placeholder="请选择" style="width: 205px">
<el-option v-for="item in options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
<el-select
clearable
v-model="form.provideServiceCategory"
placeholder="请选择"
style="width: 205px"
>
<el-option
v-for="item in options"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="细分类别" prop="subdivisionCategoryId">
<el-select v-model="form.subdivisionCategoryName" placeholder="请选择" style="width: 205px" clearable
@change="optionsubdivision">
<el-option v-for="item in optionsubdivisionCategory" :key="item.subdivisionCategoryCode"
:label="item.subdivisionCategoryName" :value="item.subdivisionCategoryCode">
<el-select
v-model="form.subdivisionCategoryName"
placeholder="请选择"
style="width: 205px"
clearable
@change="optionsubdivision"
>
<el-option
v-for="item in optionsubdivisionCategory"
:key="item.subdivisionCategoryCode"
:label="item.subdivisionCategoryName"
:value="item.subdivisionCategoryCode"
>
</el-option>
</el-select>
</el-form-item>
@ -232,9 +501,18 @@
/>
</el-form-item> -->
<el-form-item label="标准科室对照" prop="normDepartmentCompareId">
<el-select v-model="form.normDepartmentCompareId" placeholder="请选择" style="width: 205px" clearable>
<el-option v-for="item in compareList" :key="item.departmentId" :label="item.departmentName"
:value="item.departmentId">
<el-select
v-model="form.normDepartmentCompareId"
placeholder="请选择"
style="width: 205px"
clearable
>
<el-option
v-for="item in compareList"
:key="item.departmentId"
:label="item.departmentName"
:value="item.departmentId"
>
</el-option>
</el-select>
<!-- <el-input
@ -249,24 +527,48 @@
/>
</el-form-item> -->
<el-form-item label="编制床位数" prop="prepareBedsCount">
<el-input maxlength="8" onKeyUp="value=value.replace(/[\W]/g,'')" v-model="form.prepareBedsCount"
placeholder="请输入编制床位数" />
<el-input
maxlength="8"
onKeyUp="value=value.replace(/[\W]/g,'')"
v-model="form.prepareBedsCount"
placeholder="请输入编制床位数"
/>
</el-form-item>
<el-form-item label="科室电话" prop="departmentPhone">
<el-input maxlength="12" onKeyUp="value=value.replace(/[\W]/g,'')" v-model="form.departmentPhone"
placeholder="请输入科室电话" />
<el-input
maxlength="12"
onKeyUp="value=value.replace(/[\W]/g,'')"
v-model="form.departmentPhone"
placeholder="请输入科室电话"
/>
</el-form-item>
<el-form-item label="科室邮箱" prop="departmentMail">
<el-input maxlength="20" v-model="form.departmentMail" placeholder="请输入科室邮箱" />
<el-input
maxlength="20"
v-model="form.departmentMail"
placeholder="请输入科室邮箱"
/>
</el-form-item>
<el-form-item label="成立日期" prop="establishDate">
<el-date-picker clearable v-model="form.establishDate" type="date" style="width: 205px"
value-format="yyyy-MM-dd" placeholder="请选择成立日期">
<el-date-picker
clearable
v-model="form.establishDate"
type="date"
style="width: 205px"
value-format="yyyy-MM-dd"
placeholder="请选择成立日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="撤销日期" prop="revokeDate">
<el-date-picker clearable v-model="form.revokeDate" type="date" style="width: 205px"
value-format="yyyy-MM-dd" placeholder="请选择撤销日期">
<el-date-picker
clearable
v-model="form.revokeDate"
type="date"
style="width: 205px"
value-format="yyyy-MM-dd"
placeholder="请选择撤销日期"
>
</el-date-picker>
</el-form-item>
</div>
@ -425,8 +727,8 @@ export default {
id: "",
//
rules: {
nodeType:[
{ required: true, message: "节点类型不能为空", trigger: "blur" },
nodeType: [
{ required: true, message: "节点类型不能为空", trigger: "blur" },
],
hospitalAgencyName: [
{ required: true, message: "所属机构不能为空", trigger: "blur" },
@ -541,7 +843,6 @@ export default {
},
//
change(e) {
console.log(this.form.hospitalAgencyIdtwo)
if (e) {
this.form.hospitalAgencyId = e[e.length - 1];
if (this.form.hospitalAgencyId) {
@ -674,6 +975,7 @@ export default {
createTime: null,
updateBy: null,
updateTime: null,
parentDepartmentName:null,
};
this.resetForm("form");
},
@ -694,25 +996,25 @@ export default {
this.multiple = !selection.length;
},
getLeafIds(nodes) {
console.log(nodes,';node')
console.log(nodes, ';node')
this.form.hospitalAgencyIdtwo=JSON.parse(localStorage.getItem('user')).hospitalAgencyId;
this.form.hospitalAgencyIdtwo = JSON.parse(localStorage.getItem('user')).hospitalAgencyId;
let leafIds = [];
nodes.forEach(node => {
if(node.id==this.form.hospitalAgencyIdtwo){
this.form.hospitalAgencyName=node.label;
if (node.id == this.form.hospitalAgencyIdtwo) {
this.form.hospitalAgencyName = node.label;
}else{
if (node.children) {
// getLeafIds
leafIds = leafIds.concat(this.getLeafIds(node.children));
} else {
// id
leafIds.push(node.id);
}
if (node.children) {
// getLeafIds
leafIds = leafIds.concat(this.getLeafIds(node.children));
} else {
// id
leafIds.push(node.id);
}
}
@ -728,8 +1030,8 @@ export default {
this.reset();
this.open = true;
this.title = "添加科室信息";
if(localStorage.getItem('roleKey') !='admin'){
this.getLeafIds(this.treeOptions)
if (localStorage.getItem('roleKey') != 'admin') {
this.getLeafIds(this.treeOptions)
}
@ -764,7 +1066,10 @@ export default {
this.getList();
});
} else {
this.form.hospitalAgencyId=this.form.hospitalAgencyIdtwo
if (!this.form.hospitalAgencyId) {
this.form.hospitalAgencyId = this.form.hospitalAgencyIdtwo
}
addDepartment(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;