postdischarge-ui/src/views/system/specialDiseaseRoute/index.vue
2024-04-03 16:38:58 +08:00

423 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<el-row :gutter="20">
<el-col :span="5">
<div class="left" ref="box">
<div class="name">科室名称</div>
<div style="padding: 10px 0;">
<el-input v-model="departmentName" placeholder="请输入科室名称" clearable @keyup.enter.native="handleQuery" />
</div>
<div class="listitem" v-for="(item, index) in DepartmentoList" :key="index" @click="clickDepartmenitem(item)">
<div :class="queryParams.departmentId == item.id ? 'allactive' : 'all'">
{{ item.departmentName }}
</div>
<span class="count">{{ item.countNum }}</span>
</div>
</div>
</el-col>
<el-col :span="19">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<!-- <el-form-item label="所属科室id" prop="departmentId">
<el-input v-model="queryParams.departmentId" placeholder="请输入所属科室id" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="所属科室名称" prop="departmentName">
<el-input v-model="queryParams.departmentName" placeholder="请输入所属科室名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="病种id" prop="diseaseTypeId">
<el-input v-model="queryParams.diseaseTypeId" placeholder="请输入病种id" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="病种名称" prop="diseaseTypeName">
<el-input v-model="queryParams.diseaseTypeName" placeholder="请输入病种名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="路径名称" prop="routeName">
<el-input v-model="queryParams.routeName" placeholder="请输入路径名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="路径编码" prop="routeCode">
<el-input v-model="queryParams.routeCode" placeholder="请输入路径编码" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="版本号" prop="version">
<el-input v-model="queryParams.version" placeholder="请输入版本号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>-->
<el-form-item label="发布状态" prop="releaseStatus">
<el-select v-model="queryParams.releaseStatus" placeholder="请选择">
<el-option label="全部" value="ALL" />
<el-option label="已发布" value="PUBLISHED" />
<el-option label="未发布" value="UNPUBLISHED" />
</el-select>
</el-form-item>
<!-- 全部ALL科室管理路径DEPARTMENT_MANAGE_PATH专病管理路径SPECIAL_DIEASE_MANAGE_PATH -->
<el-form-item label="路径分类" prop="routeClassify">
<el-select v-model="queryParams.routeClassify" placeholder="请选择">
<el-option label="全部" value="ALL" />
<el-option label="科室管理路径" value="DEPARTMENT_MANAGE_PATH" />
<el-option label="专病管理路径" value="SPECIAL_DIEASE_MANAGE_PATH" />
</el-select>
</el-form-item>
<!-- <el-form-item
label="适用范围在院IN_THE_HOSPITAL出院DISCHARGE门诊OUTPATIENT_SERVICE门诊+出院OUTPATIENT_SERVICE_DISCHARGE"
prop="suitRange">
<el-input v-model="queryParams.suitRange"
placeholder="请输入适用范围在院IN_THE_HOSPITAL出院DISCHARGE门诊OUTPATIENT_SERVICE门诊+出院OUTPATIENT_SERVICE_DISCHARGE"
clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="排序" prop="routeSort">
<el-input v-model="queryParams.routeSort" placeholder="请输入排序" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="备注信息" prop="routeRemark">
<el-input v-model="queryParams.routeRemark" 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-form-item>
</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">新增主路径</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:specialDiseaseRoute: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:specialDiseaseRoute:remove']">删除</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:specialDiseaseRoute:export']">导出</el-button>
</el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="specialDiseaseRouteList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="路径名称" align="center" prop="routeName" />
<el-table-column label="版本号" align="center" prop="version" />
<el-table-column label="路径分类" align="center" prop="routeClassify">
<template slot-scope="scope">
{{ scope.row.routeClassify == 'DEPARTMENT_MANAGE_PATH' ? '科室管理路径' : '' }}
{{ scope.row.routeClassify == 'SPECIAL_DIEASE_MANAGE_PATH' ? '专病管理路径' : '' }}
</template>
</el-table-column>
<el-table-column label="发布状态" align="center" prop="releaseStatus">
<template slot-scope="scope">
{{ scope.row.releaseStatus == 'PUBLISHED' ? '已发布' : '未发布' }}
<!-- {{ scope.row.releaseStatus == 'UNPUBLISHED' ? '未发布' : '' }} -->
</template>
</el-table-column>
<el-table-column label="更新时间" align="center" prop="updateTime" />
<el-table-column label="病种名称" align="center" prop="diseaseTypeName" />
<!-- <el-table-column
label="适用范围在院IN_THE_HOSPITAL出院DISCHARGE门诊OUTPATIENT_SERVICE门诊+出院OUTPATIENT_SERVICE_DISCHARGE"
align="center" prop="suitRange" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text">复制</el-button>
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
v-hasPermi="['system:specialDiseaseRoute:edit']">编辑</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:specialDiseaseRoute: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-col>
</el-row>
<!-- 添加或修改专病路径信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属科室id" prop="departmentId">
<el-input v-model="form.departmentId" placeholder="请输入所属科室id" />
</el-form-item>
<el-form-item label="所属科室名称" prop="departmentName">
<el-input v-model="form.departmentName" placeholder="请输入所属科室名称" />
</el-form-item>
<el-form-item label="病种id" prop="diseaseTypeId">
<el-input v-model="form.diseaseTypeId" placeholder="请输入病种id" />
</el-form-item>
<el-form-item label="病种名称" prop="diseaseTypeName">
<el-input v-model="form.diseaseTypeName" placeholder="请输入病种名称" />
</el-form-item>
<el-form-item label="路径名称" prop="routeName">
<el-input v-model="form.routeName" placeholder="请输入路径名称" />
</el-form-item>
<el-form-item label="路径编码" prop="routeCode">
<el-input v-model="form.routeCode" placeholder="请输入路径编码" />
</el-form-item>
<el-form-item label="版本号" prop="version">
<el-input v-model="form.version" placeholder="请输入版本号" />
</el-form-item>
<el-form-item label="路径分类全部ALL科室管理路径DEPARTMENT_MANAGE_PATH专病管理路径SPECIAL_DIEASE_MANAGE_PATH"
prop="routeClassify">
<el-input v-model="form.routeClassify"
placeholder="请输入路径分类全部ALL科室管理路径DEPARTMENT_MANAGE_PATH专病管理路径SPECIAL_DIEASE_MANAGE_PATH" />
</el-form-item>
<el-form-item
label="适用范围在院IN_THE_HOSPITAL出院DISCHARGE门诊OUTPATIENT_SERVICE门诊+出院OUTPATIENT_SERVICE_DISCHARGE"
prop="suitRange">
<el-input v-model="form.suitRange"
placeholder="请输入适用范围在院IN_THE_HOSPITAL出院DISCHARGE门诊OUTPATIENT_SERVICE门诊+出院OUTPATIENT_SERVICE_DISCHARGE" />
</el-form-item>
<el-form-item label="排序" prop="routeSort">
<el-input v-model="form.routeSort" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="备注信息" prop="routeRemark">
<el-input v-model="form.routeRemark" placeholder="请输入备注信息" />
</el-form-item>
</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 {
listSpecialDiseaseRoute, getSpecialDiseaseRoute, delSpecialDiseaseRoute, addSpecialDiseaseRoute, updateSpecialDiseaseRoute,
selectDiseaseCount
} from "@/api/system/specialDiseaseRoute";
export default {
name: "SpecialDiseaseRoute",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 专病路径信息表格数据
specialDiseaseRouteList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
departmentId: null,
departmentName: null,
diseaseTypeId: null,
diseaseTypeName: null,
routeName: null,
routeCode: null,
version: null,
routeClassify: null,
releaseStatus: null,
suitRange: null,
routeSort: null,
routeRemark: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
departmentId: [
{ required: true, message: "所属科室id不能为空", trigger: "blur" }
],
},
DepartmentoList: [],
departmentName: '',
};
},
created() {
this.getList();
this.infolists();
},
watch: {
departmentName(val) {
this.infolists();
},
},
methods: {
clickDepartmenitem(item) {
this.loading = true;
this.queryParams.departmentId = item.id;
this.getList();
},
//科室
infolists() {
selectDiseaseCount(this.departmentName).then((res) => {
this.DepartmentoList = res.data;
});
},
/** 查询专病路径信息列表 */
getList() {
this.loading = true;
listSpecialDiseaseRoute(this.queryParams).then(response => {
this.specialDiseaseRouteList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
departmentId: null,
departmentName: null,
diseaseTypeId: null,
diseaseTypeName: null,
routeName: null,
routeCode: null,
version: null,
routeClassify: null,
releaseStatus: "0",
suitRange: null,
routeSort: null,
routeRemark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
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 = "添加专病路径信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
// this.reset();
// const id = row.id || this.ids
// getSpecialDiseaseRoute(id).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "修改专病路径信息";
// });
// this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.push({
path: "/specialdisease/editorialSpecialization",
query: {
id: row.id,
diseaseTypeName: row.diseaseTypeName,
version: row.version,
routeName: row.routeName,
}
});
// })
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSpecialDiseaseRoute(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSpecialDiseaseRoute(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
//删除主路径
this.$confirm('此操作会删除主路径, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(() => {
specialDiseaseRoutedel(row.id).then(res => {
this.getList();
this.$modal.msgSuccess("删除主路径成功");
})
})
},
/** 导出按钮操作 */
handleExport() {
this.download('system/specialDiseaseRoute/export', {
...this.queryParams
}, `specialDiseaseRoute_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss">
.left {
height: 500px;
overflow: auto;
.name {
font-weight: 700;
margin-bottom: 10px;
}
.listitem {
width: 100%;
height: 50px;
border-bottom: 1px solid #dcdfe6;
position: relative;
.count {
display: inline-block;
position: absolute;
left: 210px;
color: #a4a6aa;
top: 50%;
transform: translateY(-50%);
font-size: 13px;
}
.all {
height: 50px;
line-height: 50px;
padding-left: 13px;
}
.allactive {
background: #e8f4ff;
height: 50px;
line-height: 50px;
padding-left: 13px;
border-left: 3px solid #4d9de7;
}
}
}
</style>