Merge remote-tracking branch 'origin/20240912_adapter' into 20240912_adapter

20240912_adapter
yewj 3 weeks ago
commit 7209acc756

@ -1,4 +1,5 @@
import request from '@/utils/request'
import axios from '@/utils/request'
/**
* 获取单据记录
@ -18,12 +19,12 @@ export function getOrderRecords(data) {
* @param {Object} data 查询参数
* @returns {Promise} 请求结果
*/
export function getOrderDetails(data) {
return request({
url: '/udiwms/inout/bizDetail/filterList',
method: 'post',
data
})
export function getOrderDetails(query) {
return axios({
url: "/udiwms/basic/collect/ioCollectCodeBackup/getOrderDetails",
method: "get",
params: query
});
}
/**
@ -31,10 +32,10 @@ export function getOrderDetails(data) {
* @param {Object} data 查询参数
* @returns {Promise} 请求结果
*/
export function getDrugInfo(data) {
return request({
url: '/di/udirel/filterUdi',
method: 'post',
data
})
export function getDrugInfo(query) {
return axios({
url: "/udiwms/basic/collect/ioCollectCodeBackup/retrace",
method: "get",
params: query
});
}

@ -8,17 +8,17 @@
<span>药品信息查询</span>
</div>
</div>
<el-form :inline="true" :model="queryForm" size="small" class="search-form">
<el-form :inline="true" :model="filterQuery" size="small" class="search-form">
<el-form-item class="search-item">
<el-input v-model="queryForm.traceCode" placeholder="请输入药品追溯码" clearable @keyup.enter.native="handleSearch"
<el-input v-model="filterQuery.code" placeholder="请输入药品追溯码" clearable @keyup.enter.native="handleSearch"
prefix-icon="el-icon-scan"></el-input>
</el-form-item>
<el-form-item class="search-item">
<el-input v-model="queryForm.drugName" placeholder="请输入药品名称" clearable @keyup.enter.native="handleSearch"
<el-input v-model="filterQuery.cpmctymc" placeholder="请输入药品名称" clearable @keyup.enter.native="handleSearch"
prefix-icon="el-icon-medicine-box"></el-input>
</el-form-item>
<el-form-item class="search-item">
<el-input v-model="queryForm.batchNo" placeholder="请输入批号" clearable @keyup.enter.native="handleSearch"
<el-input v-model="filterQuery.batchNo" placeholder="请输入批号" clearable @keyup.enter.native="handleSearch"
prefix-icon="el-icon-tickets"></el-input>
</el-form-item>
<el-form-item class="search-actions">
@ -28,37 +28,37 @@
</el-form>
</el-card>
<!-- 药品基本信息 -->
<transition name="fade-transform" mode="out-in">
<el-card class="box-card info-card" v-if="drugInfo && drugInfo.nameCode" key="info-card">
<transition name="fade-transform" mode="out-in" v-if="showDrugInfo">
<el-card class="box-card info-card" key="info-card">
<div slot="header" class="clearfix">
<span><i class="el-icon-medicine-box"></i> 药品基本信息</span>
<i class="el-icon-medicine-box" style="font-weight: bold; ">药品基本信息</i>
</div>
<el-descriptions :column="2" border>
<el-descriptions-item label="产品名称">{{ drugInfo.cpmctymc || '-' }}</el-descriptions-item>
<el-descriptions-item label="产品标识">{{ drugInfo.nameCode || '-' }}</el-descriptions-item>
<el-descriptions-item label="制剂规格">{{ drugInfo.prepnSpec || '-' }}</el-descriptions-item>
<el-descriptions-item label="包装规格">{{ drugInfo.bzgg || '-' }}</el-descriptions-item>
<el-descriptions-item label="包装规格">{{ drugInfo.ggxh || '-' }}</el-descriptions-item>
<el-descriptions-item label="生产厂家">{{ drugInfo.manufactory || '-' }}</el-descriptions-item>
<el-descriptions-item label="注册证号">{{ drugInfo.zczbhhzbapzbh || '-' }}</el-descriptions-item>
<el-descriptions-item label="计量单位">{{ drugInfo.measname || '-' }}</el-descriptions-item>
<!--<el-descriptions-item label="计量单位">{{ drugInfo.measname || '-' }}</el-descriptions-item>-->
</el-descriptions>
</el-card>
</transition>
<!-- 追溯记录 -->
<transition name="fade-transform" mode="out-in">
<div class="trace-container" v-if="orderRecords.length > 0" key="trace-container">
<transition name="fade-transform" mode="out-in" v-if="showorderRecords">
<div class="trace-container" key="trace-container">
<el-row :gutter="20">
<el-col :span="16">
<el-card class="box-card" :body-style="{ padding: '0 0 15px 0' }">
<div slot="header" class="clearfix">
<span><i class="el-icon-document"></i> 追溯记录</span>
<i class="el-icon-document" style="font-weight: bold; ">追溯记录</i>
</div>
<el-table v-loading="tableLoading" :data="orderRecords" border stripe highlight-current-row
style="width: 100%">
<el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
<el-table-column prop="billNo" label="单据号" align="center"></el-table-column>
<el-table-column prop="billTypeName" label="单据类型" align="center"></el-table-column>
<el-table-column prop="busTypeName" label="单据类型" align="center"></el-table-column>
<el-table-column prop="createTime" label="单据时间" align="center"></el-table-column>
<el-table-column prop="fromCorpName" label="往来单位" align="center"></el-table-column>
<el-table-column prop="deptName" label="部门" align="center"></el-table-column>
@ -76,7 +76,7 @@
<el-col :span="8">
<el-card class="box-card flow-card">
<div slot="header" class="clearfix">
<span><i class="el-icon-share"></i> 流通流程</span>
<i class="el-icon-share" style="font-weight: bold; ">流通流程</i>
</div>
<el-steps :active="orderRecords.length" direction="vertical" finish-status="success" class="custom-steps">
<el-step v-for="(item, index) in orderRecords" :key="index" :title="item.billTypeName"
@ -91,22 +91,25 @@
</transition>
<!-- 明细记录 -->
<transition name="fade-transform" mode="out-in">
<el-card class="box-card detail-card" v-if="showOrderDetail" key="detail-card">
<transition name="fade-transform" mode="out-in" v-if="showOrderDetails">
<el-card class="box-card detail-card" key="detail-card">
<div slot="header" class="clearfix">
<span><i class="el-icon-tickets"></i> 单据明细</span>
<el-button style="float: right; padding: 3px 0" type="text" @click="showOrderDetail = false">
<i class="el-icon-close"></i>
</el-button>
<el-button style="float: right; padding: 3px 0" type="text" @click="colseOrderClick"><i class="el-icon-close"></i></el-button>
</div>
<div class="detail-header" v-if="currentOrder">
<div slot="header" class="clearfix">
<i class="el-icon-tickets" style="margin-bottom: 15px;font-weight: bold; ">单据明细</i>
<!--<el-button style="float: right; padding: 3px 0" type="text" @click="showOrderDetail = false">-->
<!-- <i class="el-icon-close"></i>-->
<!--</el-button>-->
</div>
<div class="detail-header" >
<div class="detail-info">
<span class="detail-label">单据号</span>
<span class="detail-value">{{ currentOrder.billNo }}</span>
</div>
<div class="detail-info">
<span class="detail-label">单据类型</span>
<span class="detail-value">{{ currentOrder.billTypeName }}</span>
<span class="detail-value">{{ currentOrder.busTypeName }}</span>
</div>
<div class="detail-info">
<span class="detail-label">单据时间</span>
@ -118,14 +121,15 @@
<el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
<el-table-column prop="orderIdFk" label="单据号" align="center"></el-table-column>
<el-table-column prop="nameCode" label="产品标识" align="center"></el-table-column>
<el-table-column prop="coName" label="产品名称" align="center"></el-table-column>
<el-table-column prop="spec" label="规格" align="center"></el-table-column>
<el-table-column prop="cpmctymc" label="产品名称" align="center"></el-table-column>
<el-table-column prop="prepnSpec" label="制剂规格" align="center"></el-table-column>
<el-table-column prop="ggxh" label="包装规格" align="center"></el-table-column>
<el-table-column prop="batchNo" label="批号" align="center"></el-table-column>
<el-table-column prop="productDate" label="生产日期" align="center"></el-table-column>
<el-table-column prop="expireDate" label="有效期至" align="center"></el-table-column>
<el-table-column prop="count" label="数量" align="center"></el-table-column>
<el-table-column prop="measname" label="单位" align="center"></el-table-column>
<el-table-column prop="manufacturer" label="生产厂家" align="center"></el-table-column>
<el-table-column prop="packUnit" label="单位" align="center"></el-table-column>
<el-table-column prop="manufactory" label="生产厂家" align="center"></el-table-column>
</el-table>
<div class="empty-data" v-if="orderDetails.length === 0 && !detailLoading">
<el-empty description="暂无明细数据"></el-empty>
@ -134,10 +138,9 @@
</transition>
<!-- 无数据提示 -->
<transition name="fade-transform" mode="out-in">
<el-empty v-if="!tableLoading && (!drugInfo || !drugInfo.nameCode)" description="未查询到相关追溯记录" class="custom-empty"
<transition name="fade-transform" mode="out-in" v-if="noData">
<el-empty :description="dataLog" class="custom-empty"
key="empty-state">
<el-button type="primary" @click="resetForm"></el-button>
</el-empty>
</transition>
@ -153,12 +156,17 @@ export default {
//
activeNames: ['1', '2', '3'],
//
queryForm: {
traceCode: '',
drugName: '',
filterQuery: {
code: '',
cpmctymc: '',
batchNo: '',
page: 1,
limit: 50
limit: 20
},
orderDetailQuery: {
billNo:'',
page: 1,
limit: 20
},
//
tableLoading: false,
@ -168,31 +176,38 @@ export default {
nameCode: '',
cpmctymc: '',
prepnSpec: '',
bzgg: '',
ggxh: '',
manufactory: '',
zczbhhzbapzbh: '',
packMatrial: '',
measname: ''
},
showDrugInfo: false,
showorderRecords: false,
showOrderDetails: false,
noData : true,
dataLog: " 请查询相关追溯记录",
//
orderRecords: [],
//
orderDetails: [],
//
showOrderDetail: false,
//
currentOrder: null
currentOrder: {
billNo: "",
busTypeName:"",
createTime:""
}
}
},
beforeCreate() {
//
if (!this.queryForm) {
this.$set(this, 'queryForm', {
traceCode: '',
drugName: '',
if (!this.filterQuery) {
this.$set(this, 'filterQuery', {
code: '',
cpmctymc: '',
batchNo: '',
page: 1,
limit: 50
limit: 20
})
}
},
@ -223,93 +238,65 @@ export default {
//
handleSearch() {
if (!this.queryForm.traceCode && !this.queryForm.drugName && !this.queryForm.batchNo) {
if (!this.filterQuery.code && !this.filterQuery.cpmctymc && !this.filterQuery.batchNo) {
this.$message.warning('请至少输入一个查询条件')
return
}
this.tableLoading = true
this.drugInfo = {
nameCode: '',
cpmctymc: '',
prepnSpec: '',
bzgg: '',
manufactory: '',
zczbhhzbapzbh: '',
packMatrial: '',
measname: ''
}
// this.tableLoading = true
this.orderRecords = []
this.orderDetails = []
this.showOrderDetail = false
this.currentOrder = {}
this.showDrugInfo = false
this.showorderRecords = false
this.showOrderDetails = false
//
this.queryDrugInfo()
//
this.queryOrderRecords()
// this.queryOrderRecords()
},
//
queryDrugInfo() {
if (!this.queryForm) return
getDrugInfo({
nameCode: this.queryForm.traceCode,
drugName: this.queryForm.drugName,
batchNo: this.queryForm.batchNo,
page: 1,
limit: 1
}).then(response => {
if (response.code === 20000 && response.data.list && response.data.list.length > 0) {
getDrugInfo(this.filterQuery).then(response => {
if (response.code === 20000 && response.data.list.length > 0) {
this.showDrugInfo = true
this.showorderRecords = true
this.noData = false
this.drugInfo = response.data.list[0]
// this.orderRecords.push( this.drugInfo.order);
response.data.list.forEach(item => {
this.orderRecords.push(item.order);
})
// orderRecords
// this.currentOrder
} else {
this.showDrugInfo = false
this.showorderRecords = false
this.noData = true
this.drugInfo = {}
this.dataLog = "未查询到相关追溯记录"
}
}).catch(() => {
this.drugInfo = {}
})
},
//
queryOrderRecords() {
if (!this.queryForm) {
this.tableLoading = false
return
}
getOrderRecords({
traceCode: this.queryForm.traceCode,
drugName: this.queryForm.drugName,
batchNo: this.queryForm.batchNo,
page: this.queryForm.page || 1,
limit: this.queryForm.limit || 50
}).then(response => {
this.tableLoading = false
if (response.code === 20000) {
this.orderRecords = response.data.list || []
} else {
this.$message.error(response.message || '查询失败')
this.orderRecords = []
}
}).catch(() => {
this.tableLoading = false
this.orderRecords = []
})
colseOrderClick(){
this.showOrderDetails = false
},
//
viewOrderDetail(row) {
this.currentOrder = row
this.detailLoading = true
this.showOrderDetail = true
getOrderDetails({
orderIdFk: row.billNo,
page: 1,
limit: 100
}).then(response => {
this.orderDetailQuery.billNo = row.billNo
getOrderDetails(this.orderDetailQuery).then(response => {
this.detailLoading = false
if (response.code === 20000) {
this.showOrderDetails = true
this.orderDetails = response.data.list || []
if (this.orderDetails.length === 0) {
this.$message.info('该单据暂无明细记录')
@ -326,17 +313,27 @@ export default {
//
resetForm() {
this.queryForm = {
traceCode: '',
drugName: '',
this.filterQuery = {
code: '',
cpmctymc: '',
batchNo: '',
page: 1,
limit: 50
limit: 20
}
this.drugInfo = {}
this.currentOrder = {}
this.orderRecords = []
this.orderDetails = []
this.showOrderDetail = false
this.showDrugInfo = false
this.showorderRecords = false
this.showOrderDetails = false
this.noData = true
this.orderDetailQuery = {
billNo:'',
page: 1,
limit: 20
}
this.dataLog = " 请查询相关追溯记录"
},
//
@ -353,20 +350,12 @@ export default {
}
},
mounted() {
//
document.body.ondrop = function (event) {
event.preventDefault()
event.stopPropagation()
}
// //
// document.body.ondrop = function (event) {
// event.preventDefault()
// event.stopPropagation()
// }
// URL
const { traceCode, drugName, batchNo } = this.$route.query
if (traceCode || drugName || batchNo) {
this.queryForm.traceCode = traceCode || ''
this.queryForm.drugName = drugName || ''
this.queryForm.batchNo = batchNo || ''
this.handleSearch()
}
}
}
</script>

@ -136,34 +136,6 @@
<el-tabs type="border-card" style="margin: 15px">
<!--单据业务详情-->
<el-tab-pane>
<span slot="label">单据 {{ orderData.billNo }}-追溯码详情</span>
<el-table :data="detailList" style="width: 100%;" highlight-current-row="true" border ref="multipleTable"
:row-style="rowStyle"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="追溯码" prop="udiCode" width="160"></el-table-column>
<el-table-column label="产品编码" prop="nameCode"></el-table-column>
<el-table-column label="产品通用名称" prop="cpmctymc" width="110"></el-table-column>
<el-table-column label="制剂规格" prop="prepnSpec" width="160">
</el-table-column>
<el-table-column label="包装规格" prop="ggxh" width="100"></el-table-column>
<el-table-column label="扫码实际数量" prop="scanActCount" width="110"></el-table-column>
<el-table-column label="批次号" prop="batchNo"></el-table-column>
<el-table-column label="生产日期" prop="productDate" width="80"></el-table-column>
<el-table-column label="失效日期" prop="expireDate" width="80"></el-table-column>
<el-table-column label="序列号" prop="serialNo"></el-table-column>
<!--<el-table-column label="扫码数量" prop="scanActCount"></el-table-column>-->
<el-table-column label="批准文号" prop="zczbhhzbapzbh"></el-table-column>
</el-table>
<pagination
v-show="resultTotal>0"
:total="resultTotal"
:limit.sync="codeQuery.limit"
:page.sync="codeQuery.page"
@pagination="getCodeList"
></pagination>
</el-tab-pane>
<el-tab-pane>
<span slot="label">单据 {{ orderData.billNo }}-业务详情</span>
<el-table :data="busDataList" style="width: 100%;" highlight-current-row="true" border ref="multipleTable"
@ -171,19 +143,19 @@
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="产品通用名" prop="cpmctymc" width="160"></el-table-column>
<el-table-column label="制剂规格" prop="prepnSpec" width="160">
</el-table-column>
<el-table-column label="制剂规格" prop="prepnSpec" width="160">
</el-table-column>
<el-table-column label="包装规格" prop="spec" width="100"></el-table-column>
<!-- <el-table-column label="扫码数量" prop="scanActCount" width="80"></el-table-column>-->
<!-- <el-table-column label="单据数量" prop="count" width="80"></el-table-column>-->
<!-- 扫码数量列 -->
<!-- <el-table-column label="扫码实际数量" width="100">-->
<!-- <template slot-scope="scope">-->
<!--<span :style="getScanActCountStyle(scope.row)">-->
<!-- <strong>{{ scope.row.scanActCount }}</strong>-->
<!--</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="扫码实际数量" width="100">-->
<!-- <template slot-scope="scope">-->
<!--<span :style="getScanActCountStyle(scope.row)">-->
<!-- <strong>{{ scope.row.scanActCount }}</strong>-->
<!--</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- 单据数量列 -->
<el-table-column label="单据数量" prop="count" width="80">
<template slot-scope="scope">
@ -233,6 +205,35 @@
@pagination="getBizDetailList"
></pagination>
</el-tab-pane>
<el-tab-pane>
<span slot="label">单据 {{ orderData.billNo }}-追溯码详情</span>
<el-table :data="detailList" style="width: 100%;" highlight-current-row="true" border ref="multipleTable"
:row-style="rowStyle"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="追溯码" prop="udiCode" width="160"></el-table-column>
<el-table-column label="产品编码" prop="nameCode"></el-table-column>
<el-table-column label="产品通用名称" prop="cpmctymc" width="110"></el-table-column>
<el-table-column label="制剂规格" prop="prepnSpec" width="160">
</el-table-column>
<el-table-column label="包装规格" prop="ggxh" width="100"></el-table-column>
<el-table-column label="扫码实际数量" prop="scanActCount" width="110"></el-table-column>
<el-table-column label="批次号" prop="batchNo"></el-table-column>
<el-table-column label="生产日期" prop="productDate" width="80"></el-table-column>
<el-table-column label="失效日期" prop="expireDate" width="80"></el-table-column>
<el-table-column label="序列号" prop="serialNo"></el-table-column>
<!--<el-table-column label="扫码数量" prop="scanActCount"></el-table-column>-->
<el-table-column label="批准文号" prop="zczbhhzbapzbh"></el-table-column>
</el-table>
<pagination
v-show="resultTotal>0"
:total="resultTotal"
:limit.sync="codeQuery.limit"
:page.sync="codeQuery.page"
@pagination="getCodeList"
></pagination>
</el-tab-pane>
</el-tabs>

@ -25,8 +25,8 @@
<div class="card-header">
<h3 class="product-name" :title="item.productName">{{ item.productName }}</h3>
<div class="product-info">
<span class="batch-no">{{ item.batchNo }}</span>
<span class="expire-date">{{ item.expireDate }}</span>
<span class="batch-no">{{ item.prepnSpec }}</span>
<span class="expire-date">{{ item.ggxh }}</span>
</div>
</div>
<div class="card-body">
@ -130,17 +130,16 @@ export default {
if (response.code === 20000) {
//
this.total = response.data.total || 0;
console.log("jkjsjsjs",this.total)
//
this.displayData = (response.data.list || []).map(item => {
return {
productName: item.cpmctymc || '未知产品',
batchNo: item.batchNo || '无批次',
expireDate: item.expireDate || '无效期',
prepnSpec: item.prepnSpec ,
ggxh: item.ggxh ,
workplaceStock: item.remCount || 0,
workplaceTotal: item.workplaceTotal || 100,
workplaceTotal: item.maxDrugCount || 100,
splitStock: item.splitRemCount || 0,
splitTotal: item.splitTotal || 100
splitTotal: item.maxDrugCount || 100
};
});
} else {

Loading…
Cancel
Save