|
@@ -2,24 +2,24 @@
|
|
|
<div style="display: flex;">
|
|
|
<el-card style="width:18%;margin-right:18px;border-radius:6px;">
|
|
|
<el-tabs v-model="activeName" type="card" @tab-click="tabClick" stretch>
|
|
|
- <el-tab-pane label="按分类" name="grp"></el-tab-pane>
|
|
|
- <el-tab-pane label="按机构" name="org"></el-tab-pane>
|
|
|
+ <!-- <el-tab-pane label="按分类" name="grp"></el-tab-pane> -->
|
|
|
+ <el-tab-pane label="按机构" name="org"></el-tab-pane>
|
|
|
</el-tabs>
|
|
|
<el-tree
|
|
|
:data="data"
|
|
|
:props="defaultProps"
|
|
|
- node-key="hospId"
|
|
|
+ node-key="spdId"
|
|
|
@node-click="handleNodeClick"
|
|
|
default-expand-all="true"
|
|
|
- style="margin-top:10px;"
|
|
|
+ style="margin-top: 10px"
|
|
|
></el-tree>
|
|
|
</el-card>
|
|
|
<div class="right-common-box">
|
|
|
<el-form :model="listQuery" ref="listQuery" :inline="true">
|
|
|
- <el-form-item label="药品名称" prop="drugName" class="long">
|
|
|
+ <el-form-item label="耗材名称" prop="prodName" class="long">
|
|
|
<el-input
|
|
|
- v-model="listQuery.drugName"
|
|
|
- placeholder="请输入药品名称"
|
|
|
+ v-model="listQuery.prodName"
|
|
|
+ placeholder="请输入耗材名称"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="对码状态" prop="stas">
|
|
@@ -61,10 +61,10 @@
|
|
|
<p>暂无数据</p>
|
|
|
</template>
|
|
|
<el-table-column fixed type="index" label="序号" width="60" />
|
|
|
- <el-table-column label="药品编码" prop="drugListId" width="80" />
|
|
|
- <el-table-column label="医院药品名称" prop="drugName" width="260">
|
|
|
+ <el-table-column label="医保编码" prop="hiCode" width="80" />
|
|
|
+ <el-table-column label="医院耗材信息" prop="prodName" width="260">
|
|
|
<template slot-scope="scope">
|
|
|
- <drug-info :info="scope.row"></drug-info>
|
|
|
+ <drug-info :info="scope.row"></drug-info>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="对码状态" prop="stas">
|
|
@@ -73,15 +73,34 @@
|
|
|
<span v-if="row.stas == '1'" style="color:lawngreen;">已对码</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="转换比" prop="splerConvrat" />
|
|
|
- <el-table-column label="供应商药品名称" prop="splerDrugName" width="260">
|
|
|
+ <el-table-column label="转换比" prop="convrat">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <span v-if="row.splerConNum">
|
|
|
+ {{ row.splerConNum }} / {{ row.splerConDen }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="供应商耗材信息"
|
|
|
+ prop="splerProdName"
|
|
|
+ width="260"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
- <div class="drug-name" v-if="scope.row.splerDrugName">
|
|
|
- <el-tag>{{ scope.row.splerDrugName }}</el-tag>
|
|
|
- {{ "【" + scope.row.splerDosformName + "】" }}
|
|
|
- <el-tag v-if="scope.row.splerEssdrugType">{{ scope.row.splerEssdrugType === "0"? "非基药": scope.row.splerEssdrugType === "1"? "基药": scope.row.splerEssdrugType}}</el-tag><br />
|
|
|
- {{ "供应商厂家 【" + scope.row.splerProdentpName + "】" }}<br />
|
|
|
- {{ "供应商规格 【" +scope.row.splerSpecName +"*" +scope.row.convrat +scope.row.splerPrepunt +"/" +scope.row.splerPacUnt +"】"}}
|
|
|
+ <div class="drug-name" v-if="scope.row.splerProdName">
|
|
|
+ <el-tag>{{ scope.row.splerProdName }}</el-tag>
|
|
|
+ <el-tag v-if="scope.row.mcsType == '0'"> 普通耗材 </el-tag>
|
|
|
+ <el-tag v-if="scope.row.mcsType == '1'"> 高值耗材 </el-tag>
|
|
|
+ <el-tag v-if="scope.row.mcsType == '2'"> 试剂 </el-tag>
|
|
|
+ <el-tag v-if="scope.row.mcsType == '3'"> 总务耗材 </el-tag>
|
|
|
+ <br />
|
|
|
+ 注册证号:
|
|
|
+ <span v-if="scope.row.regcertno">
|
|
|
+ {{ scope.row.regcertno }}
|
|
|
+ </span>
|
|
|
+ <br />
|
|
|
+ {{ "生产厂家 【" + scope.row.splerProdEntp + "】" }}<br />
|
|
|
+ {{ "规格 【" + scope.row.splerSpec + "】" }}<br />
|
|
|
+ {{ "型号 【" + scope.row.splerMol + "】" }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -89,8 +108,18 @@
|
|
|
<el-table-column fixed="right" label="操作" width="160">
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
- <el-button type="text" v-if="scope.row.stas == '0'" @click="handleDui(scope.row)">对码</el-button>
|
|
|
- <el-button type="text" v-if="scope.row.stas == '1'" @click="handleCanc(scope.row)">取消对码</el-button>
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-if="scope.row.stas == '0'"
|
|
|
+ @click="handleDui(scope.row)"
|
|
|
+ >对码</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-if="scope.row.stas == '1'"
|
|
|
+ @click="handleCanc(scope.row)"
|
|
|
+ >取消对码</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -104,47 +133,37 @@
|
|
|
@pagination="getHospDrug"
|
|
|
/>
|
|
|
</div>
|
|
|
- <el-dialog title="药品对码" :visible.sync="dialogDui" width="55%">
|
|
|
+ <el-dialog title="耗材对码" :visible.sync="dialogDui" width="55%">
|
|
|
<template>
|
|
|
- <h3 style="margin:10px 0;">选中药品信息:</h3>
|
|
|
+ <h3 style="margin:10px 0;">选中耗材信息:</h3>
|
|
|
<el-table :data="selectDrguData" border style="width: 100%">
|
|
|
- <el-table-column fixed prop="drugName" label="药品名称" width="150">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="dosformName" label="剂型名称" width="120">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="prodentpName" label="生产企业">
|
|
|
+ <el-table-column fixed prop="prodName" label="耗材名称" width="150">
|
|
|
</el-table-column>
|
|
|
+ <!-- <el-table-column prop="dosformName" label="剂型名称" width="120">
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column prop="prodEntp" label="生产企业"> </el-table-column>
|
|
|
<!-- <el-table-column prop="drugListId" label="药品编码" width="80">
|
|
|
</el-table-column> -->
|
|
|
<el-table-column prop="specName" label="规格" width="300">
|
|
|
<template slot-scope="scope">
|
|
|
<div class="drug-name">
|
|
|
- {{
|
|
|
- "医院规格 【" +
|
|
|
- scope.row.specName +
|
|
|
- "*" +
|
|
|
- scope.row.convrat +
|
|
|
- scope.row.prepunt +
|
|
|
- "/" +
|
|
|
- scope.row.pacUnt +
|
|
|
- "】"
|
|
|
- }}
|
|
|
+ {{ "医院规格 【" + scope.row.spec + "】" }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <h3 style="margin:10px 0;">供应商药品目录:</h3>
|
|
|
+ <h3 style="margin:10px 0;">供应商耗材目录:</h3>
|
|
|
<el-form :model="supQuery" ref="supQuery" :inline="true">
|
|
|
- <el-form-item label="药品名称" prop="splerDrugName" class="long">
|
|
|
+ <el-form-item label="耗材名称" prop="prodName" class="long">
|
|
|
<el-input
|
|
|
- v-model="supQuery.splerDrugName"
|
|
|
- placeholder="请输入药品名称"
|
|
|
+ v-model="supQuery.prodName"
|
|
|
+ placeholder="请输入耗材名称"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="药品编码" prop="splerDrugListId" class="long">
|
|
|
+ <el-form-item label="医保编码" prop="mcsCode" class="long">
|
|
|
<el-input
|
|
|
- v-model="supQuery.splerDrugListId"
|
|
|
- placeholder="请输入药品编码"
|
|
|
+ v-model="supQuery.mcsCode"
|
|
|
+ placeholder="请输入医保编码"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
@@ -163,37 +182,65 @@
|
|
|
>
|
|
|
<el-table-column
|
|
|
fixed
|
|
|
- prop="splerDrugName"
|
|
|
- label="药品名称"
|
|
|
+ prop="splerProdName"
|
|
|
+ label="耗材名称"
|
|
|
width="150"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
+ <!-- <el-table-column
|
|
|
prop="splerDosformName"
|
|
|
label="剂型名称"
|
|
|
width="120"
|
|
|
>
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column prop="splerProdEntp" label="生产企业">
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="splerProdentpName" label="生产企业">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="splerDrugListId"
|
|
|
- label="药品编码"
|
|
|
- width="120"
|
|
|
- >
|
|
|
+ <el-table-column prop="splerHiCode" label="医保编码" width="120">
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="address" label="规格" width="250">
|
|
|
<template slot-scope="scope">
|
|
|
<div class="drug-name">
|
|
|
- {{"供应商规格 【" +scope.row.splerSpecName +"*" +scope.row.splerPrepunt +"/" +scope.row.splerPacUnt +"】"}}
|
|
|
+ {{ "供应商规格 【" + scope.row.splerSpec + "】" }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="address" label="转换比" width="150">
|
|
|
+ <el-table-column prop="address" label="转换比" width="300">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-form-item :prop="'splerData.' + scope.$index + '.convrat'" :rules="{required: true,message: '输入转换比',trigger: 'change'}" >
|
|
|
- <el-input v-model="scope.row.convrat" placeholder="请输入转换比"></el-input>
|
|
|
- </el-form-item>
|
|
|
+ <div style="display: flex;justify-content: space-around">
|
|
|
+ <span style="display: inline-block;width:40%">
|
|
|
+ <el-form-item
|
|
|
+ :prop="'splerData.' + scope.$index + '.splerConNum'"
|
|
|
+ :rules="{
|
|
|
+ required: true,
|
|
|
+ message: '输入转换比分子',
|
|
|
+ trigger: 'change'
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="scope.row.splerConNum"
|
|
|
+ placeholder="请输入转换比分子"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </span>
|
|
|
+ <span style="display: inline-block;padding-top:5px">
|
|
|
+ /
|
|
|
+ </span>
|
|
|
+ <span style="display: inline-block;width:40%">
|
|
|
+ <el-form-item
|
|
|
+ :prop="'splerData.' + scope.$index + '.splerConDen'"
|
|
|
+ :rules="{
|
|
|
+ required: true,
|
|
|
+ message: '输入转换比分母',
|
|
|
+ trigger: 'change'
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="scope.row.splerConDen"
|
|
|
+ placeholder="请输入转换比分母"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column fixed="right" label="操作" width="60">
|
|
@@ -226,7 +273,7 @@
|
|
|
import ylPagination from "@/components/yl-pagination";
|
|
|
import drugInfo from "@/views/components/drug-info";
|
|
|
import {
|
|
|
- QueryHospList,
|
|
|
+ selectSpdList,
|
|
|
QueryHospDrugList,
|
|
|
QuerySplerDrugList,
|
|
|
DrugMatch,
|
|
@@ -242,27 +289,27 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- activeName: 'org',
|
|
|
+ activeName: "org",
|
|
|
rulesR,
|
|
|
- hospId:null,
|
|
|
+ hospId: null,
|
|
|
data: [],
|
|
|
defaultProps: {
|
|
|
children: "children",
|
|
|
- label: "hospName"
|
|
|
+ label: "spdName"
|
|
|
},
|
|
|
+ rowData: {},
|
|
|
listQuery: {
|
|
|
current: 1,
|
|
|
size: 10,
|
|
|
- drugName: "",
|
|
|
- hospId: "",
|
|
|
+ prodName: "",
|
|
|
+ spdId: "",
|
|
|
stas: ""
|
|
|
},
|
|
|
supQuery: {
|
|
|
current: 1,
|
|
|
size: 10,
|
|
|
- splerDrugName: "",
|
|
|
- splerDrugListId: "",
|
|
|
- hospId: ""
|
|
|
+ prodName: "",
|
|
|
+ mcsCode: ""
|
|
|
},
|
|
|
listLoading: false,
|
|
|
list: [],
|
|
@@ -283,15 +330,15 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
- tabClick(tab){
|
|
|
- if(tab.label == "按机构"){
|
|
|
- this.getData();
|
|
|
- this.defaultProps.label = 'hospName'
|
|
|
- }else if(tab.label == "按分类"){
|
|
|
- // this.getData4();
|
|
|
- // this.defaultProps.label = 'orgGrpName'
|
|
|
- // this.listQuery.type = 'grp';
|
|
|
- }
|
|
|
+ tabClick(tab) {
|
|
|
+ if (tab.label == "按机构") {
|
|
|
+ this.getData();
|
|
|
+ this.defaultProps.label = "hospName";
|
|
|
+ } else if (tab.label == "按分类") {
|
|
|
+ // this.getData4();
|
|
|
+ // this.defaultProps.label = 'orgGrpName'
|
|
|
+ // this.listQuery.type = 'grp';
|
|
|
+ }
|
|
|
},
|
|
|
// 搜索获取医院药品列表
|
|
|
getHospDrug(type) {
|
|
@@ -299,7 +346,7 @@ export default {
|
|
|
this.listQuery.current = 1;
|
|
|
}
|
|
|
this.listLoading = true;
|
|
|
- this.listQuery.hospId = this.hospId;
|
|
|
+ this.listQuery.spdId = this.hospId;
|
|
|
QueryHospDrugList(this.listQuery)
|
|
|
.then(res => {
|
|
|
this.list = res.data.records;
|
|
@@ -313,26 +360,25 @@ export default {
|
|
|
// 点击获取医院药品列表
|
|
|
handleNodeClick(data) {
|
|
|
this.listLoading = true;
|
|
|
- this.hospId = data.hospId;
|
|
|
- QueryHospDrugList({ hospId: data.hospId })
|
|
|
+ this.hospId = data.spdId;
|
|
|
+ QueryHospDrugList({ spdId: data.spdId })
|
|
|
.then(res => {
|
|
|
this.list = res.data.records;
|
|
|
this.total = res.data.total;
|
|
|
this.listLoading = false;
|
|
|
- console.log(res, "医院目录");
|
|
|
})
|
|
|
.catch(err => {
|
|
|
this.listLoading = false;
|
|
|
});
|
|
|
},
|
|
|
// 获取医院列表
|
|
|
- getData(type) {
|
|
|
+ getData() {
|
|
|
this.data = [];
|
|
|
this.listLoading = true;
|
|
|
- QueryHospList()
|
|
|
+ selectSpdList()
|
|
|
.then(res => {
|
|
|
this.listQuery.hospId = res.data[0].hospId;
|
|
|
- this.data = res.data
|
|
|
+ this.data = res.data;
|
|
|
this.listLoading = false;
|
|
|
})
|
|
|
.catch(err => {
|
|
@@ -358,6 +404,7 @@ export default {
|
|
|
this.$refs.listQuery.resetFields();
|
|
|
this.getHospDrug();
|
|
|
} else {
|
|
|
+ this.supQuery.prodName = "";
|
|
|
this.$refs.supQuery.resetFields();
|
|
|
this.searchSup();
|
|
|
}
|
|
@@ -369,12 +416,12 @@ export default {
|
|
|
|
|
|
// 对码弹窗获取供应商列表
|
|
|
handleDui(row) {
|
|
|
- console.log(row, "选中药品");
|
|
|
this.dialogDui = true;
|
|
|
- this.selectDrguData = [];
|
|
|
- this.selectDrguData.push(row);
|
|
|
+ this.selectDrguData = [{ ...row }];
|
|
|
+ this.rowData = { ...row };
|
|
|
this.supLoading = true;
|
|
|
- QuerySplerDrugList({ hospId: row.hospId })
|
|
|
+ // this.supQuery.prodName = row.prodName;
|
|
|
+ QuerySplerDrugList(this.supQuery)
|
|
|
.then(res => {
|
|
|
this.form.splerData = res.data.records;
|
|
|
this.total = res.data.total;
|
|
@@ -386,52 +433,67 @@ export default {
|
|
|
},
|
|
|
// 对码操作
|
|
|
handleClick(item, index) {
|
|
|
- let DrugMatchObj ={
|
|
|
- hospId:this.hospId,
|
|
|
- drugListId:this.selectDrguData[0].drugListId,
|
|
|
- splerDrugListId:item.splerDrugListId,
|
|
|
- convrat:item.convrat
|
|
|
- }
|
|
|
-
|
|
|
- if (!this.validateField("form", index)){
|
|
|
+ if (
|
|
|
+ item.splerConNum == null ||
|
|
|
+ item.splerConNum == "" ||
|
|
|
+ item.splerConDen == null ||
|
|
|
+ item.splerConDen == ""
|
|
|
+ ) {
|
|
|
+ this.$message({
|
|
|
+ message: "请输入转换比",
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
return;
|
|
|
- } else {
|
|
|
- DrugMatch(DrugMatchObj).then(res=>{
|
|
|
- if(res.success === true) {
|
|
|
- this.dialogDui = false
|
|
|
- this.getHospDrug()
|
|
|
- this.$message({
|
|
|
- message: '对码成功',
|
|
|
- type: 'success'
|
|
|
- });
|
|
|
- }else{
|
|
|
- this.$message.error('对码失败');
|
|
|
- }
|
|
|
- })
|
|
|
}
|
|
|
+ let DrugMatchObj = {
|
|
|
+ spdId: this.hospId,
|
|
|
+ hiCode: this.rowData.hiCode,
|
|
|
+ splerMcsCode: item.splerHiCode,
|
|
|
+ conNum: item.splerConNum,
|
|
|
+ conDen: item.splerConDen
|
|
|
+ };
|
|
|
+ DrugMatch(DrugMatchObj).then(res => {
|
|
|
+ if (res.success === true) {
|
|
|
+ this.dialogDui = false;
|
|
|
+ this.getHospDrug();
|
|
|
+ this.$message({
|
|
|
+ message: "对码成功",
|
|
|
+ type: "success"
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message.error("对码失败");
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
// 取消对码
|
|
|
- handleCanc (row) {
|
|
|
- this.$confirm('此操作会取消该药品对码, 是否继续?', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- CancMatch({hospId: this.hospId,drugListId:row.drugListId}).then(res=>{
|
|
|
- if(res.success) {
|
|
|
- this.getHospDrug()
|
|
|
- this.$message({
|
|
|
- type: 'success',
|
|
|
- message: '取消对码成功'
|
|
|
- })
|
|
|
- }
|
|
|
+ handleCanc(row) {
|
|
|
+ this.$confirm("此操作会取消该耗材对码, 是否继续?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ CancMatch({
|
|
|
+ spdId: this.hospId,
|
|
|
+ hiCode: row.hiCode,
|
|
|
+ splerMcsCode: row.splerHiCode,
|
|
|
+ conNum: row.splerConNum,
|
|
|
+ conDen: row.splerConDen
|
|
|
+ }).then(res => {
|
|
|
+ if (res.success) {
|
|
|
+ this.getHospDrug();
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "取消对码成功"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
})
|
|
|
- }).catch(() => {});
|
|
|
+ .catch(() => {});
|
|
|
},
|
|
|
//搜索供应商列表
|
|
|
searchSup() {
|
|
|
this.supLoading = true;
|
|
|
- this.supQuery.hospId = this.hospId;
|
|
|
QuerySplerDrugList(this.supQuery)
|
|
|
.then(res => {
|
|
|
this.form.splerData = res.data.records;
|
|
@@ -453,15 +515,18 @@ export default {
|
|
|
::v-deep .el-card__body {
|
|
|
padding: 12px;
|
|
|
}
|
|
|
+
|
|
|
::v-deep .el-tree-node__content {
|
|
|
height: 35px;
|
|
|
}
|
|
|
+
|
|
|
::v-deep .el-input__suffix {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
cursor: pointer;
|
|
|
font-size: 15px;
|
|
|
}
|
|
|
+
|
|
|
::v-deep .long .el-form-item__content {
|
|
|
width: 220px;
|
|
|
}
|