|
@@ -1,527 +0,0 @@
|
|
|
-<template>
|
|
|
- <div>
|
|
|
- <crumbs title="电子病历方案配置" style="min-width: 980px">
|
|
|
- <el-form :inline="true" class="demo-form-inline">
|
|
|
- <el-form-item label="所属医院:" class="selectMedicine">
|
|
|
- <el-select size="mini" v-model="filter.hospitalId" placeholder="请选择" clearable>
|
|
|
- <el-option
|
|
|
- v-for="item in HospitalInfoList"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- :key="item.id"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="方案名称:">
|
|
|
- <el-input size="mini" v-model="filter.planName" placeholder="请输入" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button size="mini" @click="filterDatas">检索</el-button>
|
|
|
- <el-button size="mini" type="warning" @click="addRelation">添加方案</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </crumbs>
|
|
|
- <div class="contents">
|
|
|
- <el-table :data="list" border style="width: 100%" ref="">
|
|
|
- <el-table-column :resizable="false" type="index" :index="indexMethod" label="编号" width="60"></el-table-column>
|
|
|
- <el-table-column :resizable="false" prop="hospitalId" label="医院ID" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column :resizable="false" prop="hospitalName" label="医院名称" show-overflow-tooltip></el-table-column>
|
|
|
- <!-- <el-table-column :resizable="false" prop="hospitalId" label="医院编码"></el-table-column> -->
|
|
|
- <el-table-column :resizable="false" prop="planName" label="方案名称" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column :resizable="false" prop="planCode" label="方案编码" width="180"></el-table-column>
|
|
|
- <el-table-column :resizable="false" prop="planDetail" label="模块配置" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="gmtCreate"
|
|
|
- label="创建时间"
|
|
|
- show-overflow-tooltip
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="planStatus"
|
|
|
- label="状态"
|
|
|
- show-overflow-tooltip
|
|
|
- width="180"
|
|
|
- >
|
|
|
- <template slot-scope="scope">{{scope.row.planStatus == 1 ? '已启用': '已禁用'}}</template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column :resizable="false" prop="operate" label="操作">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- @click="modifyRelation(scope.row)"
|
|
|
- type="text"
|
|
|
- size="small"
|
|
|
- v-if="scope.row.planStatus === 1"
|
|
|
- class="disable"
|
|
|
- >修改</el-button>
|
|
|
- <el-button plain type="text" size="small" v-else disabled>修改</el-button>
|
|
|
- <span style="margin:0 3px;">|</span>
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- size="small"
|
|
|
- :codeArr="codeArr"
|
|
|
- :class="codeArr[0].includes(scope.row.planCode) ? 'active-t': 'active'"
|
|
|
- :disabled = 'codeArr[0].includes(scope.row.planCode)'
|
|
|
- @click="enableOrAble(scope.row,0)"
|
|
|
- v-if="scope.row.planStatus === 1"
|
|
|
- >禁用</el-button>
|
|
|
-
|
|
|
- <el-button type="text" size="small" @click="enableOrAble(scope.row,1)" v-else>启用</el-button>
|
|
|
- <span style="margin:0 3px;">|</span>
|
|
|
- <el-button
|
|
|
- v-if="scope.row.planStatus !== 1"
|
|
|
- @click="showDelDialog(scope.row.id,scope.row.planStatus,scope.row.planName,scope.row)"
|
|
|
- class="delete"
|
|
|
- type="text"
|
|
|
- size="small"
|
|
|
- >删除</el-button>
|
|
|
- <el-button plain type="text" size="small" v-else disabled>删除</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="pagination">
|
|
|
- <el-pagination
|
|
|
- :current-page.sync="currentPage"
|
|
|
- @current-change="currentChange"
|
|
|
- background
|
|
|
- :page-size="pageSize"
|
|
|
- :page-sizes="pageSizeArr"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- :layout="pageLayout"
|
|
|
- :total="total"
|
|
|
- ></el-pagination>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import api from "@api/cdss.js";
|
|
|
-import config from "@api/config.js";
|
|
|
-import utils from "@api/utils.js";
|
|
|
-
|
|
|
-export default {
|
|
|
- name: "Plan",
|
|
|
- data: function() {
|
|
|
- return {
|
|
|
- list: [],
|
|
|
- searched: false,
|
|
|
- filter: {
|
|
|
- planName: "", //标准诊断名称
|
|
|
- hospitalId: ""
|
|
|
- },
|
|
|
- currentPage: 1,
|
|
|
- pageSize: config.pageSize,
|
|
|
- pageSizeArr: config.pageSizeArr,
|
|
|
- pageLayout: config.pageLayout,
|
|
|
- total: 0,
|
|
|
- hospitalId: "",
|
|
|
- HospitalInfoList: [],
|
|
|
- disablelist: [],
|
|
|
- codeArr: ['plan_default']
|
|
|
- };
|
|
|
- },
|
|
|
- created(row) {
|
|
|
- const that = this;
|
|
|
- //返回时避免参数未赋值就获取列表
|
|
|
- setTimeout(function() {
|
|
|
- that.getDisabel()
|
|
|
- that.getDataList();
|
|
|
- that._getHospitalInfo();
|
|
|
- });
|
|
|
- // 非首页 编辑页返回 设置 this.currentPage
|
|
|
- if (Object.keys(this.$route.params).length !== 0) {
|
|
|
- this.currentPage = this.$route.params.currentPage;
|
|
|
- }
|
|
|
- },
|
|
|
- watch: {
|
|
|
- filter: {
|
|
|
- handler: function() {
|
|
|
- this.searched = false;
|
|
|
- },
|
|
|
- deep: true
|
|
|
- }
|
|
|
- },
|
|
|
- beforeRouteEnter(to, from, next) {
|
|
|
- next(vm => {
|
|
|
- //const pm = to.param;
|
|
|
- Object.assign(vm, to.params);
|
|
|
- vm.inCurrentPage = to.params.currentPage;
|
|
|
- });
|
|
|
- },
|
|
|
- methods: {
|
|
|
- handleSizeChange(val) {
|
|
|
- this.pageSize = val;
|
|
|
- this.currentPage = utils.getCurrentPage(
|
|
|
- this.currentPage,
|
|
|
- this.total,
|
|
|
- this.pageSize
|
|
|
- );
|
|
|
- this.getDataList();
|
|
|
- },
|
|
|
-
|
|
|
- // 获取医院下拉列表
|
|
|
- _getHospitalInfo() {
|
|
|
- api.getHospitalInfo().then(res => {
|
|
|
- if (res.data.code === "0") {
|
|
|
- this.HospitalInfoList = res.data.data;
|
|
|
- console.log("医院列表>>", this.HospitalInfoList);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 使plan_default禁用
|
|
|
- async getDisabel(row){
|
|
|
- const res = await api.getListBack()
|
|
|
- if(res.data.code === '0'){
|
|
|
- this.disablelist = res.data.data[60]
|
|
|
- console.log('禁用2', this.codeArr);
|
|
|
- this.codeArr = this.disablelist.map(item => {
|
|
|
- return item.val
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
- // 获取列表数据
|
|
|
- async getDataList(isTurnPage) {
|
|
|
-
|
|
|
- let params = await this.getFilterItems(isTurnPage);
|
|
|
- // return;
|
|
|
- this.searched = true;
|
|
|
- const loading = this.$loading({
|
|
|
- lock: true,
|
|
|
- text: "Loading",
|
|
|
- spinner: "el-icon-loading",
|
|
|
- background: "rgba(0, 0, 0, 0.7)"
|
|
|
- });
|
|
|
- api.getPlanInfoPages(params).then(res => {
|
|
|
- console.log("列表数据", res);
|
|
|
- loading.close();
|
|
|
- if (res.data.code === "0") {
|
|
|
- this.list = res.data.data && res.data.data.records;
|
|
|
- console.log("hello>>", this.list);
|
|
|
- }
|
|
|
- this.total = res.data.data && res.data.data.total;
|
|
|
- if (this.inCurrentPage !== undefined) {
|
|
|
- this.currentPage = this.inCurrentPage;
|
|
|
- this.inCurrentPage = undefined;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 返回字典信息数据
|
|
|
-
|
|
|
- // 处理列表请求数据参数
|
|
|
- async getFilterItems(isTurnPage) {
|
|
|
- //翻页时筛选条件没点确定则清空
|
|
|
- if (isTurnPage && !this.searched) {
|
|
|
- this.clearFilter();
|
|
|
- }
|
|
|
- // let planName = this.filter.planName.trim();
|
|
|
- const param = {
|
|
|
- current: this.inCurrentPage || this.currentPage,
|
|
|
- size: this.pageSize,
|
|
|
- planName: this.filter.planName.trim(),
|
|
|
- hospitalId: this.filter.hospitalId
|
|
|
- };
|
|
|
- return param;
|
|
|
- },
|
|
|
-
|
|
|
- escapeRegExp(text) {
|
|
|
- return text.replace(/[-[\]{}()*+?._,\\^$|#\s]/g, "\\$&");
|
|
|
- },
|
|
|
-
|
|
|
- filterDatas() {
|
|
|
- this.currentPage = 1;
|
|
|
- this.getDataList();
|
|
|
- },
|
|
|
- addRelation() {
|
|
|
- const pam = this.searched
|
|
|
- ? {
|
|
|
- currentPage: this.currentPage,
|
|
|
- pageSize: this.pageSize,
|
|
|
- filter: this.filter
|
|
|
- }
|
|
|
- : { currentPage: this.currentPage, pageSize: this.pageSize };
|
|
|
- this.$router.push({ name: "AddPlan", params: pam });
|
|
|
- },
|
|
|
- // 修改诊断关联-跳转至编辑页面
|
|
|
- modifyRelation(row) {
|
|
|
- const item = Object.assign({}, row);
|
|
|
- const pam = this.searched
|
|
|
- ? {
|
|
|
- currentPage: this.currentPage,
|
|
|
- pageSize: this.pageSize,
|
|
|
- filter: this.filter
|
|
|
- }
|
|
|
- : { currentPage: this.currentPage, pageSize: this.pageSize };
|
|
|
- this.$router.push({
|
|
|
- name: "AddPlan",
|
|
|
- params: Object.assign(pam, { isEdit: true, data: item})
|
|
|
- });
|
|
|
- },
|
|
|
- currentChange(next) {
|
|
|
- this.currentPage = next;
|
|
|
- this.getDataList(true);
|
|
|
- // if (this.cacheData[next]) { //如果已请求过该页数据,则使用缓存不重复请求
|
|
|
- // this.list = this.cacheData[next];
|
|
|
- // } else {
|
|
|
- // this.getDataList();
|
|
|
- // }
|
|
|
- },
|
|
|
- // 清空搜索参数
|
|
|
- clearFilter() {
|
|
|
- this.filter = {
|
|
|
- hisName: "",
|
|
|
- planName: ""
|
|
|
- };
|
|
|
- },
|
|
|
-
|
|
|
- indexMethod(index) {
|
|
|
- return (this.currentPage - 1) * this.pageSize + index + 1;
|
|
|
- },
|
|
|
- getTagType(val) {
|
|
|
- return val;
|
|
|
- },
|
|
|
- warning(msg, type) {
|
|
|
- this.$message({
|
|
|
- showClose: true,
|
|
|
- message: msg,
|
|
|
- type: type || "warning"
|
|
|
- });
|
|
|
- },
|
|
|
- showConfirmDialog(msg, resolve, type) {
|
|
|
- let showInfo = "启用";
|
|
|
- let btnNameClass = "confirmBtn2";
|
|
|
- if (type === "Del") {
|
|
|
- showInfo = "禁用";
|
|
|
- btnNameClass = "delBtn";
|
|
|
- } else if (type === "Del1") {
|
|
|
- showInfo = "删除";
|
|
|
- btnNameClass = "delBtn";
|
|
|
- }
|
|
|
-
|
|
|
- this.$alert(msg, "提示", {
|
|
|
- confirmButtonText: showInfo,
|
|
|
- // cancelButtonText: '取消',
|
|
|
- // cancelButtonClass: 'cancelBtn',
|
|
|
- // confirmButtonClass: btnNameClass,
|
|
|
- type: "warning"
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- resolve();
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
- },
|
|
|
- // // 获取医院信息
|
|
|
- // _getHospital() {
|
|
|
- // api.getHospitalInfo().then(res => {
|
|
|
- // if (res.data.code === '0') {
|
|
|
- // this.hospitalId = res.data.data.id;
|
|
|
- // }
|
|
|
- // });
|
|
|
- // },
|
|
|
- // 删除关联
|
|
|
- showDelDialog(id, status, info, row) {
|
|
|
- if (status === 1) {
|
|
|
- this.$alert(`${info}正在启用中,无法删除。`, "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- // cancelButtonText: '取消',
|
|
|
- // cancelButtonClass: 'cancelSureL',
|
|
|
- // confirmButtonClass: 'sureL',
|
|
|
- // customClass: 'exportBoxL',
|
|
|
- type: "warning"
|
|
|
- })
|
|
|
- .then(() => {})
|
|
|
- .catch(() => {});
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if (id === -1) {
|
|
|
- this.$alert(`该方案为默认方案,无法删除。`, "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- // cancelButtonText: '取消',
|
|
|
- // cancelButtonClass: 'cancelSureL',
|
|
|
- // confirmButtonClass: 'sureL',
|
|
|
- // customClass: 'exportBoxL',
|
|
|
- type: "warning"
|
|
|
- })
|
|
|
- .then(() => {})
|
|
|
- .catch(() => {});
|
|
|
- return false;
|
|
|
- }
|
|
|
- // return
|
|
|
- this.showConfirmDialog(
|
|
|
- "是否删除该方案配置?",
|
|
|
- () => {
|
|
|
- let params = {
|
|
|
- planId: id,
|
|
|
- hospitalId: row.hospitalId
|
|
|
- };
|
|
|
- api
|
|
|
- .cancelPlanDatas(params)
|
|
|
- .then(res => {
|
|
|
- if (res.data.code == "0") {
|
|
|
- if (!this.searched) {
|
|
|
- //未点确认时清空搜索条件
|
|
|
- this.clearFilter();
|
|
|
- }
|
|
|
- if (this.list.length == 1) {
|
|
|
- //当前在最后一页且只有一条数据时,删除后跳到前一页
|
|
|
- this.currentPage =
|
|
|
- this.currentPage === 1 ? 1 : this.currentPage - 1;
|
|
|
- }
|
|
|
- this.getDataList();
|
|
|
- this.warning(res.data.msg || "操作成功", "success");
|
|
|
- } else {
|
|
|
- this.warning(res.data.msg);
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(error => {
|
|
|
- if (error.code === "900010001") {
|
|
|
- return false;
|
|
|
- }
|
|
|
- this.warning(error);
|
|
|
- });
|
|
|
- },
|
|
|
- "Del1"
|
|
|
- );
|
|
|
- },
|
|
|
-
|
|
|
- // 启用/禁用 数据请求
|
|
|
- sendAbleOrEn(row, type) {
|
|
|
- api
|
|
|
- .revStopPlans({
|
|
|
- id: row.id,
|
|
|
- status: type
|
|
|
- })
|
|
|
- .then(res => {
|
|
|
- console.log("禁用", res);
|
|
|
- if (res.data.code === "0") {
|
|
|
- this.$message({
|
|
|
- showClose: true,
|
|
|
- message: "操作成功",
|
|
|
- type: "success",
|
|
|
- duration: 1000
|
|
|
- });
|
|
|
- this.getDataList();
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(err => {});
|
|
|
- },
|
|
|
-
|
|
|
- // 启用/禁用
|
|
|
- enableOrAble(row, type) {
|
|
|
- console.log("启用planName", row, type);
|
|
|
- if (type === 1) {
|
|
|
- // 启用
|
|
|
- this.showConfirmDialog(
|
|
|
- `确定要启用${row.planName}吗?`,
|
|
|
- () => {
|
|
|
- this.sendAbleOrEn(row, type);
|
|
|
- },
|
|
|
- "Reuse"
|
|
|
- );
|
|
|
- } else {
|
|
|
- // 禁用
|
|
|
- this.showConfirmDialog(
|
|
|
- `方案禁用后前端页面将无法正常显示内容,确定要禁用${row.planName}吗?`,
|
|
|
- () => {
|
|
|
- this.sendAbleOrEn(row, type);
|
|
|
- },
|
|
|
- "Del"
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-};
|
|
|
-</script>
|
|
|
-
|
|
|
-
|
|
|
-<style lang="less" scoped>
|
|
|
-@import "../../../less/admin.less";
|
|
|
-.delete {
|
|
|
- color: red;
|
|
|
-}
|
|
|
-.delete:hover {
|
|
|
- color: red;
|
|
|
-}
|
|
|
-.pagination {
|
|
|
- min-width: 1010px;
|
|
|
-}
|
|
|
-.disable {
|
|
|
- border-color: transparent;
|
|
|
-}
|
|
|
-.el-message-box {
|
|
|
- /deep/.cancelBtn {
|
|
|
- background-color: #d7d7d7;
|
|
|
- border-color: transparent;
|
|
|
- }
|
|
|
- /deep/ .delBtn {
|
|
|
- background-color: #ff545b !important;
|
|
|
- border-color: transparent !important;
|
|
|
- }
|
|
|
- /deep/ .confirmBtn2 {
|
|
|
- position: relative;
|
|
|
- right: 0px !important;
|
|
|
- }
|
|
|
-}
|
|
|
-.exportBoxL {
|
|
|
- /deep/ .el-message-box__btns {
|
|
|
- margin-top: 20px;
|
|
|
- }
|
|
|
- /deep/ .el-message-box__message {
|
|
|
- text-align: left;
|
|
|
- }
|
|
|
- /deep/ .el-message-box__btns {
|
|
|
- // text-align: center;
|
|
|
- margin-bottom: 24px;
|
|
|
- }
|
|
|
- /deep/ .leftbtn {
|
|
|
- margin-right: 46px;
|
|
|
- background-color: #d7d7d7;
|
|
|
- border-color: transparent;
|
|
|
- }
|
|
|
- /deep/ .cancelSureL {
|
|
|
- // text-align: center;
|
|
|
- display: none;
|
|
|
- }
|
|
|
- /deep/ .sureL {
|
|
|
- float: right;
|
|
|
- }
|
|
|
-}
|
|
|
-.contents {
|
|
|
- .is-plain {
|
|
|
- color: #dad7d7;
|
|
|
- }
|
|
|
- .is-plain:hover {
|
|
|
- color: #dad7d7;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.el-table__row {
|
|
|
- /deep/ .is-disabled {
|
|
|
- border-color: transparent !important;
|
|
|
- }
|
|
|
-}
|
|
|
-.selectMedicine {
|
|
|
- /deep/ .el-input__suffix-inner {
|
|
|
- position: relative;
|
|
|
- top: -1px;
|
|
|
- }
|
|
|
- /deep/ .el-icon-circle-close {
|
|
|
- position: relative;
|
|
|
- top: -2px;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.active {
|
|
|
- color: #ff0000;
|
|
|
-}
|
|
|
-.active-t {
|
|
|
- color: #dad7d7;
|
|
|
-}
|
|
|
-</style>
|