|
@@ -1,18 +1,7 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <crumbs
|
|
|
- title="药品关联维护"
|
|
|
- style="min-width: 980px"
|
|
|
- class="knowledgeTitle"
|
|
|
- >
|
|
|
<el-form :inline="true" class="demo-form-inline">
|
|
|
<el-form-item class="selectMedicine" label="标准术语状态:">
|
|
|
- <el-select
|
|
|
- size="mini"
|
|
|
- v-model="filter.status"
|
|
|
- placeholder="请选择"
|
|
|
- clearable
|
|
|
- >
|
|
|
<el-option
|
|
|
v-for="item in statusList"
|
|
|
:label="item.name"
|
|
@@ -22,12 +11,6 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="剂型术语状态:" class="selectMedicine">
|
|
|
- <el-select
|
|
|
- size="mini"
|
|
|
- v-model="filter.formStatus"
|
|
|
- placeholder="请选择"
|
|
|
- clearable
|
|
|
- >
|
|
|
<el-option
|
|
|
v-for="item in formstatusList"
|
|
|
:label="item.name"
|
|
@@ -37,27 +20,9 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="匹配状态:" class="selectMedicine">
|
|
|
- <el-select
|
|
|
- size="mini"
|
|
|
- v-model="filter.match"
|
|
|
- placeholder="请选择"
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in matchList"
|
|
|
- :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.hisName"
|
|
|
- placeholder="请输入"
|
|
|
- clearable
|
|
|
- ></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="标准药品名称:">
|
|
|
<el-input size="mini" v-model="filter.uniqueName" placeholder="请输入" clearable></el-input>
|
|
@@ -68,103 +33,35 @@
|
|
|
</el-form>
|
|
|
<el-form class="secLine" :inline="true">
|
|
|
<el-form-item>
|
|
|
- <el-button type="text" class="downTemplate" @click="exportModule"
|
|
|
- >导入模板下载</el-button
|
|
|
- >
|
|
|
- <input
|
|
|
- type="file"
|
|
|
- name="uploadfile "
|
|
|
- id="upFile"
|
|
|
- @change="uploadFile($event)"
|
|
|
- />
|
|
|
<!-- accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" -->
|
|
|
<el-button size="mini" @click="handleMatchData">预匹配</el-button>
|
|
|
- <el-button size="mini" @click="importPage" style="margin: 0 10px">{{
|
|
|
- uploadInfo
|
|
|
- }}</el-button>
|
|
|
- <input
|
|
|
- type="file"
|
|
|
- name="uploadfile "
|
|
|
- id="upFileMatch"
|
|
|
- @change="uploadFileMatch($event)"
|
|
|
- />
|
|
|
<el-button size="mini" @click="exportData">导出</el-button>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button size="mini" type="warning" @click="addRelation"
|
|
|
- >添加关联</el-button
|
|
|
- >
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</crumbs>
|
|
|
<div class="contents knowledgeContents">
|
|
|
<el-table :data="list" border style="width: 100%">
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- type="index"
|
|
|
- :index="indexMethod"
|
|
|
- label="编号"
|
|
|
- width="80"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="gmtModified"
|
|
|
- label="操作时间"
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="hisName"
|
|
|
- label="医院药品名称"
|
|
|
- show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="uniqueName"
|
|
|
- label="标准药品名称"
|
|
|
- show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="form"
|
|
|
- label="药品剂型"
|
|
|
- show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
<el-table-column :resizable="false" prop="operate" label="标准术语状态">
|
|
|
<template slot-scope="scope">
|
|
|
- <span v-if="scope.row.uniqueName && scope.row.uniqueName != ''">{{
|
|
|
- scope.row.status == 0 ? "禁用" : "启用"
|
|
|
- }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column :resizable="false" prop="operate" label="剂型术语状态">
|
|
|
<template slot-scope="scope">
|
|
|
- <span v-if="scope.row.form && scope.row.form != ''">{{
|
|
|
- scope.row.formStatus == 0 ? "禁用" : "启用"
|
|
|
- }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column :resizable="false" prop="operate" label="匹配状态">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{ scope.row.isMatch == 0 ? "未匹配" : "已匹配" }}</span>
|
|
|
</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"
|
|
|
- >修改</el-button
|
|
|
- >
|
|
|
- <span style="margin: 0 3px">|</span>
|
|
|
<el-button
|
|
|
@click="showDelDialog(scope.row.id)"
|
|
|
class="delete"
|
|
|
type="text"
|
|
|
size="small"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -194,51 +91,27 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import api from "@api/icss.js";
|
|
|
-import config from "@api/config.js";
|
|
|
-import utils from "@api/utils.js";
|
|
|
-import LtModal from "@components/common/LtModal";
|
|
|
export default {
|
|
|
- name: "DrugManage", //化验大小项和公表维护
|
|
|
- data: function () {
|
|
|
return {
|
|
|
list: [],
|
|
|
matchList: [
|
|
|
- { id: "", name: "全部" },
|
|
|
- { id: 1, name: "已匹配" },
|
|
|
- { id: 0, name: "未匹配" },
|
|
|
- { id: 2, name: "多项匹配" },
|
|
|
],
|
|
|
statusList: [
|
|
|
- { id: "", name: "全部" },
|
|
|
- { id: 1, name: "启用" },
|
|
|
- { id: 0, name: "禁用" },
|
|
|
],
|
|
|
formstatusList: [
|
|
|
- { id: "", name: "全部" },
|
|
|
- { id: 1, name: "启用" },
|
|
|
- { id: 0, name: "禁用" },
|
|
|
],
|
|
|
searched: false,
|
|
|
filter: {
|
|
|
- hisName: "", // 医院诊断名称
|
|
|
- uniqueName: "", //标准诊断名称
|
|
|
- match: "",
|
|
|
- status: "",
|
|
|
- formStatus: "",
|
|
|
},
|
|
|
currentPage: 1,
|
|
|
pageSize: config.pageSize,
|
|
|
pageSizeArr: config.pageSizeArr,
|
|
|
pageLayout: config.pageLayout,
|
|
|
total: 0,
|
|
|
- uploadInfo: "导入",
|
|
|
modalVisiable: false,
|
|
|
- data: {},
|
|
|
};
|
|
|
},
|
|
|
components: {
|
|
|
- LtModal,
|
|
|
},
|
|
|
created() {
|
|
|
const param = this.$route.params;
|
|
@@ -255,73 +128,46 @@ export default {
|
|
|
},
|
|
|
watch: {
|
|
|
filter: {
|
|
|
- handler: function () {
|
|
|
this.searched = false;
|
|
|
},
|
|
|
- deep: true, // watch中的高级用法 为true时 表示深度监听 这时候就能监听到filter中的值
|
|
|
- },
|
|
|
},
|
|
|
methods: {
|
|
|
// 预匹配
|
|
|
handleMatchData() {
|
|
|
- let inp = document.getElementById("upFileMatch");
|
|
|
inp.click();
|
|
|
},
|
|
|
-
|
|
|
// 导入数据
|
|
|
uploadFileMatch(e) {
|
|
|
let fileInfo = e.target.files[0];
|
|
|
- let extend = fileInfo.name.substring(fileInfo.name.lastIndexOf(".") + 1);
|
|
|
- if (extend != "xls" && extend != "xlsx") {
|
|
|
- this.$message({ message: "请根据模板进行导入", type: "error" });
|
|
|
return;
|
|
|
}
|
|
|
e.preventDefault();
|
|
|
let formData = new FormData();
|
|
|
- formData.append("file", fileInfo);
|
|
|
- formData.append("type", 5);
|
|
|
const header = {
|
|
|
headers: {
|
|
|
- "Content-Type": "multipart/form-data",
|
|
|
- },
|
|
|
};
|
|
|
// 加载动画效果
|
|
|
const loading = this.$loading({
|
|
|
lock: true,
|
|
|
- text: "预匹配中...",
|
|
|
- spinner: "el-icon-loading",
|
|
|
- background: "rgba(0, 0, 0, 0.7)",
|
|
|
});
|
|
|
-
|
|
|
- // 导入数据接口
|
|
|
- api.dataDiseaseVerify(formData, header).then((res) => {
|
|
|
- if (res.data.code === "00020007" || res.data.code === "00020004") {
|
|
|
loading.close();
|
|
|
- this.$alert(`${res.data.msg}`, "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- type: "warning",
|
|
|
})
|
|
|
.then(() => {})
|
|
|
.catch(() => {});
|
|
|
} else {
|
|
|
- api.precDiseaseDataMatch(formData, header).then((res) => {
|
|
|
setTimeout(() => {
|
|
|
loading.close();
|
|
|
}, 800);
|
|
|
if (res.status === 200) {
|
|
|
utils.downloadExportedData(
|
|
|
res.data,
|
|
|
- "药品关联数据(预匹配).xls"
|
|
|
);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- let inp = document.getElementById("upFileMatch");
|
|
|
- inp.value = "";
|
|
|
},
|
|
|
-
|
|
|
handleSizeChange(val) {
|
|
|
this.pageSize = val;
|
|
|
this.currentPage = utils.getCurrentPage(
|
|
@@ -339,13 +185,8 @@ export default {
|
|
|
// 加载动画效果
|
|
|
const loading = this.$loading({
|
|
|
lock: true,
|
|
|
- text: "Loading",
|
|
|
- spinner: "el-icon-loading",
|
|
|
- background: "rgba(0, 0, 0, 0.7)",
|
|
|
});
|
|
|
- api.getDrugPage(params).then((res) => {
|
|
|
loading.close();
|
|
|
- if (res.data.code === "0") {
|
|
|
this.list = res.data.data && res.data.data.records;
|
|
|
}
|
|
|
this.total = res.data.data && res.data.data.total;
|
|
@@ -365,13 +206,11 @@ export default {
|
|
|
const param = {
|
|
|
current: this.inCurrentPage || this.currentPage,
|
|
|
size: this.pageSize,
|
|
|
- hisName: this.filter.hisName.trim().replace(/%/g,"\\%").replace(/_/g,"\\_"),
|
|
|
- uniqueName: this.filter.uniqueName.trim().replace(/%/g,"\\%").replace(/_/g,"\\_"),
|
|
|
- uniqueCode: "",
|
|
|
+ hisName: this.filter.hisName.trim(),
|
|
|
+ uniqueName: this.filter.uniqueName.trim(),
|
|
|
type: 5,
|
|
|
isMatch: this.filter.match,
|
|
|
status: this.filter.status,
|
|
|
- formStatus: this.filter.formStatus,
|
|
|
};
|
|
|
return param;
|
|
|
},
|
|
@@ -387,7 +226,6 @@ export default {
|
|
|
? {
|
|
|
currentPage: this.currentPage,
|
|
|
pageSize: this.pageSize,
|
|
|
- filter: this.filter,
|
|
|
}
|
|
|
: { currentPage: this.currentPage, pageSize: this.pageSize };
|
|
|
|
|
@@ -425,8 +263,7 @@ export default {
|
|
|
// 清空搜索参数
|
|
|
clearFilter() {
|
|
|
this.filter = {
|
|
|
- hisName: "",
|
|
|
- uniqueName: "",
|
|
|
+ uniqueName: ''
|
|
|
};
|
|
|
},
|
|
|
|
|
@@ -440,16 +277,11 @@ export default {
|
|
|
this.$message({
|
|
|
showClose: true,
|
|
|
message: msg,
|
|
|
- type: type || "warning",
|
|
|
+
|
|
|
});
|
|
|
},
|
|
|
showConfirmDialog(msg, resolve) {
|
|
|
- this.$confirm(msg, "提示", {
|
|
|
- confirmButtonText: "删除",
|
|
|
- cancelButtonText: "取消",
|
|
|
- cancelButtonClass: "cancelBtn",
|
|
|
- confirmButtonClass: "confirmC",
|
|
|
- type: "warning",
|
|
|
+
|
|
|
})
|
|
|
.then(() => {
|
|
|
resolve();
|
|
@@ -458,11 +290,10 @@ export default {
|
|
|
},
|
|
|
// 删除关联
|
|
|
showDelDialog(id) {
|
|
|
- this.showConfirmDialog("是否删除该关联?", () => {
|
|
|
+ this.showConfirmDialog('是否删除该关联?', () => {
|
|
|
api
|
|
|
.deleteDrugRecord({ id: id })
|
|
|
- .then((res) => {
|
|
|
- if (res.data.code == "0") {
|
|
|
+ if (res.data.code == '0') {
|
|
|
if (!this.searched) {
|
|
|
//未点确认时清空搜索条件
|
|
|
this.clearFilter();
|
|
@@ -473,13 +304,12 @@ export default {
|
|
|
this.currentPage === 1 ? 1 : this.currentPage - 1;
|
|
|
}
|
|
|
this.getDataList();
|
|
|
- this.warning(res.data.msg || "操作成功", "success");
|
|
|
+ this.warning(res.data.msg || '操作成功', 'success');
|
|
|
} else {
|
|
|
this.warning(res.data.msg);
|
|
|
}
|
|
|
})
|
|
|
- .catch((error) => {
|
|
|
- if (error.code === "900010001") {
|
|
|
+ if (error.code === '900010001') {
|
|
|
return false;
|
|
|
}
|
|
|
this.warning(error);
|
|
@@ -490,12 +320,6 @@ export default {
|
|
|
// 导出数据
|
|
|
exportData() {
|
|
|
this.$confirm("确定要导出全部药品关联数据吗?", "", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- cancelButtonClass: "leftbtn",
|
|
|
- customClass: "exportBox6",
|
|
|
- title: "提示",
|
|
|
- type: "warning",
|
|
|
// beforeClose: (action, instance, done) => {
|
|
|
// if (action === 'confirm') {
|
|
|
// // instance.confirmButtonLoading = true;
|
|
@@ -516,10 +340,9 @@ export default {
|
|
|
.then(() => {
|
|
|
api
|
|
|
.exportDrugRecord({ type: 5, isMatch: this.filter.match })
|
|
|
- .then((res) => {
|
|
|
+ .then(res => {
|
|
|
if (res.status === 200) {
|
|
|
- this.$message({ message: "导出成功", type: "success" });
|
|
|
- utils.downloadExportedData(res.data, "药品关联数据.xls");
|
|
|
+ utils.downloadExportedData(res.data, '药品关联数据.xls');
|
|
|
}
|
|
|
});
|
|
|
})
|
|
@@ -530,10 +353,10 @@ export default {
|
|
|
|
|
|
// 导入模板
|
|
|
exportModule() {
|
|
|
- api.exportDrugModule({ type: 5 }).then((res) => {
|
|
|
+ api.exportDrugModule({ type: 5 }).then(res => {
|
|
|
if (res.status === 200) {
|
|
|
setTimeout(() => {
|
|
|
- utils.downloadExportedData(res.data, "药品导入模板.xls");
|
|
|
+ utils.downloadExportedData(res.data, '药品导入模板.xls');
|
|
|
}, 1500);
|
|
|
}
|
|
|
});
|
|
@@ -541,16 +364,14 @@ export default {
|
|
|
|
|
|
// 点击导入
|
|
|
importPage() {
|
|
|
- let inp = document.getElementById("upFile");
|
|
|
+ let inp = document.getElementById('upFile');
|
|
|
inp.click();
|
|
|
},
|
|
|
|
|
|
// 导入数据
|
|
|
uploadFile(e) {
|
|
|
let fileInfo = e.target.files[0];
|
|
|
- let extend = fileInfo.name.substring(fileInfo.name.lastIndexOf(".") + 1);
|
|
|
- if (extend != "xls" && extend != "xlsx") {
|
|
|
- this.$message({ message: "请根据模板进行导入", type: "error" });
|
|
|
+ this.$message({ message: '请根据模板进行导入', type: 'error' });
|
|
|
return;
|
|
|
}
|
|
|
e.preventDefault(); // 阻止默认行为
|