8/9 药品单据管理

20240912_adapter_z
wangwei 11 months ago
parent 70e2c0878a
commit 4582bed984

@ -162,7 +162,7 @@
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button> <el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button> <el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="search"></el-button> <el-button type="primary" icon="el-icon-search" @click="search"></el-button>
<el-button type="primary" icon="el-icon-bottom-right" @click="selectProduct()"></el-button> <el-button type="primary" icon="el-icon-bottom-right" @click="selectProduct()"></el-button>
<el-button type="primary" icon="search" @click="lockProducts('3')" v-if="isSpCombine"></el-button> <el-button type="primary" icon="search" @click="lockProducts('3')" v-if="isSpCombine"></el-button>
<el-button type="primary" icon="search" @click="lockProducts('1')" v-if="isSpCombine">退</el-button> <el-button type="primary" icon="search" @click="lockProducts('1')" v-if="isSpCombine">退</el-button>
</el-button-group> </el-button-group>

@ -415,7 +415,6 @@
></addInvRemindSetDialog> ></addInvRemindSetDialog>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -459,6 +458,7 @@ export default {
confirmStarTime:null, // confirmStarTime:null, //
confirmEndTime:null, confirmEndTime:null,
corpName:null, corpName:null,
productType: 2
}, },
printMap: { printMap: {
@ -541,6 +541,7 @@ export default {
startAduditTime: null, startAduditTime: null,
endAduditTime: null, endAduditTime: null,
actionType: null, actionType: null,
productType: 2
}; };
this.actDateRange = [] this.actDateRange = []
this.getList(); this.getList();

@ -1544,6 +1544,7 @@ export default {
JSON.parse(JSON.stringify(this.orderFormData)) JSON.parse(JSON.stringify(this.orderFormData))
); );
tQuery.orderId = this.orderFormData.billNo; tQuery.orderId = this.orderFormData.billNo;
tQuery.productType = 1
console.log(tQuery.orderId); console.log(tQuery.orderId);
if (val == 1) { if (val == 1) {
//btn //btn

@ -540,7 +540,7 @@
</el-dialog> </el-dialog>
<el-dialog <el-dialog
title="库存物资录入" title="库存药品录入"
:visible.sync="selectInvProductVisible" :visible.sync="selectInvProductVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
@ -1503,6 +1503,7 @@ export default {
JSON.parse(JSON.stringify(this.orderFormData)) JSON.parse(JSON.stringify(this.orderFormData))
); );
tQuery.orderId = this.orderFormData.billNo; tQuery.orderId = this.orderFormData.billNo;
tQuery.productType = 2
console.log(tQuery.orderId); console.log(tQuery.orderId);
if (val == 1) { if (val == 1) {
//btn //btn
@ -1620,6 +1621,7 @@ export default {
JSON.parse(JSON.stringify(this.orderFormData)) JSON.parse(JSON.stringify(this.orderFormData))
); );
tQuery.billNo = this.orderFormData.billNo; tQuery.billNo = this.orderFormData.billNo;
tQuery.productType = 2
console.log("tQuery:"); console.log("tQuery:");
console.log(tQuery); console.log(tQuery);
if (this.orderFormData.billNo == null) { if (this.orderFormData.billNo == null) {

@ -221,10 +221,10 @@
<el-tab-pane> <el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-单据详情</span> <span slot="label">单据 {{ currentRow.billNo }}-单据详情</span>
<el-form :inline="true" :model="bizQuery" class="query-form" size="mini"> <el-form :inline="true" :model="bizQuery" class="query-form" size="mini">
<el-form-item label="物资名称:"> <el-form-item label="药品名称:">
<el-input <el-input
v-model="bizQuery.productName" v-model="bizQuery.productName"
placeholder="请输入物资名称" placeholder="请输入药品名称"
clearable clearable
> >
</el-input> </el-input>
@ -251,7 +251,7 @@
> >
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column <el-table-column
label="物资名称" label="药品名称"
prop="coName" width="160" prop="coName" width="160"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
@ -289,7 +289,7 @@
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="注册/备案号" label="批准文号"
prop="certCode" width="180" prop="certCode" width="180"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>

@ -0,0 +1,152 @@
<template>
<el-form :model="userInfo">
<el-row :gutter="20">
<el-col :span="6">
<div class="ao-text">
<span>当前仓库</span>
</div>
</el-col>
<el-col :span="16">
<el-form-item prop="locStorageCode">
<el-select v-model="userInfo.locInvCode" placeholder="当前仓库信息" clearable
@change="locCHange"
>
<el-option
v-for="item in storageList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<div class="ao-text">
<span>当前分库</span>
</div>
</el-col>
<el-col :span="16">
<el-form-item prop="locInvCode">
<el-select v-model="userInfo.locSubInvCode" placeholder="当前分库信息" clearable
>
<el-option
v-for="item in subInvList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div style='text-align: center; margin-bottom: 10px;margin-top: 18px ;'>
<el-button type="primary" @click="submitInv"></el-button>
<el-button type="primary" @click="closeDG"></el-button>
</div>
</el-form>
</template>
<script>
import {filterAllByUser} from "@/api/system/invWarehouse";
import {filterSubByInv} from "@/api/system/invSubWarehouse";
import {updateInv} from "@/api/auth/authAdmin";
export default {
name: "DialogSelectInv",
props: {
billData: {
type: Object,
required: true,
},
closeInvDialog: {
type: Function,
required: true,
},
closeSubmitDialog:{
type: Function,
required: true,
}
},
data() {
return {
userInfo: {
locInvCode: this.$store.getters.locInvCode,
locSubInvCode: this.$store.getters.locSubInvCode,
},
storageList: [],
subInvList: [],
}
},
methods: {
getStorage() {
this.storageList = [];
filterAllByUser()
.then((response) => {
this.storageList = response.data || [];
this.findSubInvByInv();
})
.catch(() => {
});
},
findSubInvByInv() {
this.subInvList = [];
let query = {
pcode: this.userInfo.locInvCode,
filter:3
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
if (this.subInvList != null && this.subInvList.length == 1) {
this.userInfo.locSubInvCode = this.subInvList[0].code;
}
})
.catch(() => {
});
},
locCHange() {
if (this.$isNotBlank(this.userInfo.locSubInvCode)) {
this.userInfo.locSubInvCode = "";
}
this.findSubInvByInv();
},
submitInv() {
if (this.$isBlank(this.userInfo.locInvCode)) {
this.$message.error("当前仓库不能为空!");
return;
}
if (this.$isBlank(this.userInfo.locSubInvCode)) {
this.$message.error("当前分库不能为空!");
return;
}
this.billData.locStorageCode = this.userInfo.locInvCode;
this.billData.invWarehouseCode = this.userInfo.locSubInvCode;
this.closeSubmitDialog();
},
closeDG() {
this.closeInvDialog();
},
},
created() {
this.getStorage();
},
}
</script>
<style scoped>
</style>

@ -4,13 +4,13 @@
<el-form :model="filterQuery" size="mini" label-width="100px" v-if="showSearch"> <el-form :model="filterQuery" size="mini" label-width="100px" v-if="showSearch">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="DI/物资编码:"> <el-form-item label="药品编码:">
<el-input v-model="filterQuery.nameCode" style="width: 90%" placeholder="请输入DI/物资编码"></el-input> <el-input v-model="filterQuery.nameCode" style="width: 90%" placeholder="药品编码"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="物资名称:"> <el-form-item label="药品名称:">
<el-input v-model="filterQuery.cpmctymc" style="width: 90%" placeholder="请输入物资名称"></el-input> <el-input v-model="filterQuery.cpmctymc" style="width: 90%" placeholder="请输入药品名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -29,12 +29,12 @@
clearable="true"></el-input> clearable="true"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <!--<el-col :span="6">-->
<el-form-item label="物资分类:" class="query-form-item"> <!-- <el-form-item label="物资分类:" class="query-form-item">-->
<el-input v-model="filterQuery.category" style="width: 100%" placeholder="请输入物资分类名称" <!-- <el-input v-model="filterQuery.category" style="width: 100%" placeholder="请输入物资分类名称"-->
clearable="true"></el-input> <!-- clearable="true"></el-input>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!--</el-col>-->
<el-col :span="6" v-if="productRemarkSet.remarkEnable1"> <el-col :span="6" v-if="productRemarkSet.remarkEnable1">
<el-form-item :label="productRemarkSet.remarkTitle1+':'" class="query-form-item"> <el-form-item :label="productRemarkSet.remarkTitle1+':'" class="query-form-item">
@ -75,8 +75,8 @@
</el-table-column> </el-table-column>
<el-table-column type="selection" width="55" v-if="type!=3"></el-table-column> <el-table-column type="selection" width="55" v-if="type!=3"></el-table-column>
<el-table-column label="序号" type="index" width="55"></el-table-column> <el-table-column label="序号" type="index" width="55"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode" width="120" show-overflow-tooltip></el-table-column> <el-table-column label="药品编码" prop="nameCode" width="120" show-overflow-tooltip></el-table-column>
<el-table-column label="物资名称" prop="cpmctymc" width="160" show-overflow-tooltip></el-table-column> <el-table-column label="药品名称" prop="cpmctymc" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="160"></el-table-column> <el-table-column label="规格型号" prop="ggxh" width="160"></el-table-column>
<el-table-column label="包装规格" prop="bzgg" width="100"></el-table-column> <el-table-column label="包装规格" prop="bzgg" width="100"></el-table-column>
<el-table-column label="计量单位" prop="measname" width="90"></el-table-column> <el-table-column label="计量单位" prop="measname" width="90"></el-table-column>
@ -88,7 +88,7 @@
<el-table-column label="出库数量" prop="outCount" width="90"></el-table-column> <el-table-column label="出库数量" prop="outCount" width="90"></el-table-column>
<el-table-column label="结余数量" prop="reCount" width="90"></el-table-column> <el-table-column label="结余数量" prop="reCount" width="90"></el-table-column>
<el-table-column label="生产企业" prop="ylqxzcrbarmc" width="180"></el-table-column> <el-table-column label="生产企业" prop="ylqxzcrbarmc" width="180"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh" width="180"></el-table-column> <el-table-column label="批准文号" prop="zczbhhzbapzbh" width="180"></el-table-column>
<el-table-column label="供应商" prop="supName" width="180"></el-table-column> <el-table-column label="供应商" prop="supName" width="180"></el-table-column>
</el-table> </el-table>
</el-card> </el-card>

@ -2,28 +2,28 @@
<div> <div>
<el-card class="el-card"> <el-card class="el-card">
<el-form :model="listQuery" size="mini" label-width="100px" v-if="showSearch"> <el-form :model="listQuery" size="mini" label-width="100px" v-if="showSearch">
<el-row> <!--<el-row>-->
<el-col :span="18"> <!-- <el-col :span="18">-->
<el-form-item class="query-form-item" label="UDI码:"> <!-- <el-form-item class="query-form-item" label="UDI码:">-->
<el-input v-model="listQuery.udiCode" <!-- <el-input v-model="listQuery.udiCode"-->
style="width: 97%" <!-- style="width: 97%"-->
placeholder="请扫描或输入UDI码" <!-- placeholder="请扫描或输入UDI码"-->
clearable="true" <!-- clearable="true"-->
@keyup.enter.native="keyup_submit($event)"></el-input> <!-- @keyup.enter.native="keyup_submit($event)"></el-input>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
</el-row> <!--</el-row>-->
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item class="query-form-item" label="品编码:"> <el-form-item class="query-form-item" label="品编码:">
<el-input v-model="listQuery.unionCode" placeholder="DI/医保编码/商品条码" <el-input v-model="listQuery.unionCode" placeholder="药品编码"
style="width: 90%" style="width: 90%"
clearable="true"></el-input> clearable="true"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item class="query-form-item" label="产品通用名:"> <el-form-item class="query-form-item" label="药品名称:">
<el-input v-model="listQuery.cpmctymc" placeholder="产品通用名" clearable="true" <el-input v-model="listQuery.cpmctymc" placeholder="药品名称" clearable="true"
style="width: 90%"></el-input> style="width: 90%"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -36,19 +36,19 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item class="query-form-item" label="注册备案人:"> <el-form-item class="query-form-item" label="生产企业:">
<el-input v-model="listQuery.ylqxzcrbarmc" placeholder="生产企业/注册备案人" <el-input v-model="listQuery.ylqxzcrbarmc" placeholder="生产企业"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="外部产品编码:">
<el-input v-model="listQuery.thrPiId" placeholder="第三方产品编码"
style="width: 90%" style="width: 90%"
clearable="true"></el-input> clearable="true"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!--<el-col :span="6">-->
<!-- <el-form-item class="query-form-item" label="外部产品编码:">-->
<!-- <el-input v-model="listQuery.thrPiId" placeholder="第三方产品编码"-->
<!-- style="width: 90%"-->
<!-- clearable="true"></el-input>-->
<!-- </el-form-item>-->
<!--</el-col>-->
</el-row> </el-row>
</el-form> </el-form>
<div class="top-right-btn"> <div class="top-right-btn">
@ -75,23 +75,23 @@
</el-table-column> </el-table-column>
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column <el-table-column
label="最小销售产品标识" label="药品编码"
prop="nameCode" prop="nameCode"
width="140" width="140"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<!--<el-table-column-->
<!-- label="产品编码"-->
<!-- prop="thirdId"-->
<!-- show-overflow-tooltip-->
<!--&gt;</el-table-column>-->
<!--<el-table-column-->
<!-- label="医疗器械注册人"-->
<!-- prop="ylqxzcrbarmc"-->
<!-- show-overflow-tooltip-->
<!--&gt;</el-table-column>-->
<el-table-column <el-table-column
label="产品编码" label="药品名称"
prop="thirdId"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="医疗器械注册人"
prop="ylqxzcrbarmc"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="产品通用名"
prop="cpmctymc" prop="cpmctymc"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
@ -101,7 +101,7 @@
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="注册/备案凭证" label="批准文号"
prop="zczbhhzbapzbh" prop="zczbhhzbapzbh"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
@ -110,11 +110,11 @@
prop="price" prop="price"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <!--<el-table-column-->
label="器械类别" <!-- label="器械类别"-->
prop="qxlb" <!-- prop="qxlb"-->
show-overflow-tooltip <!-- show-overflow-tooltip-->
></el-table-column> <!--&gt;</el-table-column>-->
<el-table-column <el-table-column
label="配送企业" label="配送企业"
prop="companyName" prop="companyName"
@ -141,7 +141,7 @@
/> />
</el-card> </el-card>
<el-dialog title="请选择对应的注册/备案证" :visible.sync="dialogFormVisible" append-to-body width="40%"> <el-dialog title="请选择对应的批准文号" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form"> <el-form :model="form">
<el-form-item label="" prop="isGive"> <el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert"> <el-radio-group v-model="currentCert">
@ -160,7 +160,7 @@
<el-dialog <el-dialog
title="耗材字典详情" title="药品字典详情"
:visible.sync="udiRlDetailVisible" :visible.sync="udiRlDetailVisible"
width="85%" width="85%"
:close-on-click-modal="false" :close-on-click-modal="false"
@ -211,6 +211,7 @@ export default {
unitFk: null, unitFk: null,
page: 1, page: 1,
limit: 10, limit: 10,
productsType: 2
}, },
dataList: [], dataList: [],
pageTotal: 1, pageTotal: 1,

@ -0,0 +1,417 @@
<template>
<div>
<el-card class="el-card" style="margin-top: -15px">
<div>
<el-form :model="listQuery" size="mini"
v-if="showSearch"
label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据号:">
<el-input
v-model="listQuery.billNo"
placeholder="单据号" style="width: 100%"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="往来单位:">
<el-input
v-model="listQuery.corpName"
placeholder="往来单位" style="width: 100%"
clearable
></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="6">-->
<!-- <el-form-item class="query-form-item" label="领用类型">-->
<!-- <el-select v-model="listQuery.billType" placeholder="请选择领用类型" clearable="true">-->
<!-- <el-option-->
<!-- v-for="item in originTypes"-->
<!-- :key="item.originAction"-->
<!-- :label="item.originName"-->
<!-- :value="item.originAction">-->
<!-- <span style="float: left;font-size: 13px">{{ item.originAction }}</span>-->
<!-- <span style="float: right; color: #8492a6; font-size: 13px;margin-left: 10px">{{-->
<!-- item.originName-->
<!-- }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-col :span="8">
<el-form-item class="query-form-item" label="单据日期:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
style="width: 100%"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="submitFind"></el-button>
<el-button type="primary" icon="el-icon-check" @click="combine"
>确定
</el-button
>
</el-button-group>
</div>
<el-table
:data="dataList"
style="width: 100%"
border
highlight-current-row="true"
v-loading="loading"
@current-change="handleDetail"
>
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="领用单号" prop="billNo"></el-table-column>
<el-table-column label="领用仓库" prop="invName"></el-table-column>
<el-table-column label="往来信息" prop="targetInvName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="单据日期" prop="createTime"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
</el-table>
<el-pagination
:page-size="listQuery.limit"
@current-change="handleErpPageChange"
layout="prev, pager, next"
:total="pageTotal"
:current-page="listQuery.page"
></el-pagination>
</div>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%">
<el-table-column label="序号" type="index" width="120"></el-table-column>
<el-table-column label="药品编码" prop="nameCode"></el-table-column>
<el-table-column label="药品名称" prop="cpmctymc" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="批次号" prop="batchNo"></el-table-column>
<el-table-column label="生产日期" prop="productDate"></el-table-column>
<el-table-column label="失效日期" prop="expireDate"></el-table-column>
<el-table-column label="领用数量" prop="count"></el-table-column>
</el-table>
</el-card>
<el-dialog
v-if="storageVisible"
title="请选择单据所属仓库信息"
:close-on-click-modal="false"
:close-on-press-escape="false"
append-to-body
:visible.sync="storageVisible">
<selectInvDialog
:closeInvDialog="closeInvDialog"
:billData="currentRow"
:closeSubmitDialog="closeSubmitDialog"
></selectInvDialog>
</el-dialog>
</div>
</template>
<script>
import {addReceiveOrder, addStockOrder, getCloudErp} from "../../api/inout/erpOrder";
import store from "@/store";
import {filterAllByUser} from "@/api/system/invWarehouse";
import selectInvDialog from "./DialogSelectInv";
import {getOrderDetail, getReceiveOrder} from "@/api/inout/receiveOrder";
import {getBusChange} from "@/api/basic/busTypeChange";
export default {
name: "closeDialog",
props: {
data: {
type: Object,
required: true,
},
closeDialog: {
type: Function,
required: true,
},
},
data() {
return {
listQuery: {
billNo: "",
corpName: null,
billAction: null,
originType: null,
page: 1,
limit: 10,
status: 3,
customerId: null,
},
showSearch: true,
detailList: [],
storageVisible: false,
dataList: [],
pageTotal: 1,
total: 1,
currentRow: null,
curLocInv: null,
loading: false,
multipleUdiSelection: [],
thirdSys: [],
thirdSysFk: null,
originTypes: [],
storageList: [],
actDateRange: [],
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
},
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.listQuery = {
billNo: "",
billAction: null,
originType: null,
page: 1,
limit: 10,
status: 3,
customerId: null,
};
this.actDateRange = [];
this.getList();
},
tableRowClassName({row}) {
if (row.checked) return "warning-row";
return "";
},
checkSelectable(row) {
return !row.check;
},
handleCurrentChange(val) {
this.unionQuery.page = val;
this.getList();
},
handleDetail(row) {
this.currentRow = row;
var query = {};
query.orderIdFk = row.billNo;
getOrderDetail(query) //
.then((response) => {
this.detailList = response.data.list || [];
})
.catch(() => {
this.detailList = [];
});
},
handleErpPageChange(val) {
this.listQuery.page = val;
this.getList();
},
keyup_submit(event) {
this.getList();
event.target.select();
},
getList() {
this.loading = true;
if (this.actDateRange !== null) {
this.listQuery.startTime = this.actDateRange[0];
this.listQuery.endTime = this.actDateRange[1];
} else {
this.listQuery.startTime = null;
this.listQuery.endTime = null;
}
this.listQuery.customerId = store.getters.customerId;
getReceiveOrder(this.listQuery)
.then((response) => {
console.log(response)
this.loading = false;
if (response.code === 20000) {
this.dataList = response.data.list || [];
this.pageTotal = response.data.total || 0;
} else {
this.$message.error(response.message);
this.dataList = [];
this.pageTotal = 0;
}
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.pageTotal = 0;
});
},
intentBack() {
this.closeDialog();
},
combine() {
if (this.$isBlank(this.currentRow.id)) {
return;
}
let tQuery = {
id: this.currentRow.id,
}
addReceiveOrder(tQuery)
.then((response) => {
if (response.code === 20000) {
this.closeDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
hideSearch() {
this.showSearch = !this.showSearch;
},
submitFind() {
this.listQuery.page = 1;
this.getList();
},
selectStorage(row) {
this.curLocInv = row.code;
let tQuery = {
id: this.currentRow.id,
locStorageCode: this.curLocInv,
}
addStockOrder(tQuery)
.then((response) => {
if (response.code === 20000) {
this.storageVisible = false;
this.closeDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
handleSelectionUdiChange(val) {
console.log("----" + val);
this.multipleUdiSelection = val;
},
getBusType() {
let query = {
enable: true,
};
getBusChange(query)
.then((response) => {
this.originTypes = response.data.list || [];
})
.catch(() => {
});
},
getStorage(event) {
this.storageList = [];
filterAllByUser()
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length == 1) {
this.curLocInv = this.storageList[0].code;
}
})
.catch(() => {
});
},
closeInvDialog() {
this.storageVisible = false;
},
closeSubmitDialog() {
this.storageVisible = false;
this.combine();
},
},
created() {
this.getBusType();
this.getStorage();
this.getList();
},
components: {selectInvDialog}
};
</script>
<style scoped>
div /deep/ .el-table .warning-row {
background: #bebebe;
}
div /deep/ .el-table .success-row {
background: #ffffff;
}
</style>

@ -9,23 +9,23 @@
> >
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column <el-table-column
label="最小销售产品标识" label="药品编码"
prop="nameCode" prop="nameCode"
width="140" width="140"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <!--<el-table-column-->
label="产品编码" <!-- label="产品编码"-->
prop="thirdId" <!-- prop="thirdId"-->
show-overflow-tooltip <!-- show-overflow-tooltip-->
></el-table-column> <!--&gt;</el-table-column>-->
<el-table-column <el-table-column
label="生产企业" label="生产企业"
prop="ylqxzcrbarmc" prop="ylqxzcrbarmc"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="产品通用名" label="药品名称"
prop="cpmctymc" prop="cpmctymc"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
@ -35,15 +35,15 @@
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="注册/备案凭证" label="批准文号"
prop="zczbhhzbapzbh" prop="zczbhhzbapzbh"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <!--<el-table-column-->
label="器械类别" <!-- label="器械类别"-->
prop="qxlb" <!-- prop="qxlb"-->
show-overflow-tooltip <!-- show-overflow-tooltip-->
></el-table-column> <!--&gt;</el-table-column>-->
<el-table-column label="配送企业" prop="companyName" show-overflow-tooltip></el-table-column> <el-table-column label="配送企业" prop="companyName" show-overflow-tooltip></el-table-column>
<el-table-column width="120" label="操作"> <el-table-column width="120" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
@ -64,7 +64,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog <el-dialog
title="品信息详情" title="品信息详情"
:visible.sync="editDialogVisible" :visible.sync="editDialogVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
append-to-body append-to-body
@ -103,13 +103,13 @@
@current-change="handleDetail" @current-change="handleDetail"
> >
<el-table-column <el-table-column
label="产品标识" label="药品编码"
prop="nameCode" prop="nameCode"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="产品通用名" label="药品名称"
prop="cpmctymc" prop="cpmctymc"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
@ -136,7 +136,7 @@
<el-col :span="12" class="el-col"> <el-col :span="12" class="el-col">
<div class="text item"> <div class="text item">
<div class="itemTag"> <div class="itemTag">
<span>品名称:&nbsp;</span> <span>品名称:&nbsp;</span>
</div> </div>
<el-input <el-input
style="width: 65%" style="width: 65%"
@ -150,7 +150,7 @@
<el-col :span="12" class="el-col"> <el-col :span="12" class="el-col">
<div class="text item"> <div class="text item">
<div class="itemTag"> <div class="itemTag">
<span>产品标识:&nbsp;</span> <span>药品编码:&nbsp;</span>
</div> </div>
<el-input <el-input
style="width: 65%" style="width: 65%"
@ -181,67 +181,67 @@
</div> </div>
</el-col> </el-col>
<el-col :span="12" class="el-col"> <!--<el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>器械类别:&nbsp;</span> <!-- <span>器械类别:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
:disabled="true" <!-- :disabled="true"-->
size="small" <!-- size="small"-->
splaceholder="请输入内容" <!-- splaceholder="请输入内容"-->
v-model="editQuery.qxlb" <!-- v-model="editQuery.qxlb"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!--</el-col>-->
</el-row> </el-row>
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col"> <!--<el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>产品类别:&nbsp;</span> <!-- <span>产品类别:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
:disabled="true" <!-- :disabled="true"-->
size="small" <!-- size="small"-->
splaceholder="请输入内容" <!-- splaceholder="请输入内容"-->
v-model="editQuery.cplb" <!-- v-model="editQuery.cplb"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!--</el-col>-->
<el-col :span="12" class="el-col"> <!--<el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>分类编码:&nbsp;</span> <!-- <span>分类编码:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
:disabled="true" <!-- :disabled="true"-->
size="small" <!-- size="small"-->
splaceholder="请输入内容" <!-- splaceholder="请输入内容"-->
v-model="editQuery.flbm" <!-- v-model="editQuery.flbm"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!--</el-col>-->
</el-row> </el-row>
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col"> <!--<el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>商品条码:&nbsp;</span> <!-- <span>商品条码:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
size="small" <!-- size="small"-->
splaceholder="请输入内容" <!-- splaceholder="请输入内容"-->
v-model="editQuery.sptm" <!-- v-model="editQuery.sptm"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!--</el-col>-->
<el-col :span="12" class="el-col"> <el-col :span="12" class="el-col">
<div class="text item"> <div class="text item">
<div class="itemTag"> <div class="itemTag">
@ -258,34 +258,34 @@
</el-row> </el-row>
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col"> <!--<el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>医疗器械注册人:&nbsp;</span> <!-- <span>医疗器械注册人:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
:disabled="true" <!-- :disabled="true"-->
size="small" <!-- size="small"-->
splaceholder="ylqxzcrbarmc" <!-- splaceholder="ylqxzcrbarmc"-->
v-model="editQuery.ylqxzcrbarmc" <!-- v-model="editQuery.ylqxzcrbarmc"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!--</el-col>-->
<el-col :span="12" class="el-col"> <!--<el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>注册人英文名称:&nbsp;</span> <!-- <span>注册人英文名称:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
:disabled="true" <!-- :disabled="true"-->
size="small" <!-- size="small"-->
splaceholder="请输入内容" <!-- splaceholder="请输入内容"-->
v-model="editQuery.ylqxzcrbarywmc" <!-- v-model="editQuery.ylqxzcrbarywmc"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!--</el-col>-->
</el-row> </el-row>
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
@ -307,7 +307,7 @@
<el-col :span="12" class="el-col"> <el-col :span="12" class="el-col">
<div class="text item"> <div class="text item">
<div class="itemTag"> <div class="itemTag">
<span>注册证/备案:&nbsp;</span> <span>批准文:&nbsp;</span>
</div> </div>
<el-input <el-input
style="width: 65%" style="width: 65%"
@ -319,119 +319,119 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20" class="el-row" type="flex"> <!--<el-row :gutter="20" class="el-row" type="flex">-->
<el-col :span="12" class="el-col"> <!-- <el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>上级产品编码:&nbsp;</span> <!-- <span>上级产品编码:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
:disabled="true" <!-- :disabled="true"-->
size="small" <!-- size="small"-->
splaceholder="请输入内容" <!-- splaceholder="请输入内容"-->
v-model="editQuery.sjcpbm" <!-- v-model="editQuery.sjcpbm"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!-- </el-col>-->
<el-col :span="12" class="el-col"> <!-- <el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>包装级别:&nbsp;</span> <!-- <span>包装级别:&nbsp;</span>-->
</div> <!-- </div>-->
<el-input <!-- <el-input-->
style="width: 65%" <!-- style="width: 65%"-->
size="small" <!-- size="small"-->
splaceholder="请输入内容" <!-- splaceholder="请输入内容"-->
:disabled="true" <!-- :disabled="true"-->
v-model="editQuery.packLevel" <!-- v-model="editQuery.packLevel"-->
></el-input> <!-- ></el-input>-->
</div> <!-- </div>-->
</el-col> <!-- </el-col>-->
</el-row> <!--</el-row>-->
<el-row :gutter="20" class="el-row" type="flex"> <!--<el-row :gutter="20" class="el-row" type="flex">-->
<el-col :span="12" class="el-col"> <!-- <el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>包装层级:&nbsp;</span> <!-- <span>包装层级:&nbsp;</span>-->
</div> <!-- </div>-->
<!-- <el-input-->
<!-- style="width: 65%"-->
<!-- size="small"-->
<!-- splaceholder="请输入内容"-->
<!-- v-model="editQuery.bzcj"-->
<!-- :disabled="true"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :span="12" class="el-col">-->
<!-- <div class="text item">-->
<!-- <div class="itemTag">-->
<!-- <span>包含下级包装数量:&nbsp;</span>-->
<!-- </div>-->
<!-- <el-input-->
<!-- style="width: 65%"-->
<!-- size="small"-->
<!-- splaceholder="请输入内容"-->
<!-- :disabled="true"-->
<!-- v-model="editQuery.bhxjsl"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </el-col>-->
<!--</el-row>-->
<!--<el-row :gutter="20" class="el-row" type="flex">-->
<!-- <el-col :span="12" class="el-col">-->
<!-- <div class="text item">-->
<!-- <div class="itemTag">-->
<!-- <span>包含下级产品编码:&nbsp;</span>-->
<!-- </div>-->
<!-- <el-input-->
<!-- style="width: 65%"-->
<!-- size="small"-->
<!-- :disabled="true"-->
<!-- splaceholder="请输入内容"-->
<!-- v-model="editQuery.bhxjcpbm"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :span="12" class="el-col">-->
<!-- <div class="text item">-->
<!-- <div class="itemTag">-->
<!-- <span>包含最小销售包装数量:&nbsp;</span>-->
<!-- </div>-->
<!-- <el-input-->
<!-- style="width: 65%"-->
<!-- size="small"-->
<!-- :disabled="true"-->
<!-- splaceholder="请输入内容"-->
<!-- v-model="editQuery.bhzxxsbzsl"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </el-col>-->
<!--</el-row>-->
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
v-model="editQuery.bzcj"
:disabled="true"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.bhxjsl"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col"> <!--<el-col :span="12" class="el-col">-->
<div class="text item"> <!-- <div class="text item">-->
<div class="itemTag"> <!-- <div class="itemTag">-->
<span>包含下级产品编码:&nbsp;</span> <!-- <span>最小包装单元内包含使用单元数量:&nbsp;</span>-->
</div> <!-- </div>-->
<!-- <el-input-->
<el-input <!-- style="width: 65%"-->
style="width: 65%" <!-- :disabled="!checked"-->
size="small" <!-- size="small"-->
:disabled="true" <!-- splaceholder="请输入内容"-->
splaceholder="请输入内容" <!-- v-model="editQuery.zxxsbzbhsydysl"-->
v-model="editQuery.bhxjcpbm" <!-- ></el-input>-->
<!-- </div>-->
></el-input> <!--</el-col>-->
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含最小销售包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="editQuery.bhzxxsbzsl"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>最小包装单元内包含使用单元数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="editQuery.zxxsbzbhsydysl"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col"> <el-col :span="12" class="el-col">
<div class="text item"> <div class="text item">
<div class="itemTag"> <div class="itemTag">
@ -448,31 +448,31 @@
</el-row> </el-row>
<el-row :gutter="20" class="el-row" type="flex"> <!--<el-row :gutter="20" class="el-row" type="flex">-->
<el-col :span="24" class="el-col"> <!-- <el-col :span="24" class="el-col">-->
<div style="margin-top: 18px;margin-bottom: 18px"> <!-- <div style="margin-top: 18px;margin-bottom: 18px">-->
<el-checkbox v-model="checked" disabled <!-- <el-checkbox v-model="checked" disabled-->
>以使用单元数量入库 <!-- >以使用单元数量入库-->
</el-checkbox> <!-- </el-checkbox>-->
<el-checkbox v-model="editQuery.isDisable" disabled <!-- <el-checkbox v-model="editQuery.isDisable" disabled-->
>是否禁用 <!-- >是否禁用-->
</el-checkbox> <!-- </el-checkbox>-->
<el-checkbox v-model="editQuery.isAdavence" disabled <!-- <el-checkbox v-model="editQuery.isAdavence" disabled-->
>是否寄售 <!-- >是否寄售-->
</el-checkbox> <!-- </el-checkbox>-->
<el-checkbox v-model="editQuery.allowNoBatch" disabled <!-- <el-checkbox v-model="editQuery.allowNoBatch" disabled-->
>允许无批次号 <!-- >允许无批次号-->
</el-checkbox> <!-- </el-checkbox>-->
<el-checkbox v-model="editQuery.allowNoExpire" disabled <!-- <el-checkbox v-model="editQuery.allowNoExpire" disabled-->
>允许无失效日期 <!-- >允许无失效日期-->
</el-checkbox> <!-- </el-checkbox>-->
<el-checkbox v-model="editQuery.allowNoProduct" disabled <!-- <el-checkbox v-model="editQuery.allowNoProduct" disabled-->
>允许无生产日期 <!-- >允许无生产日期-->
</el-checkbox> <!-- </el-checkbox>-->
</div> <!-- </div>-->
</el-col> <!-- </el-col>-->
</el-row> <!--</el-row>-->
</el-form> </el-form>
<div style="text-align: center"> <div style="text-align: center">

@ -19,14 +19,14 @@
></el-table-column> ></el-table-column>
<el-table-column label="仓库" prop="invName" width="120"></el-table-column> <el-table-column label="仓库" prop="invName" width="120"></el-table-column>
<el-table-column label="货位" prop="invSpaceName" width="120"></el-table-column> <el-table-column label="货位" prop="invSpaceName" width="120"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode" width="150"></el-table-column> <el-table-column label="药品编码" prop="nameCode" width="150"></el-table-column>
<el-table-column label="物资名称" prop="productName" width="200" show-overflow-tooltip></el-table-column> <el-table-column label="药品名称" prop="productName" width="200" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="150" show-overflow-tooltip></el-table-column> <el-table-column label="规格型号" prop="ggxh" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="批次号" prop="batchNo" width="120"></el-table-column> <el-table-column label="批次号" prop="batchNo" width="120"></el-table-column>
<el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column> <el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column>
<el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column> <el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column>
<el-table-column label="计量单位" prop="expireDate" width="120"></el-table-column> <el-table-column label="计量单位" prop="expireDate" width="120"></el-table-column>
<el-table-column label="注册备案号" prop="zczbhhzbapzbh" show-overflow-tooltip <el-table-column label="批准文号" prop="zczbhhzbapzbh" show-overflow-tooltip
width="200"></el-table-column> width="200"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory" show-overflow-tooltip <el-table-column label="生产厂家" prop="manufactory" show-overflow-tooltip
width="200"></el-table-column> width="200"></el-table-column>

@ -0,0 +1,461 @@
<template>
<div>
<el-card class="el-card" style="margin-top: -15px">
<div>
<el-form :model="listQuery" size="mini"
v-if="showSearch"
label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="外部系统:">
<el-select v-model="listQuery.thirdSysFk" style="width: 90%" placeholder="请选择第三方系统"
clearable="true" @change="thirdSysChange">
<el-option
v-for="item in thirdSys"
:key="item.thirdId"
:label="item.thirdName"
:value="item.thirdId">
<span style="float: left;font-size: 13px">{{ item.thirdName }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据号:">
<el-input
style="width: 90%"
v-model="listQuery.billNo"
placeholder="单据号"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据类型:">
<el-select v-model="listQuery.billAction" placeholder="请选择第三方系统单据类型" filterable clearable="true"
style="width: 90%">
<el-option
v-for="item in originTypes"
:key="item.name"
:label="item.name"
:value="item.action">
<span style="float: left;font-size: 13px">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px;margin-left: 10px">{{
item.thirdSysName
}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="往来单位:">
<el-input v-model="listQuery.corpName" style="width: 90%" placeholder="请输入往来单位" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据日期:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期" style="width: 90%"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="submitFind"></el-button>
<el-button type="primary" icon="el-icon-check" @click="combine" :loading="determineLoading"
>确定
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table
:data="dataList"
style="width: 100%"
highlight-current-row="true"
v-loading="loading"
border
:row-class-name="tableRowClassName"
@current-change="handleChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo"></el-table-column>
<el-table-column label="往来单位" prop="corpName" width="300"
show-overflow-tooltip="true"></el-table-column>
<el-table-column label="单据类型" prop="billType"></el-table-column>
<el-table-column label="单据状态" prop="billFlag" width="80"></el-table-column>
<el-table-column label="单据日期" prop="billdate"></el-table-column>
</el-table>
<el-pagination
:page-size="listQuery.limit"
@current-change="handleErpPageChange"
layout="prev, pager, next"
:total="pageTotal"
:current-page="listQuery.page"
></el-pagination>
</div>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border>
<el-table-column label="序号" type="index" width="120"></el-table-column>
<el-table-column label="药品编码" prop="productId"></el-table-column>
<el-table-column label="药品名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="批次号" prop="batchNo"></el-table-column>
<el-table-column label="生产日期" prop="productDate"></el-table-column>
<el-table-column label="失效日期" prop="expireDate"></el-table-column>
<el-table-column label="单据数量" prop="count"></el-table-column>
</el-table>
</el-card>
<el-dialog
v-if="storageVisible"
title="请选择单据所属仓库信息"
:close-on-click-modal="false"
:close-on-press-escape="false"
append-to-body
:visible.sync="storageVisible">
<selectInvDialog
:closeInvDialog="closeInvDialog"
:billData="currentRow"
:closeSubmitDialog="closeSubmitDialog"
></selectInvDialog>
</el-dialog>
</div>
</template>
<script>
import {addStockOrder, addThrOrder, getCloudErp} from "@/api/inout/erpOrder";
import store from "@/store";
import {getOriginBusType} from "@/api/basic/busOriginType";
import {filterAllByUser} from "@/api/system/invWarehouse";
import selectInvDialog from "./DialogSelectInv";
import {getBasicThirdSys} from "@/api/basic/basicThirdSys";
import {getThrOrderDetails, getThrOrders} from "@/api/thrsys/thrOrder";
export default {
name: "closeDialog",
props: {
data: {
type: Object,
required: true,
},
closeDialog: {
type: Function,
required: true,
},
},
data() {
return {
listQuery: {
billNo: "",
thirdSysFk: "",
billAction: null,
originType: null,
page: 1,
limit: 10,
allocateStatus: 0,
type: 0,
corpName:null,
customerId: null,
},
showSearch: true,
detailList: [],
storageVisible: false,
dataList: [],
pageTotal: 1,
total: 1,
currentRow: null,
curLocInv: null,
loading: false,
multipleUdiSelection: [],
thirdSys: [],
thirdSysFk: null,
busTypes: [],
originTypes: [],
storageList: [],
actDateRange: [],
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
determineLoading: false,
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.listQuery = {
billNo: "",
corpName: null,
billAction: null,
page: 1,
limit: 10,
allocateStatus: 0,
};
this.actDateRange = [];
this.getList();
},
tableRowClassName({row}) {
if (row.checked) return "warning-row";
return "";
},
checkSelectable(row) {
return !row.check;
},
handleCurrentChange(val) {
this.unionQuery.page = val;
this.getList();
},
handleChange(row) {
this.currentRow = row;
let query = {orderIdFk: row.billNo};
getThrOrderDetails(query)
.then((response) => {
if (response.code == 20000) {
this.detailList = response.data.list || [];
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
});
},
handleErpPageChange(val) {
this.listQuery.page = val;
this.getList();
},
keyup_submit(event) {
this.getList();
event.target.select();
},
getList() {
this.loading = true;
if (this.actDateRange !== null) {
this.listQuery.startDate = this.actDateRange[0];
this.listQuery.endDate = this.actDateRange[1];
} else {
this.listQuery.startDate = null;
this.listQuery.endDate = null;
}
this.listQuery.customerId = store.getters.customerId;
getThrOrders(this.listQuery)
.then((response) => {
console.log(response)
this.loading = false;
if (response.code === 20000) {
this.dataList = response.data.list || [];
this.pageTotal = response.data.total || 0;
} else {
this.$message.error(response.message);
this.dataList = [];
this.pageTotal = 0;
}
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.pageTotal = 0;
});
},
intentBack() {
this.closeDialog();
},
combine() {
if (this.$isBlank(this.currentRow.id)) {
return;
}
let tQuery = {
id: this.currentRow.id,
locStorageCode: this.curLocInv,
invWarehouseCode: this.currentRow.invWarehouseCode,
}
this.determineLoading = true
addThrOrder(tQuery)
.then((response) => {
this.determineLoading = false
if (response.code === 20000) {
this.closeDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.determineLoading = false
});
},
hideSearch() {
this.showSearch = !this.showSearch;
},
submitFind() {
this.listQuery.page = 1;
this.getList();
},
selectStorage(row) {
this.curLocInv = row.code;
let tQuery = {
id: this.currentRow.id,
locStorageCode: this.curLocInv,
}
addStockOrder(tQuery)
.then((response) => {
if (response.code === 20000) {
this.storageVisible = false;
this.closeDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
handleSelectionUdiChange(val) {
console.log("----" + val);
this.multipleUdiSelection = val;
},
getBusType() {
let query = {
enabled: true,
thirdSys: this.listQuery.thirdSysFk,
};
getOriginBusType(query)
.then((response) => {
this.originTypes = response.data.list || [];
})
.catch(() => {
});
},
getStorage(event) {
this.storageList = [];
filterAllByUser()
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length == 1) {
this.curLocInv = this.storageList[0].code;
}
})
.catch(() => {
});
},
closeInvDialog() {
this.storageVisible = false;
},
thirdSysChange() {
this.listQuery.billAction = "";
this.getBusType();
},
closeSubmitDialog() {
this.storageVisible = false;
this.combine();
},
getBasicThirdSys() {
let query = {
enabled: true,
};
getBasicThirdSys(query)
.then((response) => {
this.thirdSys = response.data.list || [];
this.listQuery.thirdSysFk = this.thirdSys[0].thirdId;
this.getBusType();
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
}
,
created() {
this.getBasicThirdSys();
this.getStorage();
}
,
components: {
selectInvDialog
}
}
;
</script>
<style scoped>
div /deep/ .el-table .warning-row {
background: #bebebe;
}
div /deep/ .el-table .success-row {
background: #ffffff;
}
</style>

@ -997,6 +997,7 @@ export default {
fromCorp: null, fromCorp: null,
keyWords: null, keyWords: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}, },
fromOptions: [], fromOptions: [],
checkStatus: { checkStatus: {
@ -1139,6 +1140,7 @@ export default {
startTime: null, startTime: null,
endTime: null, endTime: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.auditDateRange = []; this.auditDateRange = [];

@ -1226,6 +1226,7 @@ export default {
fromCorp: null, fromCorp: null,
keyWords: null, keyWords: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}, },
customerId: this.$store.getters.customerId, customerId: this.$store.getters.customerId,
checkStatus: { checkStatus: {
@ -1378,6 +1379,7 @@ export default {
startTime: null, startTime: null,
endTime: null, endTime: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();

@ -1148,7 +1148,7 @@ import {getBizDetailList} from "@/api/inout/orderDetailBiz";
import {getCodeDetailList} from "@/api/inout/orderDetailCode"; import {getCodeDetailList} from "@/api/inout/orderDetailCode";
import {errorCodeList} from "../../api/inout/order"; import {errorCodeList} from "../../api/inout/order";
import addOrder from "@/views/inout/DialogCreateOrder"; import addOrder from "./DialogCreateDrugOrder";
import {getCorrespondence} from "@/api/basic/basicUnitMaintain"; import {getCorrespondence} from "@/api/basic/basicUnitMaintain";
import { import {
getHead, executeFuc getHead, executeFuc
@ -1180,6 +1180,7 @@ export default {
endTime: null, endTime: null,
fromCorp: null, fromCorp: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}, },
fromOptions: [], fromOptions: [],
checkStatus: { checkStatus: {
@ -1326,6 +1327,7 @@ export default {
startTime: null, startTime: null,
endTime: null, endTime: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();

@ -943,6 +943,7 @@ export default {
fromCorp: null, fromCorp: null,
keyWords: null, keyWords: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}, },
fromOptions: [], fromOptions: [],
reviewType: 2, reviewType: 2,
@ -1089,6 +1090,7 @@ export default {
startTime: null, startTime: null,
endTime: null, endTime: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();

@ -398,13 +398,13 @@ import {
submitOrderWeb, submitOrderWeb,
getOrderList, submitBiz getOrderList, submitBiz
} from "../../api/inout/order"; } from "../../api/inout/order";
import addOrder from "@/views/inout/DialogCreateOrder"; import addOrder from "@/views/inoutDrug/DialogCreateDrugOrder";
import {getInvListByUser, getInvListByUserOptimize} from "@/api/system/invWarehouse"; import {getInvListByUser, getInvListByUserOptimize} from "@/api/system/invWarehouse";
import {getLocalJoinByUser,getLocalJoinByUserOptimize} from "@/api/basic/busType"; import {getLocalJoinByUser,getLocalJoinByUserOptimize} from "@/api/basic/busType";
import {selectSysParamByKey} from "@/api/param/systemParamConfig"; import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import selectThrOrder from "@/views/inout/DialogSelectThrOrder"; import selectThrOrder from "@/views/inoutDrug/DialogSelectThrDrugOrder";
import selectReceiveOrderDialog from "@/views/inout/DialogSelectReceiveOrder"; import selectReceiveOrderDialog from "@/views/inoutDrug/DialogSelectReceiveOrder";
import {getCorrespondence} from "@/api/basic/basicUnitMaintain"; import {getCorrespondence} from "@/api/basic/basicUnitMaintain";
import { import {
getHead,executeFuc getHead,executeFuc
@ -436,6 +436,7 @@ export default {
fromCorp: null, fromCorp: null,
keyWords: null, keyWords: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}, },
checkStatus: { checkStatus: {
1: "草稿", 1: "草稿",
@ -551,6 +552,7 @@ export default {
startTime: null, startTime: null,
endTime: null, endTime: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();

@ -0,0 +1,692 @@
<template>
<div>
<el-card class="el-card">
<el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form" size="mini" label-width="100px">
<!-- <el-row>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item class="query-form-item" label="单号:">-->
<!-- <el-input v-model="filterQuery.billNo" placeholder="单号"-->
<!-- style="width: 90%"-->
<!-- clearable="true"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item class="query-form-item" label="出入库类型:">-->
<!-- <el-select v-model="filterQuery.mainAction" placeholder="请选择出入库类型" style="width: 90%">-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="入库" value="WareHouseIn"></el-option>-->
<!-- <el-option label="出库" value="WareHouseOut"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item class="query-form-item" label="单据类型:">-->
<!-- <el-select v-model="filterQuery.action" placeholder="请选择单据类型"-->
<!-- style="width: 90%"-->
<!-- clearable>-->
<!-- <el-option-->
<!-- v-for="item in busTypes"-->
<!-- :key="item.name"-->
<!-- :label="item.name"-->
<!-- :value="item.action">-->
<!-- <span style="float: left">{{ item.name }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item class="query-form-item" label="所属仓库:">-->
<!-- <el-select v-model="filterQuery.invCode" placeholder="请选择所属仓库" clearable="true"-->
<!-- style="width: 90%"-->
<!-- @change="invChange"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in invList"-->
<!-- :key="item.name"-->
<!-- :label="item.name"-->
<!-- :value="item.code">-->
<!-- <span style="float: left">{{ item.name }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item class="query-form-item" label="创建时间:">-->
<!-- <el-date-picker-->
<!-- :picker-options="pickerOptions"-->
<!-- v-model="actDateRange"-->
<!-- type="daterange"-->
<!-- format="yyyy 年 MM 月 dd 日"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- range-separator="至"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- style="width: 90%"-->
<!-- >-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- &lt;!&ndash; <el-col :span="8">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-form-item class="query-form-item" label="审核时间:">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-date-picker&ndash;&gt;-->
<!-- &lt;!&ndash; :picker-options="pickerOptions"&ndash;&gt;-->
<!-- &lt;!&ndash; v-model="auditDateRange"&ndash;&gt;-->
<!-- &lt;!&ndash; type="daterange"&ndash;&gt;-->
<!-- &lt;!&ndash; format="yyyy 年 MM 月 dd 日"&ndash;&gt;-->
<!-- &lt;!&ndash; value-format="yyyy-MM-dd"&ndash;&gt;-->
<!-- &lt;!&ndash; range-separator="至"&ndash;&gt;-->
<!-- &lt;!&ndash; start-placeholder="开始日期"&ndash;&gt;-->
<!-- &lt;!&ndash; end-placeholder="结束日期"&ndash;&gt;-->
<!-- &lt;!&ndash; style="width: 90%"&ndash;&gt;-->
<!-- &lt;!&ndash; >&ndash;&gt;-->
<!-- &lt;!&ndash; </el-date-picker>&ndash;&gt;-->
<!-- &lt;!&ndash; </el-form-item>&ndash;&gt;-->
<!-- &lt;!&ndash; </el-col>&ndash;&gt;-->
<!-- </el-row>-->
<el-row style=" display:flex; flex-wrap: wrap; ">
<template v-for="(item, index) in queryList" >
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`" :key="item.id">
<el-input
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-select v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-select
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-date-picker
v-model="filterQuery[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border :default-sort="defaultSort"
@sort-change="handleSortChange"
>
<!-- <el-table-column label="序号" type="index"></el-table-column>-->
<!-- <el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="140"></el-table-column>-->
<!-- <el-table-column label="单据类型" prop="billTypeName" width="160"></el-table-column>-->
<!-- <el-table-column label="创建时间" prop="createTime" width="140" show-overflow-tooltip-->
<!-- sortable="custom"-->
<!-- :sort-orders="['ascending', 'descending']">-->
<!-- </el-table-column>-->
<!-- <el-table-column label="往来单位" prop="fromName" width="220">-->
<!-- </el-table-column>-->
<!-- <el-table-column label="所属部门" prop="deptName" width="120">-->
<!-- </el-table-column>-->
<!-- <el-table-column label= prop="invName" width="120">-->
<!-- </el-table-column>-->
<!-- <el-table-column label="来源单据号" prop="corpOrderId" show-overflow-tooltip width="140"></el-table-column>-->
<!-- <el-table-column label="来源" prop="fromType" width="140">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ fromTypeMap[scope.row.fromType] }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="校验状态" prop="status" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="statusFilterType(scope.row.status)">{{-->
<!-- checkStatus[scope.row.status]-->
<!-- }}-->
<!-- </el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" width="150" fixed="right">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="editOrder(scope.row)"-->
<!-- >编辑-->
<!-- </el-button-->
<!-- >-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="deleteDialog(scope.row.billNo)"-->
<!-- >删除-->
<!-- </el-button-->
<!-- >-->
<!--&lt;!&ndash; <el-button&ndash;&gt;-->
<!--&lt;!&ndash; type="text"&ndash;&gt;-->
<!--&lt;!&ndash; size="small"&ndash;&gt;-->
<!--&lt;!&ndash; v-if="scope.row.status == 1"&ndash;&gt;-->
<!--&lt;!&ndash; @click.native.stop="onUpload(scope.row.billNo)"&ndash;&gt;-->
<!--&lt;!&ndash; >校验提交&ndash;&gt;-->
<!--&lt;!&ndash; </el-button&ndash;&gt;-->
<!--&lt;!&ndash; >&ndash;&gt;-->
<!-- </template>-->
<!-- </el-table-column>-->
<template v-for="(item, index) in tableHeader">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span>
</template>
</el-table-column>
</template>
</el-table>
<el-dialog
:title="titleMap[title]"
:visible.sync="addOrderVisible"
width="85%"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="addOrderVisible"
@close='closeDialog'
>
<addOrder
:closeDialog="closeDialog"
:orderQuery="idQuery"
:viewType="viewType"
:errView="1"
></addOrder>
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
deleteByOrderId,
getOrderList, submitCodes
} from "@/api/inout/order";
import addOrder from "./DialogCreateDrugOrder";
import {getInvListByUser, getInvListByUserOptimize} from "@/api/system/invWarehouse";
import {getLocalJoinByUser,getLocalJoinByUserOptimize} from "@/api/basic/busType";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import {
getHead,executeFuc
} from "@/utils/customConfig";
export default {
name: "IoCreateErrorDrugOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true,
titleMap: {
add: "新增单据",
edit: "编辑单据",
},
title: "add",
filterQuery: {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "processedError",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
},
checkStatus: {
1: "草稿",
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "校验成功",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理", 10: "待审核", 11: "待配货",
},
curIndex: "",
idQuery: {},
storageList: [],
invList: [],
list: [],
addOrderVisible: false,
total: 0,
tableHeader:[],
queryList:[],
fromList:[],
options: {
getInvList:[],
getDeptList:[],
},
loading: false,
index: null,
formName: null,
errorDetail: "",
formMap: {
add: "新增",
edit: "编辑",
},
enableDept: false,
fromTypeMap: {
"1": "UDIMS平台",
"2": "网页新增",
"3": "pda即时校验",
"4": "pda未校验",
"5": "pc端扫码精灵",
"6": "流转自动补单",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10": "手动补单",
"11": "仓库盘点",
"12": "采购计划",
"13": "领用单据",
"14": "第三方系统单据",
},
deleteData: {
billNo: "",
status: 10,
},
dialogTableVisible: false,
formLoading: false,
deleteLoading: false,
busTypes: [],
actDateRange: [],
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
viewType: 2,
};
},
components: {
addOrder,
},
methods: {
onReset() {
this.filterQuery = {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "processedError",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
};
this.actDateRange = [];
this.getList();
},
onSubmit() {
if (this.actDateRange !== null) {
this.filterQuery.startTime = this.actDateRange[0];
this.filterQuery.endTime = this.actDateRange[1];
} else {
this.filterQuery.startTime = null;
this.filterQuery.endTime = null;
}
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
getBusType(_this) {
let query = {
code: this.filterQuery.invCode,
enabled: true,
};
getLocalJoinByUserOptimize(query)
.then((response) => {
_this.options.getBusType = response.data || [];
_this.getList();
})
.catch(() => {
});
},
addOrders() {
this.idQuery = {};
this.title = "add";
this.addOrderVisible = true;
},
editOrder(_this,row) {
_this.idQuery = row;
_this.title = "edit";
_this.addOrderVisible = true;
},
closeDialog() {
this.addOrderVisible = false;
this.addHosOrderVisible = false;
this.getList();
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//
getList() {
this.loading = true;
getOrderList(this.filterQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch((error) => {
this.$message.error(error.message)
this.loading = false;
this.list = [];
this.total = 0;
});
},
deleteOrders(data) {
this.loading = true;
this.deleteData.billNo = data;
deleteByOrderId(this.deleteData)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else if (response.code == 520) {
this.$message.error("新增扫码单据列表已不存在该扫码单据!");
this.getList();
} else {
this.$message.error(response.message);
this.getList();
}
})
.catch(() => {
});
},
deleteDialog(_this,rowId) {
_this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
_this.deleteOrders(rowId.billNo);
})
.catch(() => {
});
},
onUpload(data) {
this.loading = true;
var idQuery = {
billNo: "",
};
idQuery.billNo = data;
submitCodes(idQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功");
} else {
this.$message.error(response.message);
}
this.loading = false;
});
},
getInvList(_this) {
getInvListByUserOptimize()
.then((response) => {
_this.options.getInvList = response.data || [];
_this.getList();
})
.catch(() => {
});
},
invChange(_this) {
_this.filterQuery.action = null;
_this.getBusType(_this);
},
statusFilterType(status) {
const statusMap = {
2: "warning",
1: "warning",
4: "danger",
3: "success",
};
return statusMap[status];
},
executeFuc(row,type,clickFuc,value){
return executeFuc(this,row,type,clickFuc,value);
},
executeEval(row,expression,defaultRet){
if(expression){
return eval(expression);
}
return defaultRet;
}
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.getInvList(this);
this.getBusType(this);
getHead("IoCreateErrorOrder","1").then((re) => {
//
this.tableObj = re.data;
this.tableHeader = re.data.tableList;
this.queryList = re.data.queryList;
this.fromList = re.data.fromList;
this.getList();
});
selectSysParamByKey({paramKey: "muti_inv_mode"}).then((res) => {
if (res.code === 20000) {
if (res.data.paramValue === "0") {
this.enableDept = true;
}
}
})
},
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -267,6 +267,7 @@ export default {
fromCorp: null, fromCorp: null,
// deptCode: this.$store.getters.locDeptCode, // deptCode: this.$store.getters.locDeptCode,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}, },
viewType: 3, viewType: 3,

@ -414,7 +414,7 @@ import {
getOrderList, submitCodes getOrderList, submitCodes
} from "../../api/inout/order"; } from "../../api/inout/order";
import addOrder from "@/views/inoutDrug/DialogCreateDrugOrder"; import addOrder from "@/views/inoutDrug/DialogCreateDrugOrder";
import errOrder from "@/views/inout/IoCreateErrorOrder"; import errOrder from "@/views/inoutDrug/IoCreateErrorDrugOrder";
import {getInvListByUser, getInvListByUserOptimize} from "@/api/system/invWarehouse"; import {getInvListByUser, getInvListByUserOptimize} from "@/api/system/invWarehouse";
import {getLocalJoinByUser, getLocalJoinByUserOptimize} from "@/api/basic/busType"; import {getLocalJoinByUser, getLocalJoinByUserOptimize} from "@/api/basic/busType";
import {selectSysParamByKey} from "@/api/param/systemParamConfig"; import {selectSysParamByKey} from "@/api/param/systemParamConfig";
@ -447,6 +447,7 @@ export default {
endTime: null, endTime: null,
keyWords: null, keyWords: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}, },
fromOptions: [], fromOptions: [],
checkStatus: { checkStatus: {
@ -560,6 +561,7 @@ export default {
startTime: null, startTime: null,
endTime: null, endTime: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();

@ -351,6 +351,7 @@ export default {
keyWords: null, keyWords: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
vueType: "waitCheck", vueType: "waitCheck",
productType: 2
}, },
viewType: 7, viewType: 7,
checkStatus: { checkStatus: {
@ -472,6 +473,7 @@ export default {
endTime: null, endTime: null,
vueType: "waitCheck", vueType: "waitCheck",
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();

@ -547,6 +547,7 @@ export default {
keyWords: null, keyWords: null,
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
vueType: "waitDeal", vueType: "waitDeal",
productType: 2
}, },
viewType: 3, viewType: 3,
checkStatus: { checkStatus: {
@ -677,6 +678,7 @@ export default {
endTime: null, endTime: null,
vueType: "waitDeal", vueType: "waitDeal",
invCode: this.$store.getters.locInvCode, invCode: this.$store.getters.locInvCode,
productType: 2
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();

@ -1010,7 +1010,8 @@ export default {
data() { data() {
return { return {
filterQuery: { filterQuery: {
billNo: null billNo: null,
productType: 2
}, },
checkStatus: { checkStatus: {
1: "草稿", 1: "草稿",
@ -1121,7 +1122,8 @@ export default {
path: "", path: "",
}); });
this.filterQuery = { this.filterQuery = {
billNo: null billNo: null,
productType: 2
}; };
this.currentRow.billNo = null; this.currentRow.billNo = null;
this.list = []; this.list = [];

@ -8,7 +8,7 @@
ref="mainTable" ref="mainTable"
@click.native.stop="selectProductFunction()" @click.native.stop="selectProductFunction()"
:loading="loading" :loading="loading"
>物资录入 >药品录入
</el-button> </el-button>
</el-button-group> </el-button-group>
</div> </div>
@ -130,7 +130,7 @@
</el-dialog> </el-dialog>
<el-dialog <el-dialog
title="业务详情-物资录入" title="业务详情-药品录入"
:visible.sync="selectProductVisible" :visible.sync="selectProductVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
@ -203,12 +203,12 @@
</template> </template>
<script> <script>
import stockOrderNewSelectProduct from "../inout/DialogSelectProduct"; import stockOrderNewSelectProduct from "./DialogSelectProduct.vue";
import dialogInvProduct from "../inout/DialogSelectInvProduct"; import dialogInvProduct from "./DialogSelectInvProduct";
import {addBizProduct, getDetailBizs, updateBizProduct, delBizProduct} from "@/api/inout/orderDetailCode"; import {addBizProduct, getDetailBizs, updateBizProduct, delBizProduct} from "@/api/inout/orderDetailCode";
import {updateBizBind} from "@/api/inout/order"; import {updateBizBind} from "@/api/inout/order";
import selectRlDialog from "@/views/inout/DialogSelectRl"; import selectRlDialog from "./DialogSelectRl";
import DialogSelectUnit from "@/views/inout/DialogSelectUnit"; import DialogSelectUnit from "./DialogSelectUnit";
import selectWarlockBag from "@/views/basic/destiny/warlockBagModel"; import selectWarlockBag from "@/views/basic/destiny/warlockBagModel";
export default { export default {

@ -16,7 +16,7 @@
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="物资名称" label="药品名称"
prop="productName" prop="productName"
width="160" width="160"
show-overflow-tooltip show-overflow-tooltip

Loading…
Cancel
Save