Browse Source

目录对码开发

liangbowen 3 months ago
parent
commit
5b750f73dd

+ 5 - 5
src/api/consumCataManage-sup/index.js

@@ -151,15 +151,15 @@ export function QueryHospList(data) {
 // 获取医院药品目录(对码)
 export function QueryHospDrugList(data) {
     return request({
-        url:"/web/drugList/QueryHospDrugList",
+        url:"/web/mcsList/QueryHospMcsList",
         method:"post",
         data
     })
 }
-// 获取供应商药品目录
+// 获取供应商耗材目录
 export function QuerySplerDrugList(data) {
     return request({
-        url:"/web/drugList/QuerySplerDrugList",
+        url:"/web/mcsList/QuerySplerMcsList",
         method:"post",
         data
     })
@@ -167,7 +167,7 @@ export function QuerySplerDrugList(data) {
 // 对码
 export function DrugMatch(data) {
     return request({
-        url:"/web/drugList/DrugMatch",
+        url:"/web/mcsList/McsMatch",
         method:"post",
         data
     })
@@ -175,7 +175,7 @@ export function DrugMatch(data) {
 // 取消对码
 export function CancMatch(data) {
     return request({
-        url:"/web/drugList/CancMatch",
+        url:"/web/mcsList/CancMatch",
         method:"post",
         data
     })

+ 1 - 1
src/utils/menu/systemMenu.js

@@ -516,7 +516,7 @@ const systemMenuObj = [
     hidden: 0
   },
   {
-    component: "/page/consumCataManage-sup/purOrderAccept/index",
+    component: "/page/consumCataManage-sup/catalogCheckCode/index",
     icon: "",
     id: "catalogCheckCode",
     menuType: "MENU",

+ 14 - 29
src/views/components/drug-info.vue

@@ -1,37 +1,23 @@
 <template>
   <div class="drug-name">
-    <el-tag v-if="info.drugName">
-      {{ info.drugName }}
+    <el-tag v-if="info.prodName">
+      {{ info.prodName }}
     </el-tag>
-    <span v-if="info.dosformName">{{ "【" + info.dosformName + "】" }}</span>
-    <el-tag v-if="info.essdrugType">
-      {{
-        info.essdrugType === "0"
-          ? "非基药"
-          : info.essdrugType === "1"
-          ? "基药"
-          : info.essdrugType
-      }}
-    </el-tag>
-
+    <el-tag v-if="info.mcsType == '0'"> 普通耗材 </el-tag>
+    <el-tag v-if="info.mcsType == '1'"> 高值耗材 </el-tag>
+    <el-tag v-if="info.mcsType == '2'"> 试剂 </el-tag>
+    <el-tag v-if="info.mcsType == '3'"> 总务耗材 </el-tag>
     <br />
-
-    <span v-if="info.prodentpName">
-      {{ "生产厂家 【" + info.prodentpName + "】" }}
+    注册证号:
+    <span v-if="info.regcertno"> {{ info.regcertno }} </span>
+    <br />
+    <span v-if="info.prodEntp">
+      {{ "生产厂家 【" + info.prodEntp + "】" }}
     </span>
 
     <br />
-    <span v-if="info.specName || info.convrat || info.prepunt || info.pacUnt">
-      {{
-        "药品规格 【" +
-        info.specName +
-        "*" +
-        info.convrat +
-        info.prepunt +
-        "/" +
-        info.pacUnt +
-        "】"
-      }}
+    <span v-if="info.spec">
+      {{ "药品规格 【" + info.spec + "】" }}
     </span>
     <br />
 
@@ -57,5 +43,4 @@ export default {
 };
 </script>
 
-<style>
-</style>
+<style></style>

+ 190 - 125
src/views/page/consumCataManage-sup/catalogCheckCode/index.vue

@@ -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;
 }