功能大改造取得阶段性胜利

featFunction
anthonywj 3 years ago
parent b047933eab
commit 02d4d64675

@ -14,6 +14,25 @@
"hosp_name": "福建省XX市医院"
都教授:
"BASE_URL": "http://192.168.0.66:8502/SPMS_SERVER",
"SERVER_IP": "http://192.168.0.66:8502/SPMS_SERVER",
"hosp_name": "福建省XX市医院"
彭怀毅:
"BASE_URL": "http://192.168.0.66:8503/SPMS_SERVER",
"SERVER_IP": "http://192.168.0.66:8503/SPMS_SERVER",
"hosp_name": "福建省XX市医院"
林纪裕:
"BASE_URL": "http://192.168.0.66:8504/SPMS_SERVER",
"SERVER_IP": "http://192.168.0.66:8504/SPMS_SERVER",
"hosp_name": "福建省XX市医院"
"BASE_URL": "http://192.168.0.109:9906",
"SERVER_IP": "http://192.168.0.109:9906",
"hosp_name": "福建省XX市医院"

@ -17,3 +17,6 @@ export function filterOrderTrace(query) {
});
}

@ -0,0 +1,9 @@
import axios from "@/utils/axios";
export function filterSickTrace(query) {
return axios({
url: "/spms/inv/sick/order/trace",
method: "get",
params: query
});
}

@ -70,7 +70,7 @@ import invWarehouse from "../views/basic/invWarehouse"
import udiInfoExport from "../views/basic/UdiinfoExport.vue";
import UdiInfoManage from "../views/basic/UdiInfoManage.vue";
import UdiInfoManageSp from "../views/basic/UdiInfoManageSp.vue"
import diSearch from "../views/basic/UdiInfoSearch.vue"
import UdiInfoImport from "../views/basic/UdiInfoImport.vue";
import corpImport from "../views/basic/CorpImport.vue";
import corpExport from "../views/basic/CorpExport.vue";
@ -106,6 +106,7 @@ import supInvPreProducts from "../views/inventory/supInvPreProducts"
import supInvPreInProducts from "../views/inventory/supInvPreInProducts"
import invUdiTrace from "@/views/inventory/invUdiTrace";
import invUdiTraceOrder from "@/views/inventory/invUdiTraceOrder";
import sickerUdiTraceOrder from "@/views/inventory/sickerUdiTraceOrder";
import additionalOrder from "@/views/warehouse/AdditionalOrder";
import invStatistics from "@/views/inventory/InvStatistics";
import thrInvWarehouse from "@/views/thrsys/ThrInvWarehouse";
@ -521,6 +522,16 @@ export const asyncRouterMap = [
authRule: ["product/UdiInfoManageSp"]
}
},
{
path: "diSearch",
name: "DI信息查询",
component: diSearch,
meta: {
authRule: ["product/diSearch"]
}
},
{
path: "thrProductsCheck",
name: "新增院内产品审核",
@ -790,6 +801,15 @@ export const asyncRouterMap = [
authRule: ["inv/udiTrace"]
}
},
{
path: "sickerTrace",
component: sickerUdiTraceOrder,
name: "患者使用溯源",
icon: "",
meta: {
authRule: ["inv/sickerUdiTraceOrder"]
}
},
]
},
{
@ -1178,22 +1198,36 @@ export const asyncRouterMap = [
authRule: ["basic/basicCompanyProduct"]
}
},
{
path: "thrProductsSubmit",
name: "新增院内产品",
component: thrProductsSubmit,
meta: {
authRule: ["product/thrProductsSubmit"]
}
},
{
path: "diProductsSubmit",
name: "新增DI产品",
component: thrProductsAddDi,
path: "/spDistribution",
redirect: "/spDistribution/spDistributionDi",
name: "新增配送产品",
component: Empty,
meta: {
authRule: ["product/thrProductsSubmit"]
}
authRule: ["spDistribution/local"]
},
children: [
{
path: "spDistributionDi",
name: "新增配送产品",
component: thrProductsAddDi,
meta: {
authRule: ["product/thrProductsSubmit"]
}
},
{
path: "spDistributionThr",
name: "维护第三方产品",
component: thrProductsSubmit,
meta: {
authRule: ["product/thrProductsAddDi"]
}
},
]
},
{
path: "/spInv",
redirect: "/spInv/spInvProducts",

@ -176,7 +176,7 @@ export default {
inputQuery: {
action: "",
name: "",
enable: true,
enable: null,
remark: "",
mainAction: "",
thirdSysFk: "",
@ -282,8 +282,17 @@ export default {
onAddSubmit() {
if (this.$isBlank(this.inputQuery.name)) {
this.$message.error("单据类型名称不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.corpType)) {
this.$message.error("往来信息类型不能为空!");
return;
}
if (this.inputQuery.enable && this.inputQuery.localAction == "") {
this.$message.error("本地单据不能为空!");
this.$message.error("本地单据类型不能为空!");
return;
}
if (this.inputQuery.mainAction == "" || this.inputQuery.mainAction == null) {
@ -309,7 +318,7 @@ export default {
onModifySubmit() {
if (this.inputQuery.enable && this.inputQuery.localAction == "") {
this.$message.error("本地单据不能为空!");
this.$message.error("本地单据类型不能为空!");
return;
}
if (this.inputQuery.mainAction == "" || this.inputQuery.mainAction == null) {
@ -334,7 +343,7 @@ export default {
},
handleAddClick() {
this.inputQuery = {enable: true, expireTip: true};
this.inputQuery = {enable: false, expireTip: true};
this.addDialogVisible = true;
},

@ -27,7 +27,7 @@
<el-table-column label="序号" type="index" width="60" fixed></el-table-column>
<el-table-column label="业务单据类型名称" prop="name" fixed></el-table-column>
<el-table-column label="业务单据类型代码" prop="action" fixed></el-table-column>
<el-table-column label="第三方单据类型" prop="originAction" fixed></el-table-column>
<el-table-column label="第三方单据类型" prop="originName" fixed></el-table-column>
<el-table-column label="是否寄售" prop="advanceType" fixed>
<template slot-scope="scope">
<span>{{ enableMap[scope.row.advanceType] }}</span>

@ -35,19 +35,6 @@
<div class="itemTag">
<span>第三方单据类型:&nbsp;</span>
</div>
<!-- <el-select v-model="inputQuery.originAction" placeholder="请选择第三方系统单据类型" clearable="true">-->
<!-- <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-select
v-model="inputQuery.originAction"
filterable
@ -105,39 +92,44 @@
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.advanceType"
:disabled="inputQuery.preIn"
>寄售类型单据
</el-checkbox>
<el-checkbox v-model="inputQuery.spUse">使</el-checkbox>
</div>
</el-col>
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.changeEnable" @change="isChangeOrder"
:disabled="!changeEnable || inputQuery.mainAction=='WareHouseIn'
|| inputQuery.id == null || inputQuery.mainAction==null ||inputQuery.preIn">
缺量自动补单
<el-checkbox v-model="inputQuery.advanceType"
@change="advanceChange"
:disabled="inputQuery.preIn"
>寄售类型单据
</el-checkbox>
</div>
</el-col>
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.spUse">使</el-checkbox>
<el-checkbox v-model="inputQuery.preIn" @change="preInChange"
:disabled="inputQuery.mainAction=='WareHouseOut' || inputQuery.mainAction==null || inputQuery.advanceType">
预验收
</el-checkbox>
</div>
</el-col>
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.preIn" @change="preInChange"
:disabled="inputQuery.mainAction=='WareHouseOut' || inputQuery.mainAction==null">预验收
<el-checkbox v-model="inputQuery.changeEnable" @change="isChangeOrder"
:disabled="!changeEnable || inputQuery.mainAction=='WareHouseIn'
|| inputQuery.id == null || inputQuery.mainAction==null ||inputQuery.preIn ">
自动补单
</el-checkbox>
</div>
</el-col>
<el-col :span="4" class="el-col">
<div class="text item">
<el-checkbox v-model="inputQuery.supplementAll"
:disabled="!inputQuery.changeEnable">是否全量补单
@change="supplementChange"
:disabled="!inputQuery.changeEnable ">全量补单
</el-checkbox>
</div>
</el-col>
@ -146,22 +138,16 @@
<div v-if="visibleChange">
<!-- <div style="float:right;margin-bottom: 10px">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- size="mini"-->
<!-- @click.native="addChangeType"-->
<!-- >新增流转单据类型-->
<!-- </el-button-->
<!-- >-->
<!-- </div>-->
<el-table border style="margin-bottom: 20px;margin-top: 10px" :data="changeList">
<el-table-column label="序号" type="index" width="55"></el-table-column>
<el-table-column label="补单说明" prop="intro"></el-table-column>
<!-- <el-table-column label="补单单据类型代码" prop="action"></el-table-column>-->
<el-table-column label="补单扫码单据类型" prop="name"></el-table-column>
<el-table-column label="推前时长(小时)" prop="beforeTime"></el-table-column>
<el-table-column label="补单默认仓库" prop="defautInvName"></el-table-column>
<el-table-column label="补单默认分库" prop="defautSubInvName"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button
@ -171,13 +157,6 @@
>编辑
</el-button
>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="deleteClick(scope.row)"-->
<!-- >删除-->
<!-- </el-button-->
<!-- >-->
</template>
</el-table-column>
</el-table>
@ -205,7 +184,6 @@
:label="item.name"
:value="item.action">
<span style="float: left">{{ item.name }}</span>
<!--<span style="float: right; color: #8492a6; font-size: 13px">{{ item.action }}</span>-->
</el-option>
</el-select>
</div>
@ -225,6 +203,45 @@
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col">
<div class="text item">
<div class="itemTag">
<span>补单默认仓库:&nbsp;</span>
</div>
<el-select v-model="editQuery.defaultInv" placeholder="默认仓库" clearable="true"
@change="invChange"
size="small">
<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>
</div>
</el-col>
<el-col :span="10" class="el-col">
<div class="text item">
<div class="itemTag">
<span>补单默认分库:&nbsp;</span>
</div>
<el-select v-model="editQuery.defaultSubInv" placeholder="默认分库" clearable="true"
size="small">
<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>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col">
<div class="text item">
@ -279,6 +296,8 @@ import {
deleteChangeBusType,
updateChangeBusType, removeBusChange
} from "../../api/basic/busChangeType";
import {filterAll} from "@/api/basic/invWarehouse";
import {filterSubByInv} from "@/api/basic/invSubWarehouse";
export default {
name: "inputQuery",
@ -315,6 +334,8 @@ export default {
changeList: [],
visibleChange: false,
loading: false,
storageList: [],
subInvList: [],
}
},
methods: {
@ -390,7 +411,7 @@ export default {
,
handleModifyClick(row) {
this.changeEdit = 1;
this.editQuery = row;
this.editQuery = JSON.parse(JSON.stringify(row));
this.editChangeTypeVisible = true;
this.getBusTypes();
}
@ -434,6 +455,12 @@ export default {
}
,
advanceChange() {
if (this.inputQuery.advanceType) {
this.inputQuery.preIn = false;
}
},
preInChange() {
if (this.inputQuery.preIn) {
this.inputQuery.changeEnable = false;
@ -445,17 +472,49 @@ export default {
if (this.inputQuery.changeEnable) {
this.query.type = "changeEnable";
this.getList()
//
} else {
this.visibleChange = false;
this.removeBusChangeType();
this.inputQuery.supplementAll = false;
}
}
,
supplementChange() {
},
getStorage() {
this.storageList = [];
filterAll()
.then((response) => {
this.storageList = response.data || [];
this.findDefaultSubInv();
})
.catch(() => {
});
},
findDefaultSubInv() {
this.subInvList = [];
let query = {
pcode: this.editQuery.defaultInv
};
filterSubByInv(query)
.then((response) => {
this.subInvList = response.data || [];
})
.catch(() => {
});
},
invChange() {
if (this.$isNotBlank(this.inputQuery.defaultSubInv))
this.inputQuery.defaultSubInv = null;
this.findDefaultSubInv();
},
},
created() {
this.getTypes();
this.getList();
this.getStorage();
}
,
}

@ -148,36 +148,36 @@
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col">
<div class="text item">
<div class="itemTag">
<span>补单默认仓库:&nbsp;</span>
</div>
<el-select v-model="inputQuery.defaultInv" placeholder="默认仓库" clearable="true"
@change="invChange"
style="width: 30%"
size="small">
<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-select v-model="inputQuery.defaultSubInv" placeholder="默认分库" clearable="true"
style="width: 30%"
size="small">
<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>
</div>
</el-col>
<!-- <el-col :span="10" class="el-col">-->
<!-- <div class="text item">-->
<!-- <div class="itemTag">-->
<!-- <span>补单默认仓库:&nbsp;</span>-->
<!-- </div>-->
<!-- <el-select v-model="inputQuery.defaultInv" placeholder="默认仓库" clearable="true"-->
<!-- @change="invChange"-->
<!-- style="width: 30%"-->
<!-- size="small">-->
<!-- <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-select v-model="inputQuery.defaultSubInv" placeholder="默认分库" clearable="true"-->
<!-- style="width: 30%"-->
<!-- size="small">-->
<!-- <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>-->
<!-- </div>-->
<!-- </el-col>-->
<el-col :span="10" class="el-col">
<div class="text item">
@ -198,7 +198,7 @@
<el-row :gutter="20" class="el-row" type="flex" style="margin-top: 10px">
<el-col :span="24" class="el-col">
<div class="text item" style="margin-top: 6px">
<el-checkbox v-model="inputQuery.enable"></el-checkbox>
<el-checkbox v-model="inputQuery.enable" :disabled="inputQuery.localAction==null"></el-checkbox>
<el-checkbox v-model="inputQuery.genUnit" :disabled="inputQuery.corpType !=2">
</el-checkbox>
<el-checkbox v-model="inputQuery.useDyCount" :disabled="true">使
@ -223,11 +223,11 @@
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="24" class="el-col">
<div class="text item" style="margin-top: 12px">
<el-checkbox v-model="inputQuery.ullageFill" :disabled="!inputQuery.changeEnable">
<el-checkbox v-model="inputQuery.ullageFill" :disabled="!inputQuery.changeEnable">
</el-checkbox>
<el-checkbox v-model="inputQuery.scanPreIn" :disabled="inputQuery.corpType!='2'">
<el-checkbox v-model="inputQuery.scanPreIn" :disabled="inputQuery.corpType!='2'">
</el-checkbox>
<el-checkbox v-model="inputQuery.vailInv">
<el-checkbox v-model="inputQuery.vailInv">
</el-checkbox>
<el-checkbox v-model="inputQuery.codeFillCheck">UDI
</el-checkbox>
@ -387,6 +387,7 @@ export default {
type: Object,
required: true,
},
},
data() {

@ -173,7 +173,7 @@
<el-button
type="text"
size="small"
@click="intentSelect(scope.row)" :disabled="!configParms.basicCorp"
@click="intentSelect(scope.row)" :disabled="!configParms.basicCorp"
>关联
</el-button
>
@ -492,6 +492,11 @@ export default {
this.getThirdSysDetail();
},
formSubmit() {
if (this.$isBlank(this.editQuery.corpType)) {
this.$message.error("往来单位类型不能为空!");
return;
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;

@ -57,13 +57,6 @@
<div>
<el-form :inline="true" :model="unitQuery" style="display: flex" size="mini">
<!-- <el-form-item class="query-form-item">-->
<!-- <el-input-->
<!-- v-model="unitQuery.unitId"-->
<!-- placeholder="往来单位编码"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<el-form-item class="query-form-item">
<el-input
v-model="unitQuery.name"
@ -212,6 +205,7 @@ export default {
.then((response) => {
this.thirdSys = response.data.list || [];
this.thirdSysFk = this.thirdSys[0].thirdId;
this.getList();
})
.catch(() => {
this.loading = false;

@ -203,7 +203,6 @@
>解绑DI器械信息
</el-button
>
</div>
<el-table
v-loading="loading"

@ -213,22 +213,6 @@
<el-table-column label="注册/备案凭证号" prop="registerNo" show-overflow-tooltip></el-table-column>
<el-table-column label="生产厂家" prop="manufactory" show-overflow-tooltip></el-table-column>
<!-- <el-table-column label="操作" fixed="right">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click="addSelectErp(scope.row)"-->
<!-- :disabled="scope.row.thirdId==editQuery.nameCode"-->
<!-- >关联-->
<!-- </el-button-->
<!-- >-->
<!-- <el-button type="text" size="small" @click.native.stop="removeErp(scope.row)"-->
<!-- :disabled="editQuery.flbm==null || scope.row.thirdId==null || scope.row.thirdId==''"-->
<!-- >解绑-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<el-table
v-loading="loading"
@ -891,7 +875,7 @@ export default {
selectVersionVisible: false,
isUseDyCheck: false,
lockStatusMap: {"1": "未提交", "2": "已提交", "3": "已锁定"},
loading:false,
loading: false,
activeNames: ['1']
};
},

@ -0,0 +1,573 @@
<template>
<div>
<el-card>
<el-form :inline="true" :model="unionQuery" size="mini">
<el-form-item class="query-form-item">
<el-input v-model="unionQuery.udiCode"
style="width: 600px"
placeholder="请扫描或输入UDI码"
clearable="true"
@keyup.enter.native="keyup_submit($event)"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-button-group>
<el-button type="primary" icon="search" @click="searchList" size="mini"
>查询
</el-button
>
<el-button type="primary" icon="search" @click="getSuperSeaech" size="mini"
>国家同步库查询
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<el-form
:model="editQuery"
:rules="rules"
ref="editQuery"
label-width="100px"
style="margin-top: 20px"
>
<el-collapse v-model="activeNames">
<el-collapse-item name="1">
<template slot="title">
<p class="form-title">产品标识基本信息</p>
</template>
<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="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.nameCode"
></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%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.zxxsbzbhsydysl"
></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-collapse-item>
<el-collapse-item name="2">
<template slot="title">
<p class="form-title">产品基本信息</p>
</template>
<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"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.cpmctymc"
></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%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ggxh"
></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="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.cplb"
></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%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.flbm"
></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="true"
size="small"
splaceholder="ylqxzcrbarmc"
v-model="editQuery.ylqxzcrbarmc"
></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%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ylqxzcrbarywmc"
></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="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.qxlb"
></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%"
:disabled="true"
size="small"
splaceholder="请输入内容"
></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.sptm"
></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%" :disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ybbm"
></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="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.tyshxydm"
></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%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.zczbhhzbapzbh"
></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.cpms"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="3">
<template slot="title">
<p class="form-title">生产标识基本信息</p>
</template>
<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="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.scbssfbhph"
></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%"
:disabled="true"
size="small"
v-model="editQuery.scbssfbhxlh"
splaceholder="请输入内容"
></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="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.scbssfbhscrq"
></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%"
:disabled="true"
v-model="editQuery.scbssfbhsxrq"
size="small"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="4">
<template slot="title">
<p class="form-title">包装标识信息</p>
</template>
<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="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.sjcpbm"
></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.packLevel"
></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"
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-collapse-item>
</el-collapse>
</el-form>
</el-card>
</div>
</template>
<script>
import {getUdiInfos, superSearch} from "../../api/basic/udiInfo";
export default {
name: "UdiInfoSearch",
data() {
return {
activeNames: ['1'],
unionQuery: {
page: 1,
limit: 10,
udiCode: null,
},
udidlList: [],
editQuery: {},
}
},
methods: {
searchList() {
this.unionQuery.page = 1;
this.getList();
},
keyup_submit(event) {
this.unionQuery.page = 1;
this.getList();
event.target.select();
},
getList() {
this.loading = true;
getUdiInfos(this.unionQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.udidlList = response.data.list || [];
if (this.udidlList == null || this.udidlList.length == 0) {
this.$message.error("未查询到DI信息");
} else {
this.editQuery = this.udidlList[0];
}
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.udidlList = [];
this.total = 0;
});
},
getSuperSeaech() {
this.$confirm("此操作将访问国家库查询DI数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.loading = true;
superSearch(this.unionQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.udidlList = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.udidlList = [];
this.total = 0;
});
})
.catch(() => {
});
},
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
}
</script>
<style scoped>
.form-title {
font-size: 16px;
font-family: Noto Sans SC;
font-weight: bold;
color: #303133;
padding-bottom: 17px;
padding-top: 17px;
}
</style>

@ -72,6 +72,11 @@
</el-form-item>
<el-form-item class="query-form-item">
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
></el-button>
<el-button type="primary" icon="search" @click="searchList" size="mini"
>查询
</el-button
@ -441,6 +446,25 @@ export default {
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.unionQuery = {
page: 1,
limit: 10,
udiCode: null,
nameCode: "",
cpmctymc: "",
ylqxzcrbarmc: null,
ggxh: "",
zczbhhzbapzbh: "",
isCheck: 1
},
this.actDateRange = [];
// this.getList();
},
searchList() {
this.unionQuery.page = 1;
this.getList();

@ -64,6 +64,7 @@
<el-form-item style="display: flex">
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="search" @click="searchErpList"></el-button>
<el-button type="primary" icon="search" @click="combine" :loading="combineLoading"
>选入
@ -362,9 +363,9 @@ export default {
manufactory: null,
thirdSys: null,
supName: null,
measname: null,
page: 1,
limit: 10,
},
combineLoading: false,
combineQuery: {
@ -377,6 +378,9 @@ export default {
query: null,
isRlInv: null,
manufactory: null,
measname: null,
ybbm: null,
sptm: null,
},
udidlList: [],
@ -392,6 +396,26 @@ export default {
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.erpQuery = {
code: null,
name: null,
spec: null,
registerNo: null,
manufactory: null,
thirdSys: null,
supName: null,
measname: null,
page: 1,
limit: 10,
};
this.getList();
},
tableRowClassName({row}) {
if (row.checked) return "warning-row";
return "";
@ -494,10 +518,13 @@ export default {
}
this.combineQuery.thirdIds.push(row.code);
this.combineQuery.manufactory = row.manufactory;
this.combineQuery.measname = row.measname;
});
if (this.currentRow != null) {
this.combineQuery.manufactory = this.currentRow.manufactory;
this.combineQuery.measname = this.currentRow.measname;
// this.erpQuery.manufactory = this.currentRow.manufactory;
}
@ -558,7 +585,11 @@ export default {
this.combineQuery.thirdId = this.currentRow.code;
this.combineQuery.erpName = this.currentRow.name;
this.combineQuery.manufactory = this.currentRow.manufactory;
this.combineQuery.measname = this.currentRow.measname;
this.combineQuery.ybbm = this.currentRow.ybbm;
this.combineQuery.sptm = this.currentRow.sptm;
this.erpQuery.manufactory = this.currentRow.manufactory;
this.erpQuery.measname = this.currentRow.measname;
this.combineQuery.price = this.currentRow.price;
if (this.currentRow.checked) {

@ -1,10 +1,6 @@
<template>
<div>
<!-- <div style="display: flex; margin-top: 12px">
<el-checkbox v-model="checked" class="checkitemTag"
>是否关联第三方系统往来单位信息</el-checkbox
>
</div> -->
<el-card class="el-card" v-if="checked">
<div>
@ -239,6 +235,7 @@ export default {
console.log("----" + val[0].id);
this.multipleUdiSelection = val;
},
},
};
</script>

@ -291,14 +291,14 @@
<el-table-column label="用户名" prop="employeeName" fixed></el-table-column>
</el-table>
<el-pagination
:page-size="hospitalUserQuery.limit"
@current-change="getHospitalUser"
layout="prev, pager, next"
:total="hospitalUserTotal"
:current-page="hospitalUserQuery.page"
>
</el-pagination>
<!-- <el-pagination-->
<!-- :page-size="hospitalUserQuery.limit"-->
<!-- @current-change="getHospitalUser"-->
<!-- layout="prev, pager, next"-->
<!-- :total="hospitalUserTotal"-->
<!-- :current-page="hospitalUserQuery.page"-->
<!-- >-->
<!-- </el-pagination>-->
<div slot="footer" class="dialog-footer">
<el-button @click.native="userFormVisible = !userFormVisible"
@ -584,7 +584,10 @@
>
</div>
</el-dialog>
<el-dialog title="关联仓库" :visible.sync="thrWareHouseVisible">
<el-dialog title="关联仓库" :visible.sync="thrWareHouseVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form :inline="true" :model="query" class="query-form" size="mini">
<el-form-item class="query-form-item">
<el-input
@ -756,10 +759,11 @@ const formJson = {
pid: null,
name: null,
code: null,
status: "1",
status: 1,
advanceType: false,
isDefault: false,
level: 1,
spUse: false,
};
export default {
data() {
@ -911,6 +915,7 @@ export default {
.then((response) => {
this.loading = false;
this.mergeList = response.data.list || [];
this.subList = [];
})
.catch(() => {
this.loading = false;
@ -1232,6 +1237,7 @@ export default {
},
changeLevel(row) {
this.formData.pcode = null;
this.formData.spUse = false;
//TODO
this.getParentInv(this.formData.level);
},
@ -1254,7 +1260,10 @@ export default {
this.currentCode = row.code;
this.currentRow = row;
this.curSeleUser = null;
this.busTableTitle = row.name + " 仓库关联单据类型";
this.busTableTitle = "仓库 " + '"' + row.name + '"' + ": 关联单据类型";
// this.busTableTitle = row.name + " ";
this.loadLinkData(row)
},
@ -1329,6 +1338,7 @@ export default {
},
cancelRelBusDiaolog() {
this.relBusUserVisile = false;
this.getUserBusTypeList(1);
},
getHospitalUser(val) {
if (val != null) {
@ -1449,16 +1459,18 @@ export default {
}
},
addBussinessTypeData() {
if (this.selectBussinessTypeList.length == 0) {
this.$message.error("请选择单据类型")
} else {
this.bussinessTypeFormVisible = false;
let query = {
code: this.currentCode,
bussinessTypes: JSON.stringify(this.selectBussinessTypeList)
};
saveWarehouseBussinessType(query).then((res) => {
this.$message.success("添加成功");
// if (this.selectBussinessTypeList.length == 0) {
// this.$message.error("")
// } else {
this.bussinessTypeFormVisible = false;
let query = {
code: this.currentCode,
bussinessTypes: JSON.stringify(this.selectBussinessTypeList)
};
saveWarehouseBussinessType(query).then((res) => {
if (res.code == 20000) {
this.$message.success("修改成功!");
//
this.busQuery = {
code: this.currentCode,
@ -1472,9 +1484,14 @@ export default {
this.bussinessTypeData = [];
this.busTotal = 0;
});
}).catch((error) => {
});
}
} else {
this.$message.error(res.message);
}
}).catch((error) => {
});
// }
},
updateDirector(row) {
row.director = !row.director;
@ -1519,6 +1536,12 @@ export default {
},
//
bindThrWarehouse() {
if (this.checkThrWarehouseRow == null) {
this.$message.error("请先选择绑定仓库!");
return;
}
this.thrWareHouseVisible = false;
let params = {
id: this.currentId,
@ -1598,6 +1621,7 @@ export default {
this.thrWareHouseVisible = true;
this.$message.error("第三方仓库数据加载失败");
});
this.$forceUpdate();
},
intentSubSelect(row) {
@ -1668,7 +1692,7 @@ export default {
});
},
loadUserBusType(row) {
this.busTableTitle = row.employeeName + " 用户关联单据类型";
this.busTableTitle = "用户 " + '"' + row.employeeName + '"' + ": 关联单据类型";
this.curSeleUser = row;
this.getUserBusTypeList(1);
},
@ -1683,7 +1707,7 @@ export default {
filterUserBusTypeList(queryParam).then((res) => {
if (res.code === 20000) {
this.bussinessTypeData = res.data.list || [];
this.bussinessTypeTotal = res.data.total || 0;
this.busTotal = res.data.total || 0;
}
}).catch((error) => {
})

@ -67,11 +67,29 @@
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="header-right">
<span style="margin-right: 10px; margin-top: 2px">{{ company.Name }}</span>
<div>
<h3>
<span style=" margin-top: 2px ;
font-weight: bold;color: #303133;">{{ hospitalName }}</span>
<span
style="margin-top: 2px;margin-right: 18px;color: #2d8cf0;font-size: 12px;">({{
curInv
}})</span>
</h3>
</div>
<el-dropdown trigger="click">
<!--<i class="el-icon-setting" style="margin-right: 15px"></i>-->
<span>{{ title }}<i class="el-icon-arrow-down el-icon--right"></i></span>
<div>
<span style=" font-size: 14px;
font-weight: bold;
color: #303133;">{{ title }}<i class="el-icon-arrow-down el-icon--right"></i></span>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item><span @click="changeInv"></span></el-dropdown-item>
<el-dropdown-item><span @click="handlePassword"></span></el-dropdown-item>
@ -132,7 +150,6 @@
</div>
</el-dialog>
</el-header>
<!--遮板-->
<div
class="main-mask"
@ -177,7 +194,7 @@
<el-dialog
title="请选择当前仓库和分仓"
:title="selectMap[isSup]"
:visible.sync="selInvVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
@ -189,17 +206,16 @@
<el-col :span="4">
<div class="ao-text">
<span>当前仓库</span>
<span>仓库</span>
</div>
</el-col>
<el-col :span="16">
<el-form-item prop="locStorageCode">
<el-select v-model="userInfo.locInvCode" placeholder="当前仓库信息" clearable
<el-select v-model="userInfo.locInvCode" placeholder="仓库信息" clearable
@change="locCHange"
>
<el-option
v-for="item in storageList"
:key="item.name"
:label="item.name"
@ -213,12 +229,12 @@
<el-row :gutter="20">
<el-col :span="4">
<div class="ao-text">
<span>当前分库</span>
<span>分库</span>
</div>
</el-col>
<el-col :span="16">
<el-form-item prop="locInvCode">
<el-select v-model="userInfo.locSubInvCode" placeholder="当前分库信息" clearable
<el-select v-model="userInfo.locSubInvCode" placeholder="分库信息" clearable
>
<el-option
@ -234,11 +250,11 @@
</el-row>
<div style="margin-top: 8px ; color: #F71616;">
<span>提示进入系统请选择您当前所在仓库与分库&nbsp;</span>
<span>提示进入系统前请选择您默认所在仓库与分库&nbsp;</span>
</div>
<div style='text-align: center; margin-bottom: 10px;margin-top: 18px ;'>
<el-button type="primary" @click="submitInv"></el-button>
<el-button type="primary" @click="closeDialog"></el-button>
<el-button type="primary" @click="submitInv" style="width: 150px">提交</el-button>
<!-- <el-button type="primary" @click="closeDialog"></el-button>-->
</div>
</el-form>
</el-dialog>
@ -260,6 +276,7 @@ import {filterSubByInv} from "@/api/basic/invSubWarehouse";
import {updateInv} from "@/api/auth/authAdmin";
import {RECEIVE_LOCINVCODE} from "@/store/mutation-types";
import * as types from "../../store/mutation-types";
import axios from "axios";
export default {
data() {
@ -329,6 +346,13 @@ export default {
locInvName: "",
locSubInvName: "",
title: "",
curInv: "",
hospitalName: "",
isSup: false,
selectMap: {
true: "请选择送货仓库和分库",
false: "请选择当前仓库和分库",
},
};
},
components: {
@ -398,8 +422,14 @@ export default {
this.storageList = [];
filterAllByUser()
.then((response) => {
this.storageList = response.data || [];
this.findSubInvByInv();
if (response.code == 20000) {
this.storageList = response.data || [];
if (this.storageList != null && this.storageList.length == 1) {
this.userInfo.locInvCode = this.storageList[0].code;
}
this.findSubInvByInv();
}
})
.catch(() => {
});
@ -433,16 +463,25 @@ export default {
.then((response) => {
if (response.code == 20000) {
this.userInfo = response.data;
this.title = this.userInfo.employeeName + "" + this.userInfo.locInvName + " " + this.userInfo.locSubInvName + "";
if (this.$isBlank(this.userInfo.locInvCode)) {
this.curInv = "仓库:" + this.userInfo.locInvName + "; 分库:" + this.userInfo.locSubInvName + " ";
this.title = this.userInfo.employeeName + "" + this.userInfo.userName + "";
if (this.userInfo.customerId == 110) {
this.isSup = false;
} else {
this.isSup = true;
}
if (this.$isBlank(this.userInfo.locInvCode) || this.$isBlank(this.userInfo.locSubInvCode)) {
this.selInvVisible = true;
} else {
this.$store.commit(types.RECEIVE_LOCINVCODE, this.userInfo.locInvCode);
this.$store.commit(types.RECEIVE_LOCSUBINVCODE, this.userInfo.locSubInvCode);
this.$store.commit(types.RECEIVE_LOCINVNAME, this.locInvName);
this.$store.commit(types.RECEIVE_LOCSUBINVNAME, this.locSubInvName);
this.getStorage();
}
this.getStorage();
}
})
.catch(() => {
@ -464,11 +503,11 @@ export default {
submitInv() {
if (this.$isBlank(this.userInfo.locInvCode)) {
this.$message.error("当前仓库不能为空!");
this.$message.error("仓库不能为空!");
return;
}
if (this.$isBlank(this.userInfo.locSubInvCode)) {
this.$message.error("当前分库不能为空!");
this.$message.error("分库不能为空!");
return;
}
updateInv(this.userInfo).then((res) => {
@ -540,8 +579,8 @@ export default {
created() {
this.getBreadcrumb();
this.getCompanyData();
this.getStorage();
this.findSubInvByInv();
// this.getStorage();
// this.findSubInvByInv();
this.getUserInfo();
bus.$on("collapse-content", (msg) => {
this.collapse = msg;
@ -555,6 +594,12 @@ export default {
}
this.tagsList = arr;
});
axios.get("./config.json").then(res => {
//
this.hospitalName = res.data.hosp_name;
});
},
watch: {
$route() {

@ -7,6 +7,7 @@
:model="filterQuery"
label-width="480px"
size="mini"
v-if="searchVisible"
>
<el-row>
@ -114,29 +115,16 @@
>详情
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row.id)"
>删除
</el-button>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="deleteDialog(scope.row.id)"-->
<!-- >删除-->
<!-- </el-button>-->
</template>
</el-table-column>
</el-table>
<el-dialog
title="导出PDF"
:visible.sync="successOrderExportPDFSettingVisible"
width="80%"
v-if="successOrderExportPDFSettingVisible"
@close='closeDialog'
>
<successOrderExportPDFSetting
:closeDialog="closeDialog"
:idQuery="idQuery"
></successOrderExportPDFSetting>
</el-dialog>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
@ -203,64 +191,6 @@
></el-table-column>
</el-table>
</el-card>
<el-dialog
title="选择往来单位"
:visible.sync="dialogTableVisible"
width="70%"
>
<el-form :inline="true" :model="query" class="query-form" size="mini">
<el-form-item class="query-form-item">
<el-input v-model="unitquery.key" placeholder="搜索"></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="search"
@click.native.stop="getUnitList()"
>查询
</el-button
>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
:data="unitlist"
style="width: 100%"
@row-click="selectUnit"
>
<el-table-column label="往来单位ID" prop="unitId"></el-table-column>
<el-table-column
label="往来单位名称"
prop="name"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="往来单位简写"
prop="spell"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="地址"
prop="addr"
show-overflow-tooltip
></el-table-column>
<el-table-column label="状态" prop="status"></el-table-column>
<el-table-column label="类型" prop="type"></el-table-column>
</el-table>
</el-dialog>
<el-dialog
title="选择业务单据"
:visible.sync="addDialogVisible"
width="80%"
v-if="addDialogVisible"
>
<selectErpOrder
v-on:closeManuDialog="closeManuDialog"
:orderId="orderId"
></selectErpOrder>
</el-dialog>
<el-dialog
title="单号详情"
:visible.sync="codeDetailVisible"
@ -273,14 +203,6 @@
></codeDetail>
</el-dialog>
<el-dialog title="校验信息" :visible.sync="errDialogVisible" width="30%">
<span>{{ errorDetail }}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="errDialogVisible = false"
> </el-button
>
</span>
</el-dialog>
</div>
</template>
@ -317,12 +239,6 @@ import {filterOrderTrace} from "@/api/inventory/invCodeTrace";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import A from "@/plugin/KeyScaner";
const formJson = {
site_id: "",
site_name: "",
describe: "",
ads: [],
};
export default {
name: "invUdiTraceOrder",
props: {
@ -330,12 +246,20 @@ export default {
type: Boolean,
default: false,
},
diloadTrue: {
type: Boolean,
default: false,
},
udiCode: {
type: Object,
required: true,
},
},
data() {
return {
query: {
code: null,
filterQuery: {
code: "",
batchNo: null,
productIdFk: null,
customerId: null,
@ -343,6 +267,7 @@ export default {
limit: 20,
supId: null,
},
searchVisible: true,
sitcomScan: false,
checkStatus: {
1: "校验异常",
@ -351,9 +276,6 @@ export default {
},
fromOptions: [],
erpCheckStatus: {
// error: "",
// null: "",
// success: "",
1: "校验异常",
0: "未校验",
2: "校验成功",
@ -367,28 +289,12 @@ export default {
"6": "缺量补录单据",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10":"手动补单"
"10": "手动补单"
},
//
unitquery: {key: "", page: 1, limit: 20},
unitlist: [],
list: [],
detailList: [],
unitUpdateQuery: {
id: "",
fromCorpId: "",
fromCorp: "",
},
actDateRange: [],
filterQuery: {
code: null,
batchNo: null,
productIdFk: null,
customerId: null,
page: 1,
limit: 20,
supId: null,
},
detailQuery: {
orderId: "",
},
@ -400,11 +306,9 @@ export default {
},
curIndex: "",
adListNoDataText: "无数据",
queryAdIdAsyncLoading: false,
codeDetailVisible: false,
successOrderExportPDFSettingVisible: false,
total: 0,
loading: true,
loading: false,
index: null,
formName: null,
orderId: "",
@ -412,10 +316,6 @@ export default {
add: "新增",
edit: "编辑",
},
exportQuery: {
orderId: "",
exportStatus: "",
},
uploadQuery: {
orderId: "",
@ -425,48 +325,14 @@ export default {
dialogTableVisible: false,
formLoading: false,
formVisible: false,
formData: formJson,
deleteLoading: false,
addDialogVisible: false,
errDialogVisible: false,
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]);
},
},
],
},
};
},
components: {
draggable,
codeDetail,
successOrderExportPDFSetting,
selectErpOrder,
},
methods: {
onReset() {
@ -482,7 +348,6 @@ export default {
limit: 20,
supId: null,
};
this.actDateRange = [];
this.getList();
},
@ -505,11 +370,6 @@ export default {
this.multipleSelection = val;
},
handleErrorDetail(poistion) {
var mOrder = this.list[poistion];
this.errorDetail = mOrder.remark;
this.errDialogVisible = true;
},
findMethod(query) {
this.fromOptions = [];
let cQuery = {
@ -524,56 +384,6 @@ export default {
this.loading = false;
});
},
mergesOrders() {
var repeatData = this.multipleSelection;
if (repeatData.length <= 1) {
this.$message.warning("选择的订单需大于1");
return;
}
var orderid = repeatData[0].id;
var unit = repeatData[0].fromCorp;
var action = repeatData[0].action;
var orderList = [];
repeatData.forEach((obj, index) => {
if (unit !== obj.fromCorp) {
this.$message.warning("往来单位不一致!");
return;
}
if (action !== obj.action) {
this.$message.warning("业务类型不一致!");
return;
}
orderList.push(obj.id);
});
var tquery = {
orderList: orderList,
};
this.$confirm(
"所选择的订单将会合并到订单号为" + orderid + "的订单下",
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
mergeOrder(tquery).then((response) => {
if (response.code === 20000) {
this.getList();
this.$message({
type: "success",
message: "合并成功",
});
} else {
this.$message.error(response.message);
}
});
})
.catch(() => {
});
},
//
getList() {
this.loading = true;
@ -613,31 +423,6 @@ export default {
};
this.refresgOrderDetail();
},
repeatCheckClick(row) {
let tQuery = {
orderId: row.id,
};
this.loading = true;
repeatCheck(tQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.$message.success(response.data);
this.getList();
this.detailQuery = {
orderId: row.id,
};
this.refresgOrderDetail();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.getList();
this.$message.error(response.message);
});
},
refresgOrderDetail() {
orderDetail(this.detailQuery)
.then((response) => {
@ -650,21 +435,6 @@ export default {
});
},
handleUnitClick(row) {
this.curIndex = row.id;
// this.dialogTableVisible = true;
},
getUnitList() {
this.loading = true;
unitListBykey(this.unitquery)
.then((response) => {
this.loading = false;
this.unitlist = response.data.list || [];
})
.catch(() => {
this.loading = false;
});
},
intentDetail(row) {
// this.$router.push({
// path: "../inout/detail",
@ -674,60 +444,11 @@ export default {
this.codeDetailVisible = true;
this.idQuery.id = row.id;
},
successOrderExportPDFSetting(row) {
this.idQuery.id = '';
if (this.$isNotBlank(row.id)) {
this.idQuery.id = row.id;
}
this.successOrderExportPDFSettingVisible = true;
},
successOrderExportPDF(row) {
let tQuery = {
orderId: row.id,
customerId: store.getters.customerId
}
this.loading = true;
inspectionOrderDetailPDFFromTemplateFile(tQuery).then((response) => {
if (response.code === 20000) {
orderDetailPDFFromTemplateFile(tQuery).then((response) => {
//pdfurl
const binaryData = [];
binaryData.push(response);
//blob
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//pdf
}).catch(() => {
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(response.message);
}
}).catch(() => {
this.loading = false;
});
},
closeDialog() {
this.successOrderExportPDFSettingVisible = false;
this.getList();
},
selectUnit(row) {
this.unitUpdateQuery.id = this.curIndex;
this.unitUpdateQuery.fromCorp = row.name;
this.unitUpdateQuery.fromCorpId = row.unitid;
updateUnit(this.unitUpdateQuery)
.then((response) => {
this.dialogTableVisible = false;
this.getList();
})
.catch(() => {
this.dialogTableVisible = false;
});
},
deleteOrders(data) {
this.loading = true;
this.deleteData.id = data;
@ -751,140 +472,6 @@ export default {
}
},
exportDialog(value) {
var mOrder = value;
if (mOrder.exportStatus === "已上传") {
this.$confirm("该订单已修改, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.uploadOrderDialog(mOrder);
})
.catch(() => {
});
} else if (mOrder.contrastStatus === 0) {
this.$confirm("该订单校验异常, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.uploadOrderDialog(mOrder);
})
.catch(() => {
});
} else if (mOrder.contrastStatus === null) {
this.$confirm("该订单未校验, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.uploadOrderDialog(mOrder);
})
.catch(() => {
});
} else {
this.$confirm("是否确定修改ERP订单?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.uploadOrderDialog(mOrder);
})
.catch(() => {
});
}
},
exportXml(poistion) {
this.loading = true;
var mOrder = this.list[poistion];
var corpOrderId = mOrder.id;
var codeArry;
this.query = {
corpOrderId: corpOrderId,
page: 1,
limit: 20,
};
findAllByOrderId(this.query) //
.then((response) => {
this.loading = false;
codeArry = response.data.list || [];
var document =
'<?xml version="1.0" encoding="utf-8"?>\n' +
'<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="终端接口XML Schema-2.0.xsd" SN="" Version="3.0" License="123456">\n' +
"<Events>\n" +
'<Event Name="' +
mOrder.action +
'" MainAction="' +
mOrder.mainAction +
'">' +
"<ActionMaping>\n" +
'<Action Name="' +
mOrder.mainAction +
'">\n' +
"<ActionData>Code</ActionData>\n" +
"<ActionData>CorpOrderID</ActionData>\n" +
"<ActionData>Actor</ActionData>\n" +
"<ActionData>ActDate</ActionData>\n" +
"<ActionData>ToCorpID</ActionData>\n" +
"</Action>\n" +
" </ActionMaping>\n" +
"<DataMaping>\n" +
'<MetaData Name="Code" Type="string" />\n' +
'<MetaData Name="CorpOrderID" Type="string" />\n' +
'<MetaData Name="Actor" Type="string" />\n' +
'<MetaData Name="ActDate" Type="Date" />\n' +
'<MetaData Name="ToCorpID" Type="string" />\n' +
"</DataMaping>\n" +
"<DataField>\n";
for (var value of codeArry) {
if (value.fromCorpId === null) {
value.fromCorpId = "";
}
var tempdata =
' <Data Code="' +
value.code +
'" CorpOrderID="' +
value.corpOrderId +
'" Actor="' +
value.actor +
'" ActDate="' +
value.actDate +
'" ToCorpID="' +
value.fromCorpId +
'" />\n';
document = document + tempdata;
}
document =
document +
"</DataField>\n" +
"</Event>\n" +
"</Events>\n" +
"</Document>\n";
var blob = new Blob([document], {
type: "text/plain;charset=utf-8",
});
saveAs(blob, mOrder.action + mOrder.corpOrderId + ".xml");
this.exportQuery.orderId = corpOrderId;
this.exportQuery.exportStatus = "已上传";
updateExportStatus(this.exportQuery).then((response) => {
this.getList();
});
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
uploadOrderDialog(value) {
this.uploadQuery = {
@ -975,7 +562,7 @@ export default {
window.sc = new A.KeyScaner(inputer);
sc.onInput = function (text) {
if (text.includes("delete")) {
that.formData.code = "";
that.filterQuery.code = "";
return;
}
if (that.sitcomScan) {
@ -989,16 +576,17 @@ export default {
},
created() {
if (this.$isNotBlank(this.udiCode)) {
if (!this.diloadTrue) {
this.searchVisible = false;
}
console.log(this.diloadTrue + "----" + this.searchVisible);
this.filterQuery.code = this.udiCode;
this.getList();
}
this.getBusType();
let query = this.$route.query;
this.query = Object.assign(this.query, query);
this.query.limit = parseInt(this.query.limit);
//
this.getList();
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
},
};
</script>

@ -0,0 +1,520 @@
<template>
<div>
<el-card class="el-card">
<el-form :inline="true" :model="filterQuery" class="query-form" size="mini">
<el-form-item class="query-form-item" label-width="100px">
<el-input
id="inputer"
v-model="filterQuery.sickAd"
placeholder="请输入病人住院号"
clearable
ref='inputRef'
style="width: 500px"
@keypress.enter.native="enterKey($event)"
></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="search" @click="getList"
>查询
</el-button>
</el-button-group>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
:data="list"
style="width: 100%"
@row-click="getOrderDetail"
highlight-current-row
@selection-change="handleSelectionChange"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="扫码单据类型" prop="action">
<template slot-scope="scope">
<span>{{ getActionName(scope.row.action) }}</span>
</template>
</el-table-column>
<el-table-column
label="订单号"
prop="id"
show-overflow-tooltip="true"
></el-table-column>
<el-table-column label="来源" prop="fromType">
<template slot-scope="scope">
<span>{{ fromTypeMap[scope.row.fromType] }}</span>
</template>
</el-table-column>
<el-table-column label="往来单位" prop="fromCorp" width="250">
</el-table-column>
<el-table-column
label="创建时间"
prop="actDate"
width="150"
show-overflow-tooltip="true"
>
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span>{{ scope.row.actDate }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="操作" fixed="right" width="120">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="intentDetail(scope.row)"-->
<!-- >详情-->
<!-- </el-button-->
<!-- >-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:current-page="filterQuery.page"
:total="total"
></el-pagination>
</el-card>
<el-card class="el-card" v-if="true" id="printJS-form">
<el-table
v-loading="loading"
:row-class-name="tableRowClassName"
:data="detailList"
style="width: 100%"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="UDI码"
prop="code"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="产品通用名"
prop="coName"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="包装规格"
prop="packSpec"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
width="100"
label="批次号"
prop="batchNo"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="生产日期"
prop="productDate"
width="100"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="失效日期"
prop="expireDate"
width="100"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="生产企业"
prop="productCompany"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="注册/备案凭证号"
prop="authCode"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column label="操作" fixed="right" width="120">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="intentDetail(scope.row)"
>流向详情
</el-button
>
</template>
</el-table-column>
</el-table>
</el-card>
<el-dialog
title="单号详情"
:visible.sync="codeDetailVisible"
width="80%"
v-if="codeDetailVisible"
>
<codeDetail
:idQuery="idQuery"
v-on:closeDetailDialog="closeDetailDialog"
></codeDetail>
</el-dialog>
<el-dialog
title="UDI码流向"
:visible.sync="udiCodeTraceVisible"
width="80%"
v-if="udiCodeTraceVisible"
>
<udiCodeTrace
:udiCode="udiCode"
:diloadTrue="false"
v-on:closeDetailDialog="closeDetailDialog"
></udiCodeTrace>
</el-dialog>
<el-dialog title="校验信息" :visible.sync="errDialogVisible" width="30%">
<span>{{ errorDetail }}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="errDialogVisible = false"
> </el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import {
orderDetail,
} from "../../api/warehouse/order";
import {repeatCheck} from "../../api/erp/erpOrder";
import draggable from "vuedraggable";
import codeDetail from "../warehouse/code";
import udiCodeTrace from "./invUdiTraceOrder"
import {getBussinessType} from "../../api/basic/bussinessType";
import {filterSickTrace} from "@/api/inventory/invSickTrace";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import A from "@/plugin/KeyScaner";
export default {
name: "sickerUdiTraceOrder",
data() {
return {
query: {
code: null,
batchNo: null,
productIdFk: null,
customerId: null,
page: 1,
limit: 20,
supId: null,
},
sitcomScan: false,
checkStatus: {
1: "校验异常",
0: "未校验",
2: "正常",
},
fromOptions: [],
erpCheckStatus: {
1: "校验异常",
0: "未校验",
2: "校验成功",
},
fromTypeMap: {
"1": "UDIMS平台",
"2": "网页新增",
"3": "pda即时校验",
"4": "pda未校验",
"5": "pc端扫码精灵",
"6": "缺量补录单据",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10": "手动补单"
},
//
list: [],
detailList: [],
filterQuery: {
sickAd: null,
page: 1,
limit: 20,
},
detailQuery: {
orderId: "",
},
deleteData: {
id: "",
},
idQuery: {
id: "",
},
curIndex: "",
adListNoDataText: "无数据",
codeDetailVisible: false,
udiCodeTraceVisible: false,
udiCode: null,
total: 0,
loading: false,
index: null,
formName: null,
orderId: "",
formMap: {
add: "新增",
edit: "编辑",
},
exportQuery: {
orderId: "",
exportStatus: "",
},
uploadQuery: {
orderId: "",
},
busTypes: [],
multipleSelection: [],
dialogTableVisible: false,
formLoading: false,
formVisible: false,
deleteLoading: false,
addDialogVisible: false,
errDialogVisible: false,
};
},
components: {
draggable,
codeDetail,
udiCodeTrace,
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
code: null,
batchNo: null,
productIdFk: null,
customerId: null,
page: 1,
limit: 20,
supId: null,
};
this.actDateRange = [];
this.getList();
},
enterKey(event) {
this.$refs.inputRef.select();
this.onSubmit();
},
onSubmit() {
this.getList();
},
handleSizeChange(val) {
this.filterQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
handleErrorDetail(poistion) {
var mOrder = this.list[poistion];
this.errorDetail = mOrder.remark;
this.errDialogVisible = true;
},
findMethod(query) {
this.fromOptions = [];
let cQuery = {
key: query,
};
getBasicUnitMaintains(cQuery)
.then((response) => {
this.loading = false;
this.fromOptions = response.data.page.list || [];
})
.catch(() => {
this.loading = false;
});
},
//
getList() {
this.loading = true;
if (!this.$isBlank(this.filterQuery.sickAd)) {
let code = this.filterQuery.sickAd;
this.filterQuery.sickAd = code.replace("\r", "")
}
filterSickTrace(this.filterQuery)
.then((response) => {
if (response.code == 20000) {
this.loading = false;
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
} else {
this.loading = false;
this.list = [];
this.detailList = [];
this.total = 0;
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
//
getOrderDetail(row) {
this.loading = true;
this.detailQuery = {
orderId: row.id,
showType: 1,
};
this.refresgOrderDetail();
},
refresgOrderDetail() {
orderDetail(this.detailQuery)
.then((response) => {
this.loading = false;
this.detailList = response.data || [];
})
.catch(() => {
this.loading = false;
this.detailList = [];
});
},
intentDetail(row) {
// this.codeDetailVisible = true;
this.udiCode = row.code;
this.udiCodeTraceVisible = true;
this.idQuery.id = row.id;
},
tableRowClassName({row, rowIndex}) {
if (row.reCount === row.count) {
return "success-row";
} else {
return "warning-row";
}
},
closeDetailDialog(val) {
this.codeDetailVisible = false;
this.udiCodeTraceVisible = false;
},
cancelDialog() {
this.addDialogVisible = false;
},
importOrder(row) {
this.orderId = row.id;
this.addDialogVisible = true;
},
getBusType() {
let query = {
enabled: true,
};
getBussinessType(query)
.then((response) => {
this.busTypes = response.data.list || [];
this.filterQuery.billAction = this.busTypes[0].action;
})
.catch(() => {
});
},
getActionName(action) {
for (let i = 0; i < this.busTypes.length; i++) {
if (this.busTypes[i].action === action) {
return this.busTypes[i].name;
}
}
},
},
filters: {
statusFilterType(status) {
const statusMap = {
false: "success",
true: "danger",
};
return statusMap[status];
},
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
var that = this;
var inputer = document.getElementById("inputer");
window.sc = new A.KeyScaner(inputer);
sc.onInput = function (text) {
if (text.includes("delete")) {
that.filterQuery.sickAd = "";
return;
}
if (that.sitcomScan) {
that.filterQuery.sickAd = that.filterQuery.sickAd;
} else {
that.filterQuery.sickAd = text;
}
};
inputer.focus();//divtabindexdocumentBody
},
created() {
this.getBusType();
let query = this.$route.query;
this.query = Object.assign(this.query, query);
this.query.limit = parseInt(this.query.limit);
//
// this.getList();
},
};
</script>
<style scoped>
#inputer {
width: 100%;
min-height: 30px;
background-color: white;
border: #d0d0d0;
border-style: solid;
border-width: 0.1px;
color: #4a4a4a;
}
#inputer:focus {
width: 100%;
min-height: 30px;
background-color: white;
border: #0080FF;
border-style: solid;
border-width: 0.1px;
color: #4a4a4a;
}
.el-table .warning-row {
background: #ffb5b5;
}
.el-table .success-row {
background: #ffffff;
}
</style>

@ -77,16 +77,15 @@
>查询
</el-button
>
<el-button type="primary" icon="search" @click="getSuperSeaech" size="mini"
>国家同步库查询
</el-button
>
<el-button type="primary" size="mini" icon="search" @click="checkCombine"
:loading="combineLoading"
>选入
</el-button
>
<el-button type="primary" icon="search" @click="getSuperSeaech" size="mini"
>国家同步库查询
</el-button
>
</el-button-group>
</el-form-item>
</el-row>
@ -99,6 +98,7 @@
highlight-current-row="true"
:row-class-name="tableRowClassName"
@current-change="handleErpChange"
ref="diList"
@selection-change="handleSelectionUdiChange"
>
@ -160,6 +160,150 @@
</el-card>
<el-card class="el-card">
<el-form
:model="editQuery"
ref="editQuery"
border
label-width="100px"
>
<el-row :gutter="20" class="el-row" type="flex">
<H3 style="margin-left: 10px;margin-bottom: 15px">产品信息补齐</H3>
<!-- <el-col :span="12" class="el-col">-->
<!-- <div class="text item">-->
<!-- <div class="itemTag">-->
<!-- <span>第三方系统:&nbsp;</span>-->
<!-- </div>-->
<!-- <el-select-->
<!-- style="width: 65%"-->
<!-- v-model="editQuery.thirdSysFk" placeholder="请选择第三方系统"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in thirdSys"-->
<!-- :key="item.value"-->
<!-- :label="item.thirdName"-->
<!-- :value="item.thirdId">-->
<!-- <span style="float: left">{{ item.thirdName }}</span>-->
<!-- <span style="float: right; color: #8492a6; font-size: 13px">{{-->
<!-- item.thirdId-->
<!-- }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </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"-->
<!-- placeholder="请输入内容"-->
<!-- v-model.trim="editQuery.code"-->
<!-- ></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"
splaceholder="请输入内容"
v-model="editQuery.sptm"
></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="请输入内容"
v-model="editQuery.ybbm"
></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"
splaceholder="请输入内容"
v-model="editQuery.measname"
></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"
v-model="editQuery.manufactory"
splaceholder="请输入内容"
></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"
splaceholder="请输入内容"
v-model="editQuery.spmc"
></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="请输入内容"
v-model="editQuery.cpms"
></el-input>
</div>
</el-col>
</el-row>
</el-form>
</el-card>
<el-dialog
title="器械信息详情"
:close-on-click-modal="false"
@ -182,6 +326,7 @@ import {combineUdi} from "../../api/basic/udiRelevance";
import {addDiProduct} from "@/api/thrsys/thrProductsAddDi";
import selectDiDetail from "../basic/SelectDIDetailDialog"
import store from "@/store";
import {getBasicThirdSys} from "@/api/basic/basicThirdSys";
export default {
name: "closeDialog",
@ -246,6 +391,12 @@ export default {
multipleUdiSelection: [],
selectDialog: false,
diDetails: null,
editQuery: {},
thirdSys: [],
curSelectDi: null,
};
},
methods: {
@ -365,11 +516,12 @@ export default {
this.$message.warning("请选择需要添加的产品数据");
return;
}
let selectData = this.multipleUdiSelection;
// let selectData = this.multipleUdiSelection;
let uuids = [];
selectData.forEach(item => {
uuids.push(item.uuid);
});
uuids.push(this.curSelectDi.uuid);
// selectData.forEach(item => {
// uuids.push(item.uuid);
// });
let params = {
uuids: uuids,
customerId: store.getters.customerId
@ -378,6 +530,8 @@ export default {
if (res.code === 20000) {
this.$message.success("添加成功");
this.$emit("closeUdi", true);
} else {
this.$message.error(res.message);
}
}).catch((error) => {
});
@ -406,8 +560,14 @@ export default {
});
},
handleSelectionUdiChange(val) {
this.multipleUdiSelection = val;
handleSelectionUdiChange(selection) {
this.curSelectDi = selection[0];
if (selection.length > 1) {
this.$refs.diList.clearSelection();
this.$refs.diList.toggleRowSelection(selection.pop());
}
this.multipleUdiSelection = selection;
},
findMethod(query) {
let cQuery = {
@ -425,6 +585,30 @@ export default {
this.fromOptions = [];
});
},
getBasicThirdSys() {
let query = {
enabled: true,
mainSys: true
};
getBasicThirdSys(query)
.then((response) => {
if (response.code == 20000) {
this.thirdSys = response.data.list || [];
if (this.thirdSys.length > 0) {
this.editQuery.thirdSysFk = this.thirdSys[0].thirdId;
}
}
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
},
created() {
this.getBasicThirdSys();
},
components: {
selectDiDetail,

@ -278,7 +278,6 @@ export default {
this.companyNames = [];
let cQuery = {
key: query,
customerName: query
};
filterCustomers(cQuery).then((res) => {
this.companyNames = res.data.list || [];

@ -34,7 +34,8 @@
<el-button type="primary" icon="search" @click="getList"></el-button>
<el-button type="primary" @click.native="handleForm(null, null,'addTop')"
:disabled="!configParms.basicThirdInv"
>添加仓库
>
添加仓库
</el-button>
<!-- <el-button type="primary" @click.native="downloadWarehouse()"-->
<!-- v-if="this.thirdSysDetail.enabled && this.thirdSysDetail.fromType==3"-->

@ -12,7 +12,7 @@
</div>
<el-select
style="width: 60%"
v-model="newProductData.thirdSys" placeholder="请选择第三方系统"
v-model="newProductData.thirdSysFk" placeholder="请选择第三方系统"
>
<el-option
@ -240,21 +240,21 @@
</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: 60%"
size="small"
placeholder="请输入内容"
v-model.trim="newProductData.cpdls"
></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: 60%"-->
<!-- size="small"-->
<!-- placeholder="请输入内容"-->
<!-- v-model.trim="newProductData.cpdls"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row :gutter="20" class="el-row" type="flex">
@ -321,9 +321,9 @@ export default {
ybbm: null,
tyshxydm: null,
qxlb: null,
cplx:null,
cplx: null,
cpms: null,
thirdSys: null,
thirdSysFk: null,
cpdls: null
},
thirdSys: [],
@ -333,7 +333,7 @@ export default {
methods: {
saveNewProduct() {
this.addProductVisible = false;
if (this.$isBlank(this.newProductData.thirdSys)) {
if (this.$isBlank(this.newProductData.thirdSysFk)) {
this.$message.warning("第三方系统不能为空!");
return;
}
@ -371,6 +371,8 @@ export default {
//
this.$emit("closeAddDialog", true);
this.closeAddDialog();
} else {
this.$message.error(res.message);
}
}).catch((error) => {
this.$message.error(error.message);
@ -381,6 +383,8 @@ export default {
this.$message.success("添加成功");
//
this.closeAddDialog(true);
} else {
this.$message.error(res.message);
}
}).catch((error) => {
this.$message.error(error.message);

@ -5,7 +5,7 @@
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.code"
placeholder="产品编码/商品条码/医保编码" clearable
placeholder="DI产品标识" clearable
@keyup.enter.native="keyupErp_submit($event)"
></el-input>
</el-form-item>
@ -110,7 +110,7 @@
</el-card>
<el-dialog
title="添加DI器械信息"
title="新增配送产品"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="addDiProductVisible"

@ -168,7 +168,8 @@
v-if="checkVisible">
<el-form>
<el-form-item>
审核意见 <el-input type="text" v-model="remark" style="width: 50%" placeholder="请输入审核意见"></el-input>
审核意见
<el-input type="text" v-model="remark" style="width: 50%" placeholder="请输入审核意见"></el-input>
</el-form-item>
<el-form-item>
@ -200,7 +201,7 @@ export default {
manufactory: null,
thirdSys: "",
companyName: null,
supId:null,
supId: null,
page: 1,
limit: 20,
},
@ -387,7 +388,7 @@ export default {
this.checkVisible = false;
this.$message.success("操作成功");
} else {
this.$message.error(error.message);
this.$message.error(res.message);
}
}).catch((error) => {
this.$message.error(error.message);
@ -409,7 +410,6 @@ export default {
this.companyNames = [];
let cQuery = {
key: query,
customerName: query
};
filterCustomers(cQuery).then((res) => {
this.companyNames = res.data.list || [];

File diff suppressed because it is too large Load Diff

@ -322,6 +322,7 @@ export default {
this.getList();
},
onSubmit() {
this.query.page = 1;
this.getList();
},
handleCurrentChange(val) {
@ -464,6 +465,13 @@ export default {
}
},
formSubmit() {
if (this.$isBlank(this.formData.name)) {
this.$message.error("请输入角色名称!");
return;
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;

@ -84,8 +84,8 @@
<!-- <el-table-column label="打印模板" prop="pdfTemplateName" width="120"></el-table-column>-->
<el-table-column label="最大用户数" prop="userMax" width="120">
</el-table-column>
<el-table-column label="当前用户数" prop="count" width="120">
</el-table-column>
<!-- <el-table-column label="当前用户数" prop="count" width="120">-->
<!-- </el-table-column>-->
<el-table-column label="操作" width="120" fixed="right">
<template slot-scope="scope">

@ -134,22 +134,22 @@
</el-col>
</el-row>
<el-row :gutter="20" v-if="registerConfigMap.companyCheckStatus">
<el-row :gutter="20">
<el-col :span="4">
<div class="register-text">
<span>企业名称:&nbsp;</span>
</div>
</el-col>
<el-col :span="10">
<el-col :span="10" v-if="registerConfigMap.companyCheckStatus">
<el-form-item prop="fromCorp">
<el-form-item prop="companyName">
<el-select
v-model="inputQuery.companyName"
filterable
remote
clearable="true"
reserve-keyword
placeholder="请输入企业名称"
placeholder="请选择企业"
:remote-method="findMethod"
size="small"
style="width: 100%"
@ -168,6 +168,17 @@
</el-form-item>
</el-col>
<el-col :span="10" v-if="!registerConfigMap.companyCheckStatus">
<el-form-item prop="companyName">
<el-input
size="small"
placeholder="请输入企业名称"
v-model="inputQuery.companyName"
></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<!--<el-button-->
<!--type="primary"-->
@ -181,7 +192,7 @@
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="20" v-if="registerConfigMap.udplatCheckStatus">
<el-col :span="1">
</el-col>
<el-col :span="10">
@ -192,7 +203,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" v-if="registerConfigMap.companyCheckStatus">
<el-row :gutter="20" v-if="registerConfigMap.udplatCheckStatus">
<el-col :span="4">
<div class="register-text">
<span>阳光采购平台企业名称:&nbsp;</span>
@ -397,7 +408,7 @@
:headers="headers"
:limit="1"
:on-exceed="uploadHandleExceed"
accept=".jpg,.png"
accept=".jpg,.png,.pdf"
:on-change="uploadOnchange"
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
@ -415,6 +426,7 @@
@click.native="openFile(inputQuery.licenseUrl)"
size="small" type="primary">查看文件
</el-button>
<span slot="tip" style="margin-left: 20px">支持pdf,jpg,png格式文件</span>
</div>
<!-- <div slot="tip" class="el-upload__tip">只能上传 .jpg,.png 文件且不超过 2 MB</div>-->
</el-upload>
@ -616,7 +628,8 @@ export default {
],
},
registerConfigMap: {
companyCheckStatus: true
companyCheckStatus: true,
udplatCheckStatus: false,
},
formVisible: false,
formData: {
@ -647,6 +660,12 @@ export default {
return;
}
}
if(this.$isBlank(this.inputQuery.licenseUrl)){
this.$message.error('请先上传营业执照电子档案!');
return;
}
this.loading = true;
register(this.inputQuery).then((response) => {
if (response.code === 20000) {

@ -503,7 +503,7 @@ export default {
"6": "缺量补录单据",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10":"手动补单"
"10": "手动补单"
},
busTypes: [],
//
@ -739,9 +739,14 @@ export default {
filterOrder(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -368,7 +368,7 @@ export default {
"6": "缺量补录单据",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10":"手动补单"
"10": "手动补单"
},
deleteData: {
id: "",
@ -547,8 +547,13 @@ export default {
filterOrder(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -80,7 +80,7 @@
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="search" @click="onSubmit"></el-button>
<!-- <el-button type="primary" icon="search" @click="exportOrders"></el-button>-->
<!-- <el-button type="primary" icon="search" @click="exportOrders"></el-button>-->
</el-button-group>
</el-form-item>
</el-row>
@ -88,12 +88,11 @@
<el-table
v-loading="loading"
:data="list"
ref="multipleTable"
style="width: 100%"
@row-click="getOrderDetail"
highlight-current-row
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="扫码单据类型" prop="billTypeName">
</el-table-column>
@ -401,7 +400,7 @@ export default {
"6": "缺量补录单据",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10":"手动补单"
"10": "手动补单"
},
//
unitquery: {key: "", page: 1, limit: 20},
@ -682,9 +681,14 @@ export default {
filterOrder(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
if (response.code == 20000) {
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -468,7 +468,7 @@ export default {
"6": "缺量补录单据",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10":"手动补单"
"10": "手动补单"
},
exportQuery: {
orderId: "",
@ -658,9 +658,14 @@ export default {
filterOrder(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -217,7 +217,7 @@
filterable
clearable="true"
reserve-keyword
placeholder="请选择部门信息"
placeholder="请选择科室"
:remote-method="findDeptMethod"
:loading="loading"
@focus="findDeptMethod('')"
@ -236,27 +236,27 @@
</el-row>
<el-row :gutter="20">
<el-col :span="20" class="el-col">
<div class="text item">
<el-checkbox v-model="formData.outChangeEnable"
:disabled="!curAction.changeEnable || corpOrderIdDisabled">允许出库自动缺量补单
</el-checkbox>
<el-checkbox v-model="formData.preCheck"
:disabled="corpOrderIdDisabled || curAction.corpType !=2"
>出入库必须校验预验收库
</el-checkbox>
<el-checkbox v-model="formData.vailInv"
>是否查询库存
</el-checkbox>
<el-checkbox v-model="formData.codeFillCheck"
>采集UDI码时进行三期校验
</el-checkbox>
</div>
</el-col>
</el-row>
<!-- <el-row :gutter="20">-->
<!-- <el-col :span="20" class="el-col">-->
<!-- <div class="text item">-->
<!-- <el-checkbox v-model="formData.outChangeEnable"-->
<!-- :disabled="!curAction.changeEnable || corpOrderIdDisabled">允许出库自动缺量补单-->
<!-- </el-checkbox>-->
<!-- <el-checkbox v-model="formData.preCheck"-->
<!-- :disabled="corpOrderIdDisabled || curAction.corpType !=2"-->
<!-- >出入库必须校验预验收库-->
<!-- </el-checkbox>-->
<!-- <el-checkbox v-model="formData.vailInv"-->
<!-- >是否查询库存-->
<!-- </el-checkbox>-->
<!-- <el-checkbox v-model="formData.codeFillCheck"-->
<!-- >采集UDI码时进行三期校验-->
<!-- </el-checkbox>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row :gutter="20" style="margin-top: 12px">
<el-col :span="2">
<div class="ao-text">

@ -131,16 +131,16 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12" class="el-col">
<div class="text item">
<el-checkbox v-model="formData.codeFillCheck"
>采集UDI码时进行三期校验
</el-checkbox>
</div>
</el-col>
</el-row>
<!-- <el-row :gutter="20">-->
<!-- <el-col :span="12" class="el-col">-->
<!-- <div class="text item">-->
<!-- <el-checkbox v-model="formData.codeFillCheck"-->
<!-- >采集UDI码时进行三期校验-->
<!-- </el-checkbox>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
</el-card>
<el-card>
<el-row :gutter="20">

@ -213,10 +213,10 @@
</el-row>
<el-row :gutter="20">
<el-row :gutter="20" v-if="enableDept">
<el-col :span="3">
<div class="ao-text">
<span>所属部门</span>
<span>所属科室</span>
</div>
</el-col>
<el-col :span="7">
@ -228,7 +228,7 @@
remote :disabled="codeArray.length>0"
clearable="true"
reserve-keyword
placeholder="请选择部门"
placeholder="请选择科室"
:remote-method="findDeptMethod"
:loading="loading"
@focus="findDeptMethod('')"
@ -480,6 +480,10 @@ export default {
type: Function,
required: true,
},
enableDept: {
type: Object,
required: true,
}
},
data() {
return {

@ -527,9 +527,14 @@ export default {
stockOrderList(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -588,9 +588,14 @@ export default {
stockOrderList(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
if (response.code == 20000) {
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -652,9 +652,14 @@ export default {
stockOrderList(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
if (response.code == 20000) {
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -109,7 +109,7 @@
</el-table-column>
<el-table-column label="当前分库" prop="subInvName" width="120">
</el-table-column>
<el-table-column label="所属部门" prop="deptName" width="120">
<el-table-column label="所属科室" prop="deptName" width="120" v-if="enableDept">
</el-table-column>
<el-table-column label="操作" fixed="right" width="150">
@ -203,6 +203,7 @@
<stockOrderNewDistribution
:closeDialog="closeDialog"
:idQuery="idQuery"
:closeConfirmFunction="closeConfirmFunction"
></stockOrderNewDistribution>
</el-dialog>
@ -219,6 +220,7 @@
<stockHospOrderNew
:closeDialog="closeDialog"
:idQuery="idQuery"
:enableDept="enableDept"
:closeConfirmFunction="closeConfirmFunction"
></stockHospOrderNew>
</el-dialog>
@ -574,6 +576,7 @@ export default {
},
formName: null,
enableDept: false
}
},
@ -647,9 +650,14 @@ export default {
stockOrderList(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
@ -1015,7 +1023,14 @@ export default {
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
//
selectSysParamByKey({paramKey: "muti_inv_mode"}).then((res) => {
if (res.code === 20000) {
if (res.data.paramValue === "0") {
this.enableDept = true;
}
}
})
}
}
</script>

@ -736,9 +736,14 @@ export default {
stockOrderList(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
this.detailList = [];
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;

@ -520,9 +520,14 @@ export default {
stockOrderList(this.query)
.then(response => {
this.loading = false;
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
if (response.code == 20000) {
this.list = response.data.list || [];
this.detailList = [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
@ -783,7 +788,6 @@ export default {
.then((response) => {
this.storageList = response.data || [];
if (this.storageList.length > 0) {
this.query.locStorageCode = this.storageList[0].code;
this.getSubInvList();
this.getList();
}

Loading…
Cancel
Save